【发布时间】:2015-01-16 00:34:53
【问题描述】:
我有一个大约 >100mb 的大 pdf 文件。
我想将那个 pdf 页面逐页保存为 jpg。
我的 php 脚本运行良好,但即使将 quailty 设置为 100,图像质量也很差。JPG 输出最大宽度设置为 1024。
每个文件大小约 2.5mb。我已经搜索过这个问题,但我每次都得到有关命令行解决方案的信息。我必须使用 php。
$file = 'e-magazine/1/ebook.pdf';
if($file === null && !file_exists($file)) {
throw new \Exception('FILE NOT EXISTS');
}
$nop = new \Imagick($file);
for($i = 0; $i <= $nop->getnumberimages(); $i++) {
$image_file = 'e-magazine/1/'.($i+1).'.jpg';
$im = new \Imagick();
$im->readimage($file.'['.$i.']');
$im->setImageCompressionQuality(100);
$im->setimageformat('jpeg');
$im->resizeImage(1024, 0, \Imagick::FILTER_CATROM, 1);
$im->writeimage($image_file);
$tm = new \Imagick();
$tm->readimage($image_file);
$tm->setImageCompressionQuality(60);
$tm->setimageformat('jpeg');
$tm->resizeImage(200, 0, \Imagick::FILTER_CATROM, 1);
$tm->writeimage('e-magazine/1/thumbnails/'.($i+1).'_thumb.jpg');
}
如何纠正文件质量?
【问题讨论】:
-
你能给出一些 pdf 中的示例页面和你得到的输出吗?
-
请帮助在尝试您的代码时遇到错误 UnableToOpenBlob 'sample.pdf': No such file or directory @error/blob.c/OpenBlob/3315
标签: php pdf imagemagick jpeg imagick