GhostScript中的CropBox和MediaBox

时间:2012-03-02 11:39:22

标签: ghostscript

我正在使用Ghostscript将PDF转换为jpeg缩略图。它适用于大多数文件,但我有一些最终看起来很糟糕 - 就像一个巨大的白色背景上的小缩略图。

这是因为,在那些问题PDF上,MediaBox的大小设置比CropBox大得多。我可以使用-dUseCropbox在Ghostscript中修复此问题,使其忽略MediaBox维度......但这对于没有定义CropBox的其他PDF也不起作用。

所以我可以想到两个解决方案:

  1. 在导入之前以某种方式检查PDF文件以查看它是否已定义CropBox。如果它有CropBox,则使用-dUseCropBox开关。如果它没有定义CropBox,那么我们不使用该开关。

  2. 修改PDF文件本身的MediaBox尺寸,使其与CropBox尺寸相匹配。

  3. 那么我会使用什么代码来检查CropBox / MediaBox维度的PDF文件,并在必要时编辑它们?

3 个答案:

答案 0 :(得分:1)

您打算如何处理没有CropBox的文件?在我看来,你已经尽了所能,如果有一个CropBox(你选择-dUseCropBox),如果没有,那么(如果我没记错的话)GS将会使用MediaBox。

答案 1 :(得分:1)

我认为您真正想要的是从PDF中裁剪空白的程序/脚本,无论媒体/裁剪/裁剪框设置如何,您都可以尝试使用这些免费软件pdf裁剪器:

pdfcrop - perl脚本,适用于多个平台
http://tug.ctan.org/tex-archive/support/pdfcrop
(需要* tex,ghostscript,显然是perl)

PDF Cropper,适用于Windows
http://www.noliturbare.com/pdf-tools/pdf-cropper
(需要ghostscript和.NET 3.5)

或者,如果您有Mac,则可以使用预览应用程序中的裁剪功能。这会将cropbox设置为不触及mediabox(至少在MacOSX 10.4上),允许您使用-dUseCropbox。

答案 2 :(得分:0)

使用Imagemagick代替Ghostscript。例如:

convert -resize 70px file.pdf file.jpg