2010-04-07 156 views
1

我需要從動態(數據庫驅動)pdf創建縮略圖。過去我已經使用過以下腳本的變體,但現在看起來並不適合我(頁面剛剛掛起)。將動態PDF轉換爲Imagemagick並轉換爲PNG

<?php 
require_once('./template/all_includes.php'); 

$descriptorspec = array(
    0 => array("pipe", "r"), // stdin is a pipe that the child will read from 
    1 => array("pipe", "w"), // stdout is a pipe that the child will write to 
    2 => array("pipe", "w") // stderr is a file to write to 
); 

$cwd = '/tmp'; 
$env = array('asdfadf' => '193'); 

$convert = "convert pdf:- png:-"; 
$process = proc_open($convert, $descriptorspec, $pipes, $cwd, $env); 

    fwrite($pipes[0], 'php /var/www/html/domain.co.uk/store/pdf.php'); 
    fclose($pipes[0]); 

    while(!feof($pipes[1])) $im .= fread($pipes[1], 1024); 
    fclose($pipes[1]); 

    $return_value = proc_close($process); 

header("Content-Type: image/png"); 
echo $im; 

    ?> 

有人能幫我解決這個問題嗎?非常感謝:)

回答

0

Magick可以本地打開PDF文件:

$im = new MagickWand('file.pdf[3]'); // open page 3 of the PDF 
$png = $im->whateverTheMethodIsForPNG(); 
+0

我想避免API的是對性能的影響是在執行exec顯著() – 2010-04-07 14:43:52

+0

在哪裏我使用'EXEC()'? – 2010-04-07 15:30:52

+1

我不是很清楚。使用PHP Native API的性能比使用命令行(通過exec或類似)有顯着的性能。因此我需要使用我概述的方法。 – 2010-04-08 08:25:36