Java PDF格式到简单图像PDF

Java PDF格式到简单图像PDF,java,image,pdf,Java,Image,Pdf,如何使用Java将AdobeLiveCycle制作的PDF格式转换为简单的图像PDF格式? 我尝试使用ApachePDFBox,但它无法将图像保存为PDF格式。 这就是我尝试的(从这个问题:) String pdfFilename=“PDForm_1601661791_587488.pdf”; try(PDDocument document=PDDocument.load(新文件(pdfFilename))){ PDFRenderer PDFRenderer=新的PDFRenderer(文件);

如何使用Java将AdobeLiveCycle制作的PDF格式转换为简单的图像PDF格式? 我尝试使用ApachePDFBox,但它无法将图像保存为PDF格式。 这就是我尝试的(从这个问题:)

String pdfFilename=“PDForm_1601661791_587488.pdf”;
try(PDDocument document=PDDocument.load(新文件(pdfFilename))){
PDFRenderer PDFRenderer=新的PDFRenderer(文件);
对于(int page=0;page

但是不起作用,结果是一个图像,上面写着“您试图加载的文档需要Adobe Reader 8或更高版本。

我想这是不可能的,我尝试了许多库,但都没有成功

我就是这样解决这个问题的:

我使用了一个外部工具——PDFCreator。 在PDFCreator中,我创建了一个特殊的打印机,可以打印和保存PDF,而无需询问任何问题(PDFCreator中有这些选项)。 这很容易在PDFCreator中复制,因为在调试部分,您可以选择加载配置文件,所以我已经准备好了文件,只需安装PDFCreator并加载配置文件

如果您要在上面的链接中使用我的INI文件,您应该知道生成的PDF会自动保存在“当前用户文件夹/桌面/临时”文件夹中

剩下的工作是使用AdobeReader从Java完成的,代码在我的例子中是:

ProcessBuilder pb = new ProcessBuilder(adobePath, "/t", path+"/"+filename, printerName);
Process p = pb.start();
此代码在AdobeReader中打开我的PDF,将PDF打印到指定的虚拟打印机,并自动存在

  • “adobePath”是adobe可执行文件的路径
  • 路径+“/”+文件名是指向我的PDF的路径
  • “printerName”是在PDFCreator中创建的虚拟打印机的名称

因此,这不是一个纯粹的Java解决方案,在未来,我打算使用Apache PDFBox以与浏览器和所有阅读器兼容的格式生成PDF……但这也能起作用。

这意味着您有一个纯XFA表单定义的PDF。PDF中的XFA表单几乎不受任何非Adobe PDF处理器的支持,并且已被obsol禁用三年前已被删除/弃用,但它们仍然被政府机构特别使用。Pdfbox不支持此类表单,它只允许检索和设置其xml表示形式。您能更好地解释一下吗?我面临同样的问题,我想用Java编程解决它。在评论中写太多了,例如这是我的原始解决方案,希望您能使用它。
ProcessBuilder pb = new ProcessBuilder(adobePath, "/t", path+"/"+filename, printerName);
Process p = pb.start();