ImageMagick PDF 裁剪保留质量
Posted
技术标签:
【中文标题】ImageMagick PDF 裁剪保留质量【英文标题】:ImageMagick PDF crop retain quality 【发布时间】:2016-09-25 17:32:04 【问题描述】:我有一些需要裁剪的 PDF 文件(裁剪到修剪框等),我可以使用以下命令来完成
convert -define pdf:use-trimbox=true -density 300 original.pdf outcome.pdf
它可以完成这项工作,但结果.pdf 的质量如果不如原始 PDF 清晰。当我在我的桌面软件(Acrobat Pro)上裁剪它们时,它的质量相同,但在 ImageMagick 中我无法保持相同的质量。
我的问题是如何在不影响质量的情况下裁剪 pdf 页面?
我已经搜索并尝试了数周的不同设置,但没有成功。
【问题讨论】:
ImageMagicks
convert` 命令在后台使用 Ghostscript 将(可能)矢量 PDF 页面首先转换为光栅图像。然后它将“修剪框”应用于图像并将整页光栅图像再次包装到 PDF 页面容器中。换句话说,你的整块肉都变成了碎肉——没有办法取回你的整块肉。 (您必须使用其他避免光栅化的工具。)
【参考方案1】:
问题很可能是 ImageMagick 将 PDF 渲染为 Ghostscript 的位图,然后将位图导出到 PDF 文件中。如果没有看到原件,我不能肯定地说,但如果原件包含 JPEG 图像,那么很可能您最终会应用两次 JPEG,或者只是简单地渲染导致问题。
您最好的选择是使用可以简单地将 CropBox 应用到页面的工具。例如,您可以使用 Ghostscript 执行此操作(它还可能以其他方式修改 PDF,包括双 JPEG 量化,所以要小心)。
gs -sDEVICE=pdfwrite \
-sOutputFile=cropped.pdf \
-dBATCH -dNOPAUSE \
-c "<</ColorImageFilter /FlateEncode>> setdistillerparams" \
-f <input.pdf> \
-c "[ /CropBox [ 0 0 100 100] /PAGES pdfmark" \
-f
-c
和 -f
之间的第一部分告诉 pdfwrite 设备对彩色图像使用 FlateEncode,默认为 JPEG,使用 Flate 将确保您不会两次应用量化。
-c
和 -f
之间的第二部分告诉 pdfwrite 设备将 CropBox 写入文件并将其设置为 0,0 到 100,100。单位是 PDF 中的常用单位; 1/72 英寸,您可以使用小数值。
我相信还有其他工具可以做到这一点,而且可能更容易。
【讨论】:
【参考方案2】:您是否尝试过增加密度?这就是目的:
http://www.imagemagick.org/script/command-line-options.php#density
否则试试:
-质量 100
来自: Convert PDF to image with high resolution
【讨论】:
您好,我已经尝试过质量,将密度提高到 600,但仍然不能完美处理 很抱歉,但我在文档中看不到任何其他可能解决此问题的选项。如文档所述,您可以将质量提高到 1024。以上是关于ImageMagick PDF 裁剪保留质量的主要内容,如果未能解决你的问题,请参考以下文章
Imagemagick / ghostscript将裁剪标记添加到pdf