既存のPDFをテンプレートとして、Laravelで文字列を追加して出力してみます。
サンプルコード
composer.jsonにTCPDFとFPDIを追加します。
composer.json
// 変更前
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*"
},
// 変更後
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*",
"tecnickcom/tcpdf": "6.2.*",
"setasign/fpdi-tcpdf": "1.6.1"
},
tecnick.com/tcpdfは破棄されているようなので、tecnickcom/tcpdfを使うようにしてください。
setasign/fpdiは今回TCPDFを使用するので、setasign/fpdi-tcpdfとしています。
コマンドプロンプトで作業ディレクトリまで移動して、下記コマンドを実行します。
composer update
app\Http\routes.php
Route::get('/pdf', 'PdfController@getIndex');
app\Http\Controllers\PdfController.php
<?php
namespace App\Http\Controllers;
use FPDI;
class PdfController extends Controller
{
public function getIndex()
{
$receipt = new FPDI();
// PDFの余白(上左右)を設定
$receipt->SetMargins(0, 0, 0);
// ヘッダー・フッターの出力を無効化
$receipt->setPrintHeader(false);
$receipt->setPrintFooter(false);
// ページを追加
$receipt->AddPage();
// テンプレートを読み込み
$receipt->setSourceFile(public_path() . '/data/base.pdf');
// 読み込んだPDFの1ページ目のインデックスを取得
$tplIdx = $receipt->importPage(1);
// 読み込んだPDFの1ページ目をテンプレートとして使用
$receipt->useTemplate($tplIdx, null, null, null, null, true);
// 書き込む文字列のフォントを指定
$receipt->SetFont('', '', 20);
// 書き込む位置
$receipt->SetXY(13, 30);
// 文字列を書き込む
$receipt->Write(0, 'add string test!!');
// PDFを出力
$receipt->Output('sample.pdf', 'I');
}
}
ベースになるPDFは、 \public\data\base.pdf に格納しています。
/pdfにアクセスすると、以下のように表示されました。
(This is an sample PDF printed with pdfMake.という文字列はPDFのテンプレートに含まれている文字列になります。)

【参考サイト】
- PHP – [PHP] ララベルでTCPDFを使うには?(6870)|teratail
- Laravel5.1でbladeテンプレートを用いてPDFを作る – Qiita
- PHPでPDF帳票を出力する方法(TCPDF + FPDI) – Qiita
- [PHP]既存テンプレート用PDFに書き込みをする。TCPDF + FPDI PHP| システム開発ブログ(システム開発のアイロベックス|東京都新宿区の業務システム開発会社)
コメントが承認されるまで時間がかかります。