【问题标题】:PHP imagick with PDF issue带有PDF问题的PHP imagick
【发布时间】:2013-04-04 00:22:54
【问题描述】:

我正在尝试将 PDF 的第一页转换为图像文件。

我有以下代码:

$im = new imagick('/images/test.pdf[0]');

$im->setImageFormat("jpg");
$page=$im->queryFormats();
echo "<pre>";
 print_r ($page);
echo "</pre>";

但是,我收到一条错误消息:

Uncaught exception 'ImagickException' with message 'unable to open image

如果我改变:

$im = new imagick('/images/test.pdf[0]');

到:

$im = new imagick('/images/test.pdf');

我收到以下错误:

Uncaught exception 'ImagickException' with message 'Unable to read the file

我确定我的 PDF 的路径是正确的,但我不确定如何解决这个问题。谁能帮我解决这个问题?

【问题讨论】:

    标签: php pdf imagick


    【解决方案1】:

    您的驱动器的根目录中有/images 文件夹吗?请记住 - imagick 在 PHP 中运行,并且不知道您网站的 URL 空间结构是什么。您需要使用本地文件系统路径,例如

    $im = new imagick('/path/to/example.com/html/images/test.pdf[0]');
    

    【讨论】:

    • 感谢 Marc B,我确实尝试了 http*://mysite/images/test.pdf,但仍然无法正常工作。 +1 虽然。
    • 使用 url 是行不通的。您将对自己的服务器发出完整的 http 请求,这是非常低效的。 var_dump(is_readable('/images/test.pdf')) 显示什么?如果它是布尔值 false,那么你肯定走错了路。
    • 我已经尝试过 var_dump(is_readable('/images/test.pdf')) 并且它显示为错误。但是,我添加了 echo "test";在下一行,我可以单击它并打开它。为什么?
    • 因为就像我说的,/images 就像 c:\images 就 php/imagick 而言。您需要使用 FILESYSTEM 路径,而不是 web url 类型的路径。
    • 我明白了。非常感谢 Marc B。我会试一试的。
    猜你喜欢
    • 2011-07-24
    • 2013-12-08
    • 2014-07-07
    • 2014-10-29
    • 2019-04-07
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多