файл слияния mpdf - файл зашифрован - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь объединить несколько PDF-файлов в один, используя MPDF

   function create( $paths ){

        $pdf = new \Mpdf\Mpdf();
        $pdf->enableImports = true;

        foreach( $paths as $key => $file ){
            $pdf->SetImportUse();

            try{
                $pagecount = $pdf->SetSourceFile( $file['path'] );

                for ( $i=1; $i <= ( $pagecount ); $i++ ) {
                    $pdf->AddPage();
                    $import_page = $pdf->ImportPage( $i );
                    $pdf->UseTemplate( $import_page );
                }
            }catch( Exception $e ){
                $paths[$key] = $e->getMessage();
            }
        }
    }

Проблема в том, что я получаю "Файл зашифрован!"на "setsourcefile ()" Можно ли решить эту проблему с помощью MPDF?

Есть ли еще один способ объединить несколько зашифрованных файлов PDF в один?

Спасибо

1 Ответ

0 голосов
/ 02 июня 2018

В итоге я прогулялся, используя Imagick, я преобразовал все PDF-файлы в изображения

foreach( $paths as $key => $file ){
     $im->setResolution( 300, 300);
     $im->readimage( $file['path'] );
     $im->setImageFormat('jpeg');

     //create the images
     $im->writeImages( $pdf_tmp_path.$pdf_basename.'.jpeg' , true );
     $im->clear();

     $counter++;
    }

    $im->destroy();
}

И после этого я слил все изображения в один PDF

$dir = new DirectoryIterator( $tmpdir );
$images = array();

foreach ( $dir as $fileinfo ) {
    $filename = $fileinfo->getFilename();

    if( strlen( $filename ) > 10 ){
        $images[] = $tmpdir.$filename;
    }
}

//create the pdf
$pdf = new Imagick( $images );
$pdf->setImageFormat('pdf');
$pdf->setCompression(Imagick::COMPRESSION_JPEG);
$pdf->setCompressionQuality(100);
$pdf->stripImage();

$pdf->writeImages( $this->combined_pdf_path , true);
...