我有一些用户生成的PDF文件。通常,文件是使用Word生成的,但它们可能只是一种有效的PDF文件。如果文件版本号较高,我想将文件转换为PDF-1.2版。应该删除仅在更高版本(如多媒体)中可用的功能,结果应该仍然合理且可读。
如果没有Adobe Acrobat等交互式工具,如何以编程方式执行此操作?最好是Java和iText - 库,但我也会对其他解决方案感兴趣。
一种方法是从原始PDF生成一堆图像,然后将它们打包为PDF-1.2文件,但这是一种更优雅的方式吗?
答案 0 :(得分:2)
尝试下面的命令行。它使用Ghostscript重新提取PDF。使用Ghostscript版本8.71或更高版本:9.00。 (以上错误的投票回答建议“使用setPdfVersion()”在iText中设置PDF版本将无效 - 它只会重新标记PDF,这只会导致误导。 。)
gswin32c.exe ^
-o output-v1.2.pdf ^
-sDEVICE=pdfwrite ^
-dPDFSETTINGS=/ebook ^
-dCompatibilityLevel=1.2 ^
input-v1.6.pdf
答案 1 :(得分:1)
最简单的方法是通过Ghostscript重新打印。
答案 2 :(得分:1)
您可以使用setPdfVersion()在iText中设置PDF版本,但我认为降级不会开箱即用。您可以使用PdfCopy并将您的pdf写入1.2版本的新版本,并删除所有无1.2对象。或者将它们转换为1.2版本的对象(我认为你必须自己做,但不确定)