我试图使用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文件合并为一个?
由于
答案 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);