【问题标题】:Can't read pdf file with Imagemagick无法使用 Imagemagick 读取 pdf 文件
【发布时间】:2018-12-06 09:45:18
【问题描述】:

我正在尝试将 pdf 文件转换为 png。它可以在命令行上运行,但不能通过 php 代码运行。我从 php.net 尝试了这个代码示例:

<?php 
  $imagick = new Imagick(); 
  $imagick->readImage('myfile.pdf'); 
  $imagick->writeImages('converted.jpg', false); 
?>   

当我使用相对路径时,会出现以下错误:

致命错误:带有消息的未捕获异常“ImagickException” 'UnableToOpenBlob'myfile.pdf':没有这样的文件或目录@ 错误/blob.c/OpenBlob/2702' 在 C:\xampp\htdocs\portalgoogle\views\ticket.php:4 堆栈跟踪:#0 C:\xampp\htdocs\portalgoogle\views\ticket.php(4): Imagick->readimage('etiqueta.pdf') #1 {main} 投入 C:\xampp\htdocs\portalgoogle\views\ticket.php 在第 4 行

当我使用完整路径时,它只会在 readImage 行上给出一个致命错误。有人可以告诉我我需要做什么或建议一种更简单的将pdf转换为png的方法吗?我尝试了 pdf.js,但它在 Chrome 上不起作用。

【问题讨论】:

  • myfile.pdf 是否与您的 PHP 文件在同一目录中?你的目录结构是什么?
  • 是的,它在同一个目录中
  • 请使用完整路径并显示确切的错误
  • 它只是说致命错误和具有 readImage 的代码行
  • @blobblob 如果您想获得帮助,显示确切的错误非常重要:)

标签: php pdf imagemagick-convert


【解决方案1】:

这在 Imagick 中是典型的 PDF 文件。 PHP 不使用与 Imagemagick 获取它们的操作系统相同的 ENV 变量。

Imagemagick delegates.xml 文件中使用的 Ghostscript 库必须更改为将 gs 替换为 full path to gs,其中显示:command="&amp;quot;gs&amp;quot;

  <delegate decode="ps" encode="pdf" mode="bi" command="&quot;gs&quot; -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pdfwrite&quot; &quot;-sOutputFile=%o&quot; &quot;-f%i&quot;"/>

在其他使用gs的行中类似

【讨论】:

    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 2017-11-25
    • 1970-01-01
    相关资源
    最近更新 更多