从 pdf 创建图像


Image creation from pdf

我正在创建一个cron作业,在其中我将文件从一个直接复制到另一个直接。cron 作业工作正常,它将文件复制到导入目录。导入目录的结构是这样的。

import
      folder1
          pdf_file1
      folder2
          pdf_file2

正在尝试为每个复制到文件夹的 pdf 文件创建一个缩略图,我安装了 ImageMagik 和我的 php 代码来创建 thumnail 图像是

 if ($preview != "") {
    $copy_res = ftp_get("files/upload/" . $ftp_upload["path"] . "/" . $preview, "files/import/" . $ftp_upload["preview"] . "/" . $preview);
    $md5_checksum = md5("files/import/" . $ftp_upload["path"] . "/" . $preview);
 } else {
         //$pdf_file = 'files/import/folder1/pdf_file1';
         $pdf_file = 'files/import/' . $ftp_upload["path"]."/".$filename_new;
         if (file_exists($pdf_file)){
             echo 'I am here';
             exec("convert -density 300 " . $pdf_file . "[0]" . $filename_new . ".jpg");
         }
 }

当我运行代码时,它会进入 else 语句并回显该行,但它不执行 exec 命令。我从命令提示符检查了我导航到的转换命令

 C:'wamp'www'project'files'import'folder1 

然后我运行这个命令

 exec("convert -density 300  test.pdf[0]  test.jpg");

从命令提示符下它可以工作,但在我的代码中它不起作用.路径有问题吗?因为当我尝试为其创建缩略图时,该文件已被复制。

ImageMagik 安装在

 C:'Program Files(x86)'ImageMagik

知道我在做什么吗? 有没有其他更快的方法来为 pdf 创建拇指甲图像?

提前致谢

我现在编写代码,将代码从exec((中分离出来,以便您可以显示要发送到Imagemagick的信息。我也会尝试在 exec(( 之外设置文件名

$input = $pdf_file . "[0]";
$output = $filename_new . ".jpg"
$cmd = " -density 300 $input -thumbnail 200x300 $output ";
// echo $cmd."<br>";
exec("convert $cmd");

添加了调整大小,但它将保持图像比例 - 如果您需要确切的大小,您可以裁剪图像或用颜色填充它。

似乎缺少一个空格,用于分隔pdf文件的路径和图像文件的新名称。

exec("convert -density 300 " . $pdf_file . "[0]" . $filename_new . ".jpg");

应该是:

exec("convert -density 300 " . $pdf_file . "[0] " . $filename_new . ".jpg");
-----------------------------------------------^