如何将文本文件发送到打印机

时间:2012-12-27 11:01:27

标签: printing fingerprint printers intermec

当我阅读一些指纹手册时,我们可以将文本文件发送到打印机。意味着我们可以在文本编辑器中编写程序,并使用通信程序使用一些传输命令将整个程序作为文本文件发送到打印机。 因为在我的主机中,D:/中有一个名为myfile.txt的文件,其中包含以下数据

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

如何将此文件发送到打印机并执行指令以打印图像。 请给我一些代码参考。

3 个答案:

答案 0 :(得分:2)

有几种方法可以从命令行执行此操作。例如:

type foo.txt > lpt1:

或者

copy foo.txt lpt1:

或者

print foo.txt

或者

notepad /p foo.txt

如果需要以编程方式执行,可以使用system()函数或CreateProcess()执行任何命令。

答案 1 :(得分:0)

如果您使用的是Intermec手持设备并且已连接到蓝牙打印机,则应该能够打开COM6的串行端口并将文件发送出去。什么编程语言?那里应该有很多串口通信代码示例。

答案 2 :(得分:0)

我对Intermec PM4i标签打印机的体验是过山车,但我知道我有一个可用的应用程序。

我通过generictext驱动程序尝试了Windows打印机管道。它可以在记事本中工作,但几乎没有角落情况。

直接从记事本打印工作正常,直到我尝试使用非常长的文本行的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-landscape,它接受了更长的文本,但仍然不足以用于所有用例。

所有打印机都具有物理最大打印宽度,但不应在指纹/直接协议脚本文件中考虑。毕竟我们不按原样打印此文本,而是将命令提交给打印机。

我的解决方案是创建Java应用程序,它打开一个原始TCP套接字到11.22.33.44:9100地址并写入文本行,由NL终止的行(#10)。工作良好。我做的另一个帮助工具是Delphi app.exe从Windows打印机对象读取IP地址。我可以直接从Excel应用程序提交标签打印输出。

  • 最终用户编辑Excel数据行,然后单击“打印标签”按钮
  • vba宏使用$ {FIELD1}查找和替换替换
  • 解析指纹模板文件
  • 文件写入%wintemp%/ intermec_script.txt文件夹
  • 调用app.exe以读取用户选择的打印机的IP地址
  • 调用java app将intermec_script.txt提交给IP:PORT socket

我应该在Delphi中创建相同的套接字提交应用程序以放弃javavm依赖,但这个解决方案对我的用例更快。我比熟悉Java技能水平更熟悉Java。