0

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

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

任何帮助是极大的赞赏。谢谢。

4

1 回答 1

1

打印总是一件麻烦事——这是不可避免的,因为您必须担心繁琐的细节,例如页面大小、边距大小以及输出需要多少页。正如您所料,打印图像的过程与打印文本的过程不同,并且您可能还会遇到具有不同功能的多台打印机的额外复杂性,因此对于某些类型的文档,您需要选择合适的打印机。

请参阅以下链接:

http://vineetreynolds.wordpress.com/2005/12/12/silent-print-a-pdf-print-pdf-programmatically/ http://hillert.blogspot.com/2011/12/java-print-service-挫折感.html

于 2013-01-30T11:48:10.707 回答