読者です 読者をやめる 読者になる 読者になる

Zend_Pdfで、作成中のページを複製して新しいページを作る方法を誰も書いてないので書いときますね。
(Zend_Framework 1.11版)

<?php
    /**
     * PDFのページを末尾にコピーして追加
     *
     * @param Zend_Pdf $pdf 作成中のpdf
     * @param integer $sourcePage コピー元のページ番号
     * @param integer $count コピー数
     * @return Zend_Pdf
     */
    protected function copyPage(Zend_Pdf &$pdf, $sourcePage, $count = 1)
    {
        $page = $pdf->pages[$sourcePage];

        // 内容を書き込み中のページをコピーするには一端レンダリングする必要がある
        for ($i = 0; $i < $count; $i++) {
            $pdfString = $pdf->render();
            $pdf = Zend_Pdf::parse($pdfString);
            $pdf->pages[] = $page;
        }

        return $pdf;
    }

なんだか判りませんが、レンダリング済みのページからテンプレートページを取得したり、ページを複製するたびにレンダリング「しなかった」りするとまともにページが作成されません。なんともはや。