如何使用 ImageMagick for PHP 将多页 PDF 转换为图像?
How to convert a multi-page PDF to images using ImageMagick for PHP?
我想将pdf文件转换成图片。我在 cakePHP 中使用 ImageMagick 进行图像转换。
当我拍摄单页 PDF 时,它被转换为图像,但问题是当我拍摄多页 PDF 时,只有文档的最后一页被转换为图像,而不是所有页面页。
我该如何解决这个问题?
这是我的代码。
public function convertToImage() {
$this->layout = "ajax";
$uploadfile=APP.WEBROOT_DIR.DS.'files'.DS.$this->request->data['f'];
$uploaddir=APP.WEBROOT_DIR.DS.'files'.DS.'images'.DS;
$im = new imagick();
$im->setResolution(80,80);
$im->readimage($uploadfile);//."[0]");
$im->setImageFormat('jpeg');
$image_name = $this->request->data['f'].".jpg";
$imageprops = $im->getImageGeometry();
if ($imageprops['width'] <= 1275 && $imageprops['height'] <= 1650) {
// don't upscale
} else {
$im->resizeImage(1275,1650, imagick::FILTER_LANCZOS, 0.9, true);
}
$im->writeImage($uploaddir .$image_name);
$im->clear();
$im->destroy();exit;
}
您可以通过
访问每个页面
$im->readimage($uploadfile."[".$pageNumber."]");
使用 imagemagick,您还可以读取 pdf 中有多少页:
$document = new Imagick('document.pdf');
$document->getNumberImages();
使用此数字,您可以遍历每个页面并保存图像。
如此处所述:http://php.net/manual/en/class.imagick.php#111197当与 pdfs 一起使用时,imagemagick 的指针设置为最后一页。
我想将pdf文件转换成图片。我在 cakePHP 中使用 ImageMagick 进行图像转换。
当我拍摄单页 PDF 时,它被转换为图像,但问题是当我拍摄多页 PDF 时,只有文档的最后一页被转换为图像,而不是所有页面页。
我该如何解决这个问题?
这是我的代码。
public function convertToImage() {
$this->layout = "ajax";
$uploadfile=APP.WEBROOT_DIR.DS.'files'.DS.$this->request->data['f'];
$uploaddir=APP.WEBROOT_DIR.DS.'files'.DS.'images'.DS;
$im = new imagick();
$im->setResolution(80,80);
$im->readimage($uploadfile);//."[0]");
$im->setImageFormat('jpeg');
$image_name = $this->request->data['f'].".jpg";
$imageprops = $im->getImageGeometry();
if ($imageprops['width'] <= 1275 && $imageprops['height'] <= 1650) {
// don't upscale
} else {
$im->resizeImage(1275,1650, imagick::FILTER_LANCZOS, 0.9, true);
}
$im->writeImage($uploaddir .$image_name);
$im->clear();
$im->destroy();exit;
}
您可以通过
访问每个页面$im->readimage($uploadfile."[".$pageNumber."]");
使用 imagemagick,您还可以读取 pdf 中有多少页:
$document = new Imagick('document.pdf');
$document->getNumberImages();
使用此数字,您可以遍历每个页面并保存图像。
如此处所述:http://php.net/manual/en/class.imagick.php#111197当与 pdfs 一起使用时,imagemagick 的指针设置为最后一页。