以前也用过一些操作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