Skip to content

設定

TCPDF-Next は、すぐに使える合理的なデフォルト値を備えています。すべての設定は、ドキュメント作成時またはフルエントセッターを通じて後からオーバーライドできます。

ドキュメントのデフォルト値

Document::create() を呼び出すと、特に指定しない限り以下のデフォルトが適用されます:

設定デフォルト値説明
ページサイズPageSize::A4ISO A4 (210 × 297 mm)
方向Orientation::Portrait縦向きモード
単位Unit::Millimeterすべての測定値がミリメートル
左マージン15 mmページ左マージン
上マージン27 mmページ上マージン
右マージン15 mmページ右マージン
下マージン25 mmページ下マージン
自動改ページtrue下マージン付近での自動改ページ
フォントHelvetica, 12 ptデフォルトのフォントファミリーとサイズ
php
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,
);

マージン

マージンはグローバルに、またはページごとに設定できます:

php
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 フォントの場合は、追加のパスを登録してください:

php
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 値オブジェクトを通じて設定されます:

php
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_128128 ビット RC4
EncryptionLevel::AES128128 ビット AES
EncryptionLevel::AES256256 ビット AES(推奨)

タグ付きPDF 設定

タグ付き(アクセシブル)PDF はスクリーンリーダーのサポートを向上させ、PDF/UA で必須です。タグ付けをグローバルに有効にします:

php
$doc->enableTaggedPdf();

// オプションでアクセシビリティのためのドキュメント言語を設定
$doc->setLanguage('en');

タグ付きPDF モードが有効な場合、構造タグ(<P><H1><H6><Table> など)はテキストおよびテーブル API によって自動的に出力されます。

決定論的モード

デフォルトでは、PDF にはタイムスタンプと一意の識別子が含まれ、出力が毎回異なります。決定論的モードはこれらを除去し、同じ入力に対してバイト単位で同一の出力を生成します — スナップショットテストや再現可能なビルドに便利です:

php
$doc->enableDeterministicMode();

WARNING

決定論的モードは作成日/変更日と一意のファイル識別子を除去します。これらのメタデータフィールドが必要なドキュメントには使用しないでください。

完全な設定例

以下は、すべての主要な設定オプションを 1 つのスニペットにまとめた例です:

php
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');

LGPL-3.0-or-later ライセンスの下で公開されています。