PDF イメージを .JPG イメージに変換したい。
PDFファイルのファイル名で呼び出してjpgに変換できるconvert.phpを作成しました。この関数を次のように呼び出します: 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出力も次のようになります。エラーが含まれているため、画像を開けません..