【问题标题】:CropBox and MediaBox in GhostScriptGhostScript 中的 CropBox 和 MediaBox
【发布时间】:2012-03-02 11:39:21
【问题描述】:

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

这是因为在那些有问题的 PDF 中,MediaBox 设置为比 CropBox 大得多。我可以通过使用 -dUseCropbox 在 Ghostscript 中解决此问题,使其忽略 MediaBox 尺寸……但这不适用于未定义 CropBox 的其他 PDF。

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

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

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

那么我将使用什么代码来检查 PDF 文件的 CropBox/MediaBox 尺寸,并在必要时对其进行编辑?

【问题讨论】:

    标签: ghostscript


    【解决方案1】:

    您打算如何处理没有 CropBox 的文件?在我看来,您已经在尽一切努力,如果存在 CropBox(并且您选择 -dUseCropBox),则使用它,如果没有,那么(如果我没记错的话)GS 将使用 MediaBox。

    【讨论】:

    • 不,问题是 -dUseCropBox 在裁剪框不存在时不会恢复为媒体框。它只处理定义了裁剪框的文件并跳过没有裁剪框的文件。
    • 换句话说,我希望它使用cropbox(如果存在)和mediabox(如果不存在)。如果 -dUseCropBox 以这种方式工作,那将是有意义的,但事实并非如此。它仅适用于定义了裁剪框的文件,并且不像我希望在裁剪框不存在时那样默认为媒体框。
    【解决方案2】:

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

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

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

    或者,如果您有 Mac,您可以使用预览应用程序上的裁剪功能。这会在不接触媒体框的情况下设置裁剪框(至少在 MacOSX 10.4 上是这样),允许您使用 -dUseCropbox。

    【讨论】:

      【解决方案3】:

      使用 Imagemagick 代替 Ghostscript。例如:

      convert -resize 70px file.pdf file.jpg
      

      【讨论】:

      • 这将光栅化 PDF,在某些情况下可能不是您想要的。
      • 是的,但问题的描述表明想要创建 JPG 缩略图。也许应该编辑标题以澄清。
      猜你喜欢
      • 2011-02-09
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2011-07-15
      相关资源
      最近更新 更多