使用exec将pdf转换为jpg

时间:2013-05-02 13:47:22

标签: php imagemagick jpeg converter

我想将PDF图像转换为.JPG图像。

我创建了一个convert.php,我可以使用PDF文件的文件名调用它并将其转换为jpg。我将此函数称为:http://www.example.ch/tools/img/cache/convert.php?f=MyPdf.pdf

这看起来像这样:

if ($f = @$_REQUEST['f']) {
    $f = htmlspecialchars(urldecode($f));
    $url  = 'http://www.example.ch/img/cache/'.$f;


    $file = strtolower($f);

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');

    $data = curl_exec($ch);

    $retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    curl_close($ch);
    if ($retcode == 200) {
        file_put_contents($file, $data);
        $converted_filename = str_replace('.pdf', '.jpg', $file );
        $cmd = 'convert '.$file.' '.$converted_filename;
        exec('convert '.$file.' '.$converted_filename);
        $fp = fopen($converted_filename, 'rb');

        header('Content-Type: image/jpeg');
        header("Content-Length: " . filesize($converted_filename));
        fpassthru($fp);
        exit;
    } else {
        header("HTTP/1.0 404 Not Found");
    }

}

完成此操作后,我在我的文件夹中得到一个大小为700KB的.jpg文件,因为它已损坏而无法打开它。 HTML输出也是这样的:图像不能被禁用,因为它包含错误..

1 个答案:

答案 0 :(得分:0)

上面最好的工具是ImageMagic。

在您的系统中安装Image magic并参考此链接

Convert PDF to JPEG with PHP and ImageMagick

使用ImageMagic很容易做这些事情。另请参阅此链接

http://php.net/manual/en/imagick.setimageformat.php

希望这能解决您的问题