2016-07-16 7 views
0

IMagickで4枚の画像をマージするのはかなりうまくいっていますが、setImagePageパラメータがマージに失敗しています。最初または2ページ目のサイズは変更されますが、残りのファイルは元のサイズに残ります。テスト環境では、すべてのファイルのサイズが同じです。 私の目標はA4のサイズにすべてのページのサイズを変更することです。ここでphp IMagickでページパラメータとマージを併用するには?

はコードです:

$ uploaded_filesファイルの配列で、$指すマージされたファイルのカスタムファイル名です。

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

答えて

0

イメージごとにすべてのファイルをループし、ページサイズを個別に設定してください。

$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); 
関連する問題