Как отправить текстовый файл на принтер

Как я прочитал в каком-то руководстве по отпечаткам пальцев, мы можем отправить текстовый файл на принтер. Это означает, что мы можем написать программу в текстовом редакторе и отправить всю программу в виде текстового файла на принтер, используя программу связи, используя некоторые команды передачи. потому что на моем хосте есть файл с именем 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. Он работает из Блокнота, но с несколькими угловыми случаями.

Печать напрямую из Блокнота работает нормально, пока я не попробовал изображение 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