mpdf合并文件 - 文件已加密

时间:2018-06-02 07:07:25

标签: php tcpdf mpdf

我试图使用MPDF将几个pdf合并为一个

   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();
            }
        }
    }

问题是即时获取&#34;文件已加密!&#34;在&#34; setsourcefile()&#34; 是否可以使用MPDF克服此问题?

是否有更好的方法将多个加密的PDF文件合并为一个?

由于

1 个答案:

答案 0 :(得分:0)

我最后走来走去 使用Imagick我将所有PDF&#S; S转换为图像

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();
}

之后使用i将所有图像合并为一个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);