Опитът ми с принтера за етикети Intermec PM4i беше невероятен, но знам, че имам работещо приложение.
Опитах конвейер за принтер на Windows чрез драйвер generictext. Работи от Notepad, но с няколко ъглови кутии.
Отпечатването директно от Notepad работи добре, докато не опитах QRCODE изображение с много дълъг текстов ред. Изображението не се отпечата. Текстът на qrcode е кратък от няколко знака и същият скрипт работи добре.
INPUT OFF
NASC 1252
BF OFF
FT "Swiss 721 Bold BT",12,0,100
PP 50,500:PT "Text line goes here"
PP 400,400:AN 7:BARSET "QRCODE",1,1,7,2,4
PB "ABC123 aabbcc....very long text goes here...I mean about 200 chars or more"
PRINTFEED
Беше като бележник, който изряза текст до дясната граница и командният низ беше прекъснат. Направих предпочитания за печат A3-пейзаж и той приемаше по-дълъг текст, но все още не беше достатъчно за всички случаи на употреба.
Всички принтери имат физическа максимална ширина на печат, но тя не трябва да се взема предвид във файлове със скриптове за пръстов отпечатък/директен протокол. В крайна сметка ние не отпечатваме този текст такъв, какъвто е, а подаваме команди към принтера.
Моето решение беше да създам Java приложение, което отваря необработен TCP сокет до адрес 11.22.33.44:9100 и пише текстови редове, редове, завършващи с NL(#10). Работи добре. Друг помощен инструмент, който направих, беше Delphi app.exe за четене на IP адрес от принтерен обект на Windows. Мога да изпратя разпечатки на етикети "директно" от приложението на Excel.
- Крайните потребители редактират редове с данни на Excel и щракват върху бутона ПЕЧАТ НА ЕТИКЕТИ
- vba макрос анализира файл с шаблон на пръстов отпечатък с ${FIELD1} заместители за намиране и замяна
- файлът се записва в папка %wintemp%/intermec_script.txt
- извикайте app.exe, за да прочетете IP адреса на избрания от потребителя принтер
- извикайте java приложение, за да изпратите intermec_script.txt към IP:PORT сокет
Трябва да създам същото приложение за изпращане на сокет в Delphi, за да премахна зависимостта от javavm, но това решение беше по-бързо за моя случай на употреба. По-запознат съм с Java, отколкото с нивото си на умения в Delphi.
person
Whome
schedule
11.11.2014