需求:在移动设备上查看基于XFA的PDF。
我尝试过的选择:
下面是打印任务的示例代码。Acrobat是为“Adobe”打印服务安装的。
import java.awt.print.PrinterJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
...
private static void writePDF(long uid, Path path) throws Exception {
final String inFile = path.toString();
PDDocument pdfdoc = PDDocument.load(inFile);
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPageable(new PDPageable(pdfdoc));
// printJob.setPrintable(new PDPageable(pdfdoc));
printJob.setPrintService(getSystemPrinter("Adobe PDF"));
printJob.setJobName(path.getFileName().toString());
pdfdoc.silentPrint(printJob);
}
private static PrintService getSystemPrinter(final String printerName) {
PrintService desiredPrinter = null;
for (PrintService printer : PrintServiceLookup.lookupPrintServices(null, null)) {
if (printerName.equalsIgnoreCase(printer.getName())) {
desiredPrinter = printer;
break;
}
}
return desiredPrinter;
}
有人请建议一个解决办法,以达到预期的目标。谢谢!
发布于 2020-09-29 13:27:24
我使用免费的PDF Creator打印机解决了这个问题,该打印机被配置为将文件存储到某个目录。然后,我创建了一个REST来打印XFA PDF并将PDF1.4返回给API客户端。它起了作用,但效果很慢。应该说质量的结果PDF是非常好的。
还尝试通过Ghostscript将Adobe和Microsoft打印到PDF打印机,但它只打印“请等待.”页面。
https://stackoverflow.com/questions/36503338
复制相似问题