正如我在一些指纹手册中所读到的,我们可以将文本文件发送到打印机。意味着我们可以在文本编辑器中编写程序,并使用通信程序使用一些传输命令将整个程序作为文本文件发送到打印机。因为在我的主机中,在 D:/ 中有一个名为 myfile.txt 的文件,其中包含闲置数据
10 PRPOS 200,200
20 DIR 3
30 ALIGN 5
40 PRIMAGE “GLOBE.1”
50 PRINTFEED
RUN
如何将此文件发送到打印机并执行打印图像的说明。请给我一些代码参考。
正如我在一些指纹手册中所读到的,我们可以将文本文件发送到打印机。意味着我们可以在文本编辑器中编写程序,并使用通信程序使用一些传输命令将整个程序作为文本文件发送到打印机。因为在我的主机中,在 D:/ 中有一个名为 myfile.txt 的文件,其中包含闲置数据
10 PRPOS 200,200
20 DIR 3
30 ALIGN 5
40 PRIMAGE “GLOBE.1”
50 PRINTFEED
RUN
如何将此文件发送到打印机并执行打印图像的说明。请给我一些代码参考。
有几种方法可以从命令行执行此操作。例如:
type foo.txt > lpt1:
或者
copy foo.txt lpt1:
或者
print foo.txt
或者
notepad /p foo.txt
如果您需要以编程方式执行此操作,您可以使用 system() 函数或 CreateProcess() 执行任何这些命令。
如果您在 Intermec 手持设备上并且连接到蓝牙打印机,您应该能够打开 COM6 的串行端口并发送文件。什么编程语言?那里应该有很多串行端口通信代码示例。
我对 Intermec PM4i 标签打印机的体验就像坐过山车一样,但我知道我有一个可以工作的应用程序。
我通过通用文本驱动程序尝试了 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 应用程序“直接”提交标签打印输出。
我应该在 Delphi 中创建相同的套接字提交应用程序以删除 javavm 依赖项,但这个解决方案对于我的用例来说更快。我比我的 Delphi 技能水平更熟悉 Java。