我有一个 pdf 文件,其中的图像使用 jpeg2000 压缩。iPad 无法在 pdf 中显示这些图像。是否有免费的实用程序可以将 pdf 文件转换为所有图像均未使用 jpeg2000 压缩的 pdf 版本?正在寻找一种快速解决方案,例如打开 pdf 文件,更改一些设置,另存为..
答案1
我对这个建议持保留态度,因为我目前还没有办法验证它……
不过,我可以肯定的是:Ghostscript 确实支持 JPEG2000 图像压缩(但你可能需要专门以这种方式构建它;请参阅http://svn.ghostscript.com/ghostscript/trunk/gs/doc/Make.htm)。
现在,我不确定的是:有这个-dAutoFilterColorImages=...
命令行参数。您可以像这样使用它:
gswin32c.exe ^
-dBATCH ^
-dNOPAUSE ^
-dSAFER ^
-sDEVICE=pdfwrite ^
-dAutoFilterColorImages=false ^
-dUseFlateCompression=true ^
-sOutputFile=output-pdf-flate.pdf ^
c:/path/to/input-jpeg2000.pdf
如果它像我一样工作思考确实如此,支持 JPEG2000 的 Ghostscript 构建将会准确无误地读取有问题的 PDF,并使用 flate 压缩而不是 JPEG2000 在输出 PDF 中写入图片。
更新:发现了一些额外的信息。
- 最新的 Ghostscript 版本(当前为 8.71)默认启用 JPEG2000。
- “启用 JPEG2000”的意思是:“可以读取和处理输入 PDF 中的 JPEG2000”。
- Ghostscript 没有写JPEG2000 为其输出 PDF [*].
[*]原因:不支持创造JPEG2000 图像,因为编码器需要花费许可费用(并且受到专利限制,因此编写自己的实现是有风险的)。
这意味着您甚至不需要在命令行中添加-dAutoFilterColorImages=...
和-dUseFlateCompression=...
参数。简单地重新提取 PDF 应该就可以了:
gswin32c .... -sDEVICE=pdfwrite -sOutputFile=out.pdf input.pdf
更新 2:
- Ghostscript for Windows,32位,下载位置:http://ghostscript.com/releases/gs871w32.exe
- Ghostscript for Windows,64位,下载位置:http://ghostscript.com/releases/gs871w64.exe
答案2
对于拥有 Windows PC 而无法使用 Mac 的用户:
- 下载 GSView 和 Ghostscript。
- 安装 Ghostscript,然后安装 GSView。
- 在 GSView 中打开您的 PDF
- 从文件菜单中,选择转换。
- 在对话框中的设备下,选择 PDFWrite,然后选择确定
结果输出应该可以在 iOS 设备上正确显示。
答案3
如果您有 Mac,则只需在预览中打开文件并保存即可。保存的 PDF 通常大 5 倍左右,但没有 JPEG200 压缩。