PHPめも

CekePHP3.6でPDF出力する想定になります。

composer.json の require に以下3つを追加

    "tecnickcom/tcpdf": "*",
    "setasign/fpdi": "^2.0",
    "setasign/fpdi-tcpdf": "^2.0"
$ composer.phar update

2つのPDFファイルを結合

use setasign\Fpdi;

public function index()
{
    $pdf = new Fpdi\TcpdfFpdi();

    // ヘッダーの出力を無効化
    $pdf->setPrintHeader(false);

    // フッターの出力を無効化
    $pdf->setPrintFooter(false);

    $pageCount = $pdf->setSourceFile(TMP . 'report1.pdf');
    for ($i = 1; $i <= $pageCount; $i++) {
        $pdf->addPage();
        $pdf->useTemplate($pdf->importPage($i));
    }

    $pageCount = $pdf->setSourceFile(TMP . 'report2.pdf');
    for ($i = 1; $i <= $pageCount; $i++) {
        $pdf->addPage();
        $pdf->useTemplate($pdf->importPage($i));
    }

    $pdf->output();

    exit();
}

自動改ページを無効化

ページ下部に出力すると自動的に次のページが追加されてしまい、フッター出力に困ることがあります。
その場合は自動改ページを無効化するとうまくいきます。

// 自動改ページを無効化
$pdf->SetAutoPageBreak(false);

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-09-19 (日) 19:09:30