以前也用过一些操作pdf的类库。fpdf,fpdi比较强大的类库。
1,下载fpdf,fpdi
http://www.fpdf.org
https://www.setasign.com/products/fpdi/downloads/#p-313
fpdi可以用composer下载
2,合并多个pdf
use setasign\Fpdi\Fpdi; use setasign\Fpdi\PdfReader; require_once('fpdf/fpdf.php'); require_once('fpdi/src/autoload.php'); // define some files to concatenate $files = array( 'test.pdf', 't11.pdf' ); // initiate FPDI $pdf = new Fpdi(); // iterate through the files foreach ($files AS $file) { // get the page count $pageCount = $pdf->setSourceFile($file); // iterate through all pages for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) { // import a page $templateId = $pdf->importPage($pageNo); // get the size of the imported page $size = $pdf->getTemplateSize($templateId); // print_r($size);break; // create a page (landscape or portrait depending on the imported page size) if ($size['width'] > $size['height']) { $pdf->AddPage('L', array($size['width'], $size['height'])); } else { $pdf->AddPage('P', array($size['width'], $size['height'])); } // use the imported page $pdf->useTemplate($templateId); $pdf->SetFont('Helvetica'); $pdf->SetXY(5, 5); // $pdf->Write(8, 'A simple concatenation demo with FPDI'); } } // Output the new PDF //$pdf->Output(); //直接输出 $pdf->output("merge.pdf", "F"); //下载到本地
3,往PDF文件尾部追加一张图片
use setasign\Fpdi\Fpdi; use setasign\Fpdi\PdfReader; require_once('fpdf/fpdf.php'); require_once('fpdi/src/autoload.php'); // initiate FPDI $pdf = new Fpdi(); // get the page count $pageCount = $pdf->setSourceFile('t11.pdf'); // iterate through all pages for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) { // import a page $templateId = $pdf->importPage($pageNo); // get the size of the imported page $size = $pdf->getTemplateSize($templateId); // create a page (landscape or portrait depending on the imported page size) if ($size['width'] > $size['height']) { $pdf->AddPage('L', array($size['width'], $size['height'])); } else { $pdf->AddPage('P', array($size['width'], $size['height'])); } // use the imported page $pdf->useTemplate($templateId); $pdf->SetFont('Helvetica'); $pdf->SetXY(5, 5); } $imagenurl = "testtest.png"; // in my case //$pdf->AliasNbPages(); $pdf->AddPage("L","A4"); $pdf->SetFont('Times','',12); // Add image to document's content (Change 100 to the image's width) $pdf->Cell( 38, 38, $pdf->Image($imagenurl, $pdf->GetX(), $pdf->GetY(), 280), 0, 0, 'L', false ); $pdf->Output();
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/php/1938.html