問題は、インポートした同じ pdf ファイルの複数のコピーにデータを書き込み、それを 1 つの pdf として保存する必要があることです。1 つのページにデータを書き込むことはできますが、複数のページに書き込もうとしたり、( を使用してSetAutoPageBreak()
) テキストを続けようとすると、次のページに到達すると書き込みが停止します。ただし、さらにデータを書き込むために任意のループを追加すると、追加されたデータに対応するために結果の pdf のページ数が増えますが、最初のページを超えるページはまだ空白です。問題を説明するために、私がやろうとしていることをより小さな例に単純化しました。
public function actionSample() {
$pdf = new FPDI();
$pdf->AcceptPageBreak();
$pdf->SetAutoPageBreak(true, 30);
$pagecount = $pdf->setSourceFile('images/sample.pdf');
for ($i = 1; $i <= $pagecount; $i++) {
$pdf->AddPage();
$tplidx = $pdf->ImportPage($i);
$pdf->useTemplate($tplidx, 10, 10, 200);
$s = $pdf->getTemplatesize($tplidx);
$pdf->SetTextColor(32,32,32);
$pdf->SetFontSize(10);
$pdf->SetXY($pdf->getX(), $pdf->getY()+10);
$pdf->Write(2, 'This is not!');
}
$pdf->Output('Sample.pdf', 'D');
}
サンプル文書には、最初に 3 つの空白ページがあります。(何が書いてあるのか分かりやすくするためです)