我正在使用Java打印服务来打印PNG文件,但它会向打印机发送错误的输出。实际打印的内容(当我使用PNG时)是一些文字说:
ERROR: /syntaxerror in --%ztokenexec_continue--
Operand stack:
--nostringval-
似乎还有更多文字,但这有点遗失在页边距之外。我将DocFlavor设置为DocFlavor.INPUT_STREAM.PNG
,指定的文件实际上是InputStream
(只需将DoccFlavor更改为DocFlavor.INPUT_STREAM.PDF
并使用pdf文件即可。)
我也尝试过不同的PNG文件,但问题仍然存在。它的价值,甚至PostScript似乎也在起作用。
正在打印的错误与gd
(或ImageMagick?)错误非常相似。所以,我现在最好的假设是从PNG转换 - > PS失败了。
代码如下:
PrintService printService = this.getPrintService("My printer name");
final Doc doc = new SimpleDoc(document, DocFlavor.INPUT_STREAM.PNG, null);
final DocPrintJob printJob = printService.createPrintJob();
此处,getPrintService
获取打印服务并获取有效打印服务。至于document
,我就是这样得到的:
File pngFile = new File("/home/rprabhu/temp/myprintfile.png");
FileInputStream document = new FileInputStream(pngFile);
我不知道为什么会出错,我也没有看到任何错误输出到控制台。
非常感谢任何帮助。感谢。
答案 0 :(得分:1)
印刷总是一件混乱的事情 - 不可避免地会如此,因为你不得不担心繁琐的细节,例如页面大小,边距大小以及输出所需的页数。正如您所料,打印图像的过程与打印文本不同,您可能还会看到具有不同功能的多台打印机的复杂功能,因此对于某些类型的文档,您需要选择合适的打印机。
请参阅以下链接:
http://vineetreynolds.wordpress.com/2005/12/12/silent-print-a-pdf-print-pdf-programmatically/ http://hillert.blogspot.com/2011/12/java-print-service-frustrations.html