我正在使用以下代码将新页面添加到现有PDF文档并保存。
require('addons/fpdf.php');
require('addons/fpdi.php');
$pdf = new FPDI();
$pagecount = $pdf->setSourceFile($orgpdfpath);
for($i = 1; $i <= $pagecount; $i++){
$pdf->addPage();
$tplidx = $pdf->importPage($i);
$pdf->useTemplate($tplidx);
}
$pdf->addPage($pdforientation);
$pdf->Image($imgpath,$pdfxaxis,$pdfyaxis,$pdfwith,$pdfheight);
$pdf->Output($orgpdfpath,'F');
如果我的文件是A4,第1页:肖像,第2页:肖像,第3页:肖像等,它可以正常工作。
如果我添加横向A4页面也可以。但是,在我添加了横向页面并尝试添加纵向后,横向将移回到纵向,并且文档的整个格式都会中断。
我怀疑这必须在循环中使用addPage()。为什么在应用 - &gt; useTemplate?
时它不能正确旋转答案 0 :(得分:12)
我监督了一个名为 - &gt; getTemplateSize()的函数。 这是一个工作片段:
$pdf = new FPDI();
$pagecount = $pdf->setSourceFile($orgpdfpath);
for($i = 1; $i <= $pagecount; $i++){
$tplidx = $pdf->importPage($i);
$specs = $pdf->getTemplateSize($tplidx);
$pdf->addPage($specs['h'] > $specs['w'] ? 'P' : 'L');
$pdf->useTemplate($tplidx);
}
$pdf->addPage($pdforientation);
$pdf->Image($imgpath,$pdfxaxis,$pdfyaxis,$pdfwith,$pdfheight);
$pdf->Output($orgpdfpath,'F');
答案 1 :(得分:1)
如果你定义了den方向,它可能会有助于这个或那个,它在pdf生成中不起作用。我在AddPage()上以横向模式更改了宽度和高度。可能这应该是自动完成的,但在我的情况下,结合PDFmerger,fpdf / fpdi的包装类,它没有。
$fpdi = new FPDI;
$count = $fpdi->setSourceFile($filename);
for($i=1; $i<=$count; $i++) {
$template = $fpdi->importPage($i);
$size = $fpdi->getTemplateSize($template);
$orientation = ($size['h'] > $size['w']) ? 'P' : 'L';
if ($orientation == "P") {
$fpdi->AddPage($orientation, array($size['w'], $size['h']));
} else {
$fpdi->AddPage($orientation, array($size['h'], $size['w']));
}
$fpdi->useTemplate($template);
}
答案 2 :(得分:0)
$pdf->AddPage(
( $size['w'] > $size['h'] ) ? 'L' : 'P',
[ $size['w'], $size['h'] ]
);