简体   繁体   English

如何在PHP IMagick上使用Page参数进行合并?

[英]How to use Page parameter with merge on php IMagick?

Merging 4 images with IMagick is working pretty good but setImagePage parameter is not working along merge. 使用IMagick合并4张图像效果很好,但是setImagePage参数无法合并。 First or second page is resized but rest of files are remaining original size. 调整第一页或第二页的大小,但其余文件保持原始大小。 On test environment dimensions of all files are same. 在测试环境中,所有文件的尺寸均相同。 My goal is to resize all of pages to size of A4. 我的目标是将所有页面调整为A4大小。

Here is the code: 这是代码:

$uploaded_files is an array of files and $refer is custom filename for merged file. $ uploaded_files是文件数组,而$ refer是合并文件的自定义文件名。

$pdf = new Imagick($uploaded_files);
$pdf->setImageFormat('pdf');
$mergefile = 'files/' . $refer . '.pdf';
$pdf->setImagePage ( 595, 842 , 0,0 );
$filemerged = $pdf->writeImages($mergefile, true);

Got it by looping all files and setting pagesize individually on each image. 通过循环所有文件并在每个图像上分别设置pagesize来获得它。

$pdf = new Imagick();

foreach( $uploaded_files as $f ) 
{ 
    //Create a new Imagick object
    $auxIMG = new Imagick(); 

    //Read single image
    $auxIMG->readImage($f); 

    //Rotate page if image width is higher that height
    if($auxIMG->getImageWidth() > $auxIMG->getImageHeight()){
        $transparent = '#ffffffff';
        $auxIMG->rotateImage($transparent, 90);
    }

    //Set pagesize A4
    $auxIMG->setImagePage ( 595, 842, 0,0 );

    //Add image to main object
    $pdf->addImage($auxIMG); 
} 
$filemerged = $pdf->writeImages($mergefile, true);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM