无法使用Java打印服务打印PNG文件(其他一切正常)

时间:2012-05-07 09:38:31

标签: java printing

我正在使用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);

我不知道为什么会出错,我也没有看到任何错误输出到控制台。

非常感谢任何帮助。感谢。

1 个答案:

答案 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