我需要以与PRINT命令相同的方式将内容发送到C#.NET中的打印机.
我有Godex热敏打印机和QLabel软件捆绑在一起.现在它可以选择将标签保存为可以使用命令提示符PRINT命令传递给打印机的命令.该文件如下所示:
^Q80,3
^W100
^H10
^P1
^S3
^AD
^C1
^R2
~Q+0
^O0
^D0
^E35
~R200
^L
Dy2-me-dd
Th:m:s
AH,0,0,1,1,0,0,X
AH,744,0,1,1,0,0,X
AH,746,560,1,1,0,0,X
AH,0,550,1,1,0,0,X
AG,160,208,1,1,0,0,
AA,234,283,1,1,0,0,Haloo
E
Run Code Online (Sandbox Code Playgroud)
当我做这样的事情时,这是有效的:
net use LPT2 \\localhost\godexUsbPrinter /yes
print /D:LPT2 label.cmd
Run Code Online (Sandbox Code Playgroud)
它很好地打印出我的标签.
现在,如果我在记事本和打印中打开它,它只是打印我这个文本.
我想知道PRINT命令在底层做了什么,我如何编程我的基于C#的程序来复制行为?因为当我实现打印逻辑时,它只是像记事本那样打印纯文本.
我知道我可以PRINT使用C#中的Process.Start 调用命令,但我需要一直替换标签模板中的一些占位符值.我可以在磁盘上创建一个临时文件并打印出来,但我宁愿避免这种情况.
老实说,问题标题是错误的。PRINT根本不做任何特殊的事情,它只是将所有输入刷新到打印机。它是记事本,通过 Windows 的打印系统发送各种用于分页和行结束等的命令,并最终发送您想要打印的数据。您显示的代码是原始打印机数据,因此您必须将其发送为“原始”而不是文本。所以从技术上讲,这是这个问题的重复。
这里解释了如何执行此操作。它使用 P/Invokes 来winspool.Drv.
| 归档时间: |
|
| 查看次数: |
734 次 |
| 最近记录: |