繁体   English   中英

如何从C#中的源获取“打印机就绪字节”?

[英]How to get “printer ready bytes” from a source in c#?

我在这里有点麻烦,希望您能帮助其他程序员。

我有一个应用程序,它接收一个指向原始字节(加上长度和填充物)的指针,并将所述原始数据发送到打印机。 这很重要,我别无选择,只能使用此方法完成任何打印。

如果我发送原始字符串,它将毫无问题地打印。 但是,我需要能够打印格式化的文本,图像等。所以事情是...我希望能够从给定的源获得打印机准备好的字节(可能是pdf或html,因为只要它包含格式化的文本和/或图像)。 就像“分割”打印命令一样:

a)打开文件并读取数据b)将打印机数据加载到内存中c)将字节发送到打印机

显然,我已经得到了a)和c)的保护,这是b)伤了我的脑袋。

有什么想法吗?

在此先感谢您的帮助。

您需要的是打印机处理器,以接收您的打印命令并创建格式化的数据。 我希望您不想自己做这件事(格式化为打印机就绪的数据,即使您知道PS,AFP,PCL或目前的情况,也很难,并且需要几个月的工作)。 而是应使用Windows的打印机处理器。

如果您使用的是Windows(我想是因为您使用C#,但也许您使用的是Mono),则可以将任何打印机命令发送到文件(只需使用FILE:端口)。 要创建格式化的数据,请使用您拥有的任何PDF库,或使用.NET Framework支持的RTF,然后将其发送到选定的打印机(该打印机应与应用程序另一端的同一台打印机匹配),在端口FILE:上配置的。

然后将原始打印数据存储在磁盘上,您可以简单地将其作为字节数组读取,并使用已经获得的应用程序发送到实际打印机。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM