Jeśli aplikacja wymaga portu LPT (np. starsze moduły wydruku lub programy DOS-owe), najpewniejszą metodą jest „przechwycenie” drukarki etykiet na LPT i podanie jej gotowego pliku z danymi etykiety. Poniżej kompletna instrukcja, która u nas zadziałała.
1) Udostępnij drukarkę etykiet i nazwij udział
W Ustawienia → Drukarki i skanery wybierz swoją drukarkę etykiet → Właściwości drukarki → Udostępnianie → zaznacz Udostępnij tę drukarkę.
Nadaj prostą nazwę udziału, np. etykieta2.
2) Zmapuj drukarkę na port LPT
W wierszu poleceń (uruchomionym jako Administrator) wykonaj:
net use LPT1: /delete /y
net use LPT1: \\localhost\etykieta2 /persistent:yes
Dzięki temu każda aplikacja wysyłająca na LPT1: trafi do udziału
\\localhost\etykieta2.
3) Zweryfikuj schemat wydruku w programie XL
W naszym przypadku schemat składał się z zapytania SQL, transformacji XSL oraz definicji pliku wyjściowego i skryptu uruchomieniowego.
Schemat wydruku etykiety:
[SQL]
select Wynik+CHAR(10) as Wynik from cdn.POL_EtyPrzyklad5
Order by Kolejnosc,Linia
[XSL]
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method = "xml" omit-xml-declaration="yes"/>
<xsl:preserve-space elements="*"/>
<xsl:template match="/">
<xsl:for-each select="ROOT">
<xsl:apply-templates select="RECORDSET1"/>
</xsl:for-each>
</xsl:template>
<xsl:template match="RECORDSET1">
<xsl:apply-templates select="RECORD" mode="r1"/>
</xsl:template>
<xsl:template match="RECORD" mode="r1">
<xsl:value-of select="@Wynik" />
</xsl:template>
</xsl:stylesheet>
[FILE]
C:\ETYKIETA\Etykieta.txt
[RUN]
c:\etykieta\DrukujKod.bat
4) Sprawdź zawartość skryptu drukującego
Plik: c:\etykieta\DrukujKod.bat
W naszym przypadku wystarczyło:
Copy C:\etykieta\etykieta.txt LPT1
I to wszystko — drukowanie działa OK.
Drobne wskazówki (warto wiedzieć)
- Jeśli linie w pliku się „zlewają”, w SQL zamiast samego
CHAR(10)użyjCHAR(13)+CHAR(10)(Windowsowy CRLF). - Niektóre drukarki/sterowniki lepiej przyjmują wysyłkę binarną:
copy /b C:\etykieta\etykieta.txt LPT1: - Gdy pojawi się komunikat o uprawnieniach, uruchom CMD jako Administrator.
- Jeśli komputer ma fizyczny port LPT1, a mapowanie nie działa, użyj
LPT2:lub wyłącz fizyczny LPT w BIOS.
Masz podobny problem i chcesz, żebyśmy zrobili to z Tobą? Daj znać — pomożemy dobrać właściwy schemat i przygotujemy gotowe skrypty.