設定
TCPDF-Next は、すぐに使える合理的なデフォルト値を備えています。すべての設定は、ドキュメント作成時またはフルエントセッターを通じて後からオーバーライドできます。
ドキュメントのデフォルト値
Document::create() を呼び出すと、特に指定しない限り以下のデフォルトが適用されます:
| 設定 | デフォルト値 | 説明 |
|---|---|---|
| ページサイズ | PageSize::A4 | ISO A4 (210 × 297 mm) |
| 方向 | Orientation::Portrait | 縦向きモード |
| 単位 | Unit::Millimeter | すべての測定値がミリメートル |
| 左マージン | 15 mm | ページ左マージン |
| 上マージン | 27 mm | ページ上マージン |
| 右マージン | 15 mm | ページ右マージン |
| 下マージン | 25 mm | ページ下マージン |
| 自動改ページ | true | 下マージン付近での自動改ページ |
| フォント | Helvetica, 12 pt | デフォルトのフォントファミリーとサイズ |
use Yeeefang\TcpdfNext\Core\Document;
use Yeeefang\TcpdfNext\Core\Enums\PageSize;
use Yeeefang\TcpdfNext\Core\Enums\Orientation;
use Yeeefang\TcpdfNext\Core\Enums\Unit;
$doc = Document::create(
pageSize: PageSize::Letter,
orientation: Orientation::Landscape,
unit: Unit::Inch,
);マージン
マージンはグローバルに、またはページごとに設定できます:
use Yeeefang\TcpdfNext\Core\ValueObjects\Margin;
// グローバルマージン
$doc->setMargins(new Margin(
left: 20,
top: 30,
right: 20,
bottom: 25,
));
// 特定のページでオーバーライド
$doc->addPage(
margin: new Margin(left: 10, top: 10, right: 10, bottom: 10),
);フォントパスとディレクトリ
TCPDF-Next は設定可能なディレクトリセットからフォントファイルを検索します。組み込みフォント(Helvetica、Courier、Times、Symbol、ZapfDingbats)は常に利用可能です。カスタムフォントや Unicode フォントの場合は、追加のパスを登録してください:
use Yeeefang\TcpdfNext\Core\Config\FontConfig;
$doc->configureFonts(function (FontConfig $config): void {
// .ttf / .otf ファイルを含むディレクトリを追加
$config->addDirectory('/path/to/my/fonts');
// ファミリーエイリアスを指定して単一のフォントファイルを追加
$config->addFont('/path/to/MyFont-Regular.ttf', alias: 'MyFont');
});TIP
フォントファイルはデフォルトでサブセットとして埋め込まれ、PDF 出力をコンパクトに保ちます。必要に応じて、フォントごとに完全な埋め込みを有効にできます。
暗号化設定
PDF の暗号化は EncryptionConfig 値オブジェクトを通じて設定されます:
use Yeeefang\TcpdfNext\Core\Config\EncryptionConfig;
use Yeeefang\TcpdfNext\Core\Enums\EncryptionLevel;
use Yeeefang\TcpdfNext\Core\Enums\Permission;
$doc->setEncryption(new EncryptionConfig(
level: EncryptionLevel::AES256,
userPassword: 'reader-pass',
ownerPassword: 'admin-pass',
permissions: [
Permission::Print,
Permission::Copy,
],
));| レベル | 説明 |
|---|---|
EncryptionLevel::RC4_40 | レガシー 40 ビット RC4(非推奨) |
EncryptionLevel::RC4_128 | 128 ビット RC4 |
EncryptionLevel::AES128 | 128 ビット AES |
EncryptionLevel::AES256 | 256 ビット AES(推奨) |
タグ付きPDF 設定
タグ付き(アクセシブル)PDF はスクリーンリーダーのサポートを向上させ、PDF/UA で必須です。タグ付けをグローバルに有効にします:
$doc->enableTaggedPdf();
// オプションでアクセシビリティのためのドキュメント言語を設定
$doc->setLanguage('en');タグ付きPDF モードが有効な場合、構造タグ(<P>、<H1>〜<H6>、<Table> など)はテキストおよびテーブル API によって自動的に出力されます。
決定論的モード
デフォルトでは、PDF にはタイムスタンプと一意の識別子が含まれ、出力が毎回異なります。決定論的モードはこれらを除去し、同じ入力に対してバイト単位で同一の出力を生成します — スナップショットテストや再現可能なビルドに便利です:
$doc->enableDeterministicMode();WARNING
決定論的モードは作成日/変更日と一意のファイル識別子を除去します。これらのメタデータフィールドが必要なドキュメントには使用しないでください。
完全な設定例
以下は、すべての主要な設定オプションを 1 つのスニペットにまとめた例です:
use Yeeefang\TcpdfNext\Core\Document;
use Yeeefang\TcpdfNext\Core\Enums\PageSize;
use Yeeefang\TcpdfNext\Core\Enums\Orientation;
use Yeeefang\TcpdfNext\Core\Enums\Unit;
use Yeeefang\TcpdfNext\Core\Enums\EncryptionLevel;
use Yeeefang\TcpdfNext\Core\Enums\Permission;
use Yeeefang\TcpdfNext\Core\Config\EncryptionConfig;
use Yeeefang\TcpdfNext\Core\Config\FontConfig;
use Yeeefang\TcpdfNext\Core\ValueObjects\Margin;
$doc = Document::create(
pageSize: PageSize::A4,
orientation: Orientation::Portrait,
unit: Unit::Millimeter,
);
// マージン
$doc->setMargins(new Margin(
left: 15,
top: 27,
right: 15,
bottom: 25,
));
// フォント
$doc->configureFonts(function (FontConfig $config): void {
$config->addDirectory('/path/to/fonts');
});
// 暗号化
$doc->setEncryption(new EncryptionConfig(
level: EncryptionLevel::AES256,
userPassword: '',
ownerPassword: 'secret',
permissions: [Permission::Print],
));
// アクセシビリティ
$doc->enableTaggedPdf();
$doc->setLanguage('en');
// 決定論的出力(テスト用)
// $doc->enableDeterministicMode();
// メタデータ
$doc->setTitle('Company Report');
$doc->setAuthor('TCPDF-Next');
$doc->setSubject('Monthly Summary');
$doc->setKeywords('report, finance, 2026');
$doc->addPage();
$doc->cell(text: 'Hello, configured world!');
$doc->save('/tmp/configured.pdf');