java - 如何将任意 PDF 文件降级为 PDF-1.2 版本?

标签 java pdf itext

我有一些用户生成的 PDF 文件。通常,这些文件是用 Word 生成的,但它们可能只是任何一种有效的 PDF 文件。如果他们有更高的版本号,我想将文件转换为 PDF-1.2 版。应删除仅在更高版本(如多媒体)中可用的功能,结果仍应合理且可读。

如果没有 Adob​​e Acrobat 等交互式工具,如何以编程方式执行此操作?最好使用 Java 和 iText -library,但我也会对其他解决方案感兴趣。

一种方法是从原始 PDF 生成一堆图像,然后将它们打包为 PDF-1.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

关于java - 如何将任意 PDF 文件降级为 PDF-1.2 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4623839/

相关文章:

java - 如何使用正则表达式或其他技术解析该字符串?

java - 奇怪的 XML 结构的验证

java - 使用java读取pdf文件

pdf - PDF 线宽如何在水平和垂直维度上与 CTM 交互?

java - 更改现有 PDF 文档的方向(纵向/横向)

java - Netty 4 - 管道头部的出站消息被丢弃

java - 在 Spring Framework 3.0 中同时使用 Hibernate 和 Jdbc

java - 使用servlet在新窗口中打开pdf文件

java - 无法使用 iText PdfDiv 绝对位置

java - Itext 7 分割段落