其他分享
首页 > 其他分享> > c – Qt:打印原始文本

c – Qt:打印原始文本

作者:互联网

我需要在Qt应用程序中将ZPL脚本输出到Zebra打印机.
打印机位于客户端计算机中配置为原始打印机的smb共享网络上.

如果我从C测试程序中调用cupsPrintFile(“printer_name”,“./ tmp_print_file.zpl”,“”,0,NULL),一切都会好起来的.

如果我使用QTextDocument :: print()使用“./tmp_print_file.zpl”中的相同文本作为文档,则不会打印任何内容.
我嗅到网络,发现发送到打印机服务器的数据不是原始数据,但是,后记!

有没有办法将数据发送到打印机而不进行任何修改?

>让我明确一点,我不想渲染文本,只是将准备打印的标签脚本直接发送到了解ZPL协议的打印机.

谢谢大家.

编辑:

正如@Martin所说,我试过:

printer.setOutputFormat( QPrinter::NativeFormat );
QTextDocument   *doc = new QTextDocument( QString( label ), this );
doc->print( &printer );

但它不起作用.

解决方法:

你能完全按照你在测试程序中所做的那样做:

>创建一个临时文件(QTemporaryFile).
>将内容发送到文件.
>调用cupsPrintFile方法.

或者,CUPS API可能有一种绕过临时文件的方法.免责声明:我对CUPS API完全没有经验;这只是粗略地看一些在线文档.看起来可能是以下顺序:

> cupsCreateJob> cupsStartDocument> cupsWriteRequestData> cupsFinishDocument

如果可行,您只需要将QString转换为正确的字节编码.

标签:zebra-printers,c,linux,printing,qt
来源: https://codeday.me/bug/20190903/1798091.html