Как да изпратите текстов файл на принтер

Както прочетох в някакво ръководство за пръстови отпечатъци, можем да изпратим текстов файл на принтера. Означава, че можем да напишем програмата в текстовия редактор и да изпратим цялата програма като текстов файл на принтера, използвайки комуникационната програма, използвайки някои команди за прехвърляне. защото в моя хост има файл, наречен myfile.txt в D:/ със следващите данни

10 PRPOS 200,200
20 DIR 3
30 ALIGN 5
40 PRIMAGE “GLOBE.1”
50 PRINTFEED
RUN

Как мога да изпратя този файл на принтер и да изпълня инструкциите за отпечатване на изображението. Моля, дайте ми някаква препратка към кода.


person user1912935    schedule 27.12.2012    source източник
comment
Това не е ли почти същия въпрос?   -  person Howard    schedule 27.12.2012


Отговори (3)


Има няколко начина да направите това от командния ред. Например:

type foo.txt > lpt1:

Or

copy foo.txt lpt1:

Or

print foo.txt

Or

notepad /p foo.txt

Ако трябва да го направите програмно, можете да изпълните някоя от тези команди с помощта на функцията system() или CreateProcess().

person Carey Gregory    schedule 04.01.2013

Ако използвате преносим компютър Intermec и сте свързани с Bluetooth принтер, трябва да можете да отворите сериен порт към COM6 и да изпратите файла си. Какъв език за програмиране? Трябва да има много примери за комуникационни кодове на сериен порт.

person IowaEric    schedule 29.04.2014

Опитът ми с принтера за етикети 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