【发布时间】:2012-12-11 14:52:53
【问题描述】:
我想使用 Imagick 将 pdf 页面转换为 png 图像。
我用PHP试过了,但是画质很差。
用命令行试试,结果很完美。
PHP 代码
$im = new imagick( __DIR__ . DIRECTORY_SEPARATOR.$PDFName.'['.$i.']' );
$params = $im->identifyImage();
$width = $params['geometry']['width']*1;
$height = $params['geometry']['height']*1;
$im->setResolution(400,400);
$im->resizeImage($width ,$height, imagick::FILTER_SINC, 1, true);
$im->writeImage(__DIR__ . DIRECTORY_SEPARATOR.'pdf_pages\\'.$i.'.png');
$im->clear();
$im->destroy();
命令行代码
convert -density 400 a.pdf -resize 25% -a.png
PHP 代码(第二次尝试)
$im = new imagick( __DIR__ . DIRECTORY_SEPARATOR.$PDFName.'['.$i.']' );
$im->setOption('density','400x400');
$im->setOption('resize','25%');
$im->writeImage(__DIR__ . DIRECTORY_SEPARATOR.'pdf_pages\\'.$i.'.png');
$im->clear();
$im->destroy();
结果仍然很糟糕。
我能做什么?我想在我的 PHP 代码中使用密度参数,但是如何使用呢?
使用 PHP 输出
命令行输出
【问题讨论】:
-
您也应该提供 PDF 文件。
-
这里是 PDF 文件 => cevhersys.net/5663.pdf
-
另外,如果 PHP API 无法满足您的需求,您可以随时使用
exec或shell_exec执行命令并生成您需要的文件。