【问题标题】:PDF to JPG with PHP unexpected behaviour带有 PHP 意外行为的 PDF 到 JPG
【发布时间】:2016-06-03 04:38:15
【问题描述】:

我正在使用 Imagick 将 PDF 中的所有页面转换为 JPG。但是有些东西不对劲,可能是因为我缺乏 PDF 知识。

问题
我正在转换的 PDF 是一本书。除了封面/第一页外,所有页面都很棒。如果我在 PDF 预览器中打开 pdf,它看起来应该是这样,但我转换后的图像显示封面页 + 书的背面。如果我在 Illustrator 中打开 PDF 的第一页,我会得到与图像相同的结果。我也有一些 pdf 包含边距的问题,这些边距没有显示在 PDF 预览器中,而是在我的图像中显示为空白。

但是当转换为图像时,背面是白色的。就像它不存在但图像尺寸等于它们两者一样。

原因及解决方法
为什么会发生这种情况,我可以以某种方式忽略背部吗?还是应该在 PDF 中修复?该死的……

代码示例

//...
$imagick->readImage('book.pdf[0]');
//...
file_put_contents('cover.jpg', $imagick):

可能的解决方案
好像如果我使用 trimImage 我会得到预期的结果。所以我有一个额外的问题。 trimImage 是如何工作的?它如何知道要修剪什么,例如,如果我有一个中间有文字的白色图像?

【问题讨论】:

  • 您能否分享一份显示此行为的 PDF 文档?
  • 我可以尝试创建类似的效果,但我无法分享我目前拥有的书籍
  • 如果 trimImage 重置它,那么测试一下 $imagick->setImagePage($imagick->getImageWidth, $imagick->getImageHeight(), 0, 0); 做了什么会很有趣。
  • 嗯,是的,一定会尝试的。非常有趣,它要么会导致出现白框,要么会神奇地解决问题。

标签: php pdf jpeg imagick


【解决方案1】:

我设法解决了这个问题,而且解决方案非常简单。解决方案是使用 cropbox。您可以使用 setOption 设置 Imagick 选项。

$imagick->setOption('pdf:use-cropbox', 'true');

可在此处找到可用选项:http://www.imagemagick.org/script/command-line-options.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多