从pdf创建图像

时间:2012-05-04 11:41:37

标签: php image codeigniter imagemagick

我正在创建一个cron作业,我将文件从一个directroy复制到另一个。 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命令。 我检查了命令提示符中的convert命令,导航到

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

然后我运行此命令

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

从命令提示符它起作用但在我的代码中它不起作用。 这条路有什么问题吗?因为当我尝试为它创建缩略图时,文件已被复制。

ImageMagik安装在

 C:\Program Files(x86)\ImageMagik

任何想法我在做什么wron?还有其他更快的方法来为pdf创建缩略图吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

我现在编写代码从exec()中分离代码,以便您可以显示要发送到Imagemagick的信息。 我也会尝试在exec()

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

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

答案 1 :(得分:0)

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

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

应该是:

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