是否有javax.print.StreamPrintService的任何实现?

是否有javax.print.StreamPrintService的任何实现?,java,printing,java-print,Java,Printing,Java Print,我正在为JavaWebStart应用程序准备一个验收测试工具。该应用程序自动将PDF打印到系统安装的打印机上,我想验证生成的PDF是否正确。为此,我正在寻找一种模拟打印的方法 在测试之前,我找到了一种注册定制打印服务的方法: PrintServiceLookup.registerServiceProviderfakePrinterService 我知道如何在我测试过的应用程序中选择假打印机服务 不幸的是,我没有发现javax.print.StreamPrintService的实现,我可以使用它来

我正在为JavaWebStart应用程序准备一个验收测试工具。该应用程序自动将PDF打印到系统安装的打印机上,我想验证生成的PDF是否正确。为此,我正在寻找一种模拟打印的方法

在测试之前,我找到了一种注册定制打印服务的方法:

PrintServiceLookup.registerServiceProviderfakePrinterService

我知道如何在我测试过的应用程序中选择假打印机服务

不幸的是,我没有发现javax.print.StreamPrintService的实现,我可以使用它来打印到文件中,只有sun.print.PSStreamPrintService可以打印到postscript。它似乎也是JDK内部的一部分,而不是一个公共API。这是可行的,但也留下了一些疑问

还有其他的java打印机实现吗?如果它能打印一份pdf,那将是最好的。
如果没有,我想我会选择PSStreamPrintService和ps2pdf转换。

为什么不用JMock或Mockito之类的东西来模拟它呢?值得一试,但如果存在的话,不如使用ready printer实现那么简单。我的最终目标是将打印的文档保存为pdf文件,这样我就可以将其与之前准备的模板进行比较。如果我可以从mock访问原始数据,mock就可以了。在我的例子中,文档流位于java.awt.print.Book中的某个地方,在org.icepdf.ri.common.PrintHelper中,所以要将其取出并不容易。