6

次のコードを使用して、既存の 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() を使用して何かを行う必要があると思われます。->useTemplate を適用すると適切に回転しないのはなぜですか?

4

3 に答える 3

16

->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'); 
于 2012-08-30T07:02:48.033 に答える
2

ところで、すべてのドキュメントが A4 になることを保証できない場合 (これはあなたの問題ではありませんが、この Q にたどり着いたのは私の問題でした)、テンプレートのサイズを使用して、 2 番目の引数でサイズを配列として渡すことにより、生成されたファイルのページ:

$pdf->AddPage(
    ( $size['w'] > $size['h'] ) ? 'L' : 'P',
    [ $size['w'], $size['h'] ]
);
于 2016-02-05T17:32:37.560 に答える