PHP クックブック
これは PHP ネイティブの NextPDF レシピのインデックスです。コア PHP API に対して直接書かれた、タスク指向の実行可能なページをまとめています。nextpdf コアリポジトリは、各レシピを docs/public/cookbook/php/ 配下で所有し、検証します。それぞれのレシピは examples/*.php スクリプトと tests/Cookbook/Php/ ハーネステストに裏付けられています。その後、アグリゲーターが各ページをこのサイトに取り込み、ソースの来歴情報も併せて保持します。
このページはインデックスであるため、いずれのレシピについても挙動に関する主張は行いません。各行は、レシピの意図、利用するコアモジュール、宣言された再現性プロファイルを記録します。プロファイルおよび適合性に関する主張はレシピページ自体に置かれ、そのページのフロントマターとリポジトリ内テストから取得されます。このインデックスには置かれません。インテグレーション(フレームワーク/レンダラー/サービス)のクックブックについては、インテグレーションクックブックを参照してください。実行可能な各レシピが従う規約については、レシピ規約を参照してください。
レシピスラッグの構成方法
「レシピスラッグの構成方法」という見出しのセクション各レシピはコアリポジトリの docs/public/cookbook/php/ 配下で作成され、アグリゲーターによってこのサイトに公開されます。スラッグは 1 つの規約、つまり単一セグメントに従います。
/cookbook/php/<recipe>/<recipe> はレシピの意図をケバブケースで命名します(たとえばモジュール名 html ではなく render-html-to-pdf)。小文字、ハイフン区切り、バージョン番号なしとし、末尾は 1 つのスラッシュで終わります。
再現性プロファイルを一行で
「再現性プロファイルを一行で」という見出しのセクション各レシピは、実際に満たせる最も厳格なプロファイルを宣言します。
- bitwise — 実行間でバイト単位で同一(純粋に決定論的なコンテンツで、すべてのエントロピーが固定済み)。
- structural — 揮発的なアトムを正規化した後に同一(トレーラーの
/ID、creation/modification 日付、フォントサブセットの接頭辞 — 実運用におけるすべての複数オブジェクト PDF)。 - semantic — 構造 AST とメタデータの等価性のみ(署名済みまたはタイムスタンプ付きの出力、あるいは本質的にバイト単位で安定しない等価性の出力)。
プロファイルは、レシピページがそのハーネステストで証明するプロパティです。このインデックスは、ページが宣言した値を報告するだけです。
ドキュメントの構築、ページ分割、スタイル付け。
| レシピ | 機能 | モジュール | プロファイル |
|---|---|---|---|
render-html-to-pdf | HTML ドキュメントを PDF にレンダリング | Html | structural |
style-with-css | HTML レンダリングに CSS を適用 | Html | structural |
html-table-layout | HTML テーブルをレイアウト | Html | structural |
paginate-long-html | 長い HTML ドキュメントをページ分割 | Html | structural |
paginate-large-html-tables | 大きな HTML テーブルを複数ページにわたってページ分割 | Html | structural |
render-rtl-arabic-html | 右から左へ記述するアラビア語 HTML をレンダリング | Html | structural |
compose-text-and-fonts | タイポグラフィ制御でテキストを構成 | タイポグラフィ | structural |
embed-and-subset-fonts | フォントを埋め込み、サブセット化 | Font | structural |
cjk-vertical-writing | CJK テキストを縦書きモードで配置 | タイポグラフィ | structural |
multi-page-document | 複数ページのドキュメントを構築 | ドキュメント | structural |
headers-and-footers | ランニングヘッダーとフッターを追加 | レイアウト | structural |
グラフィックスとコンテンツ
「グラフィックスとコンテンツ」という見出しのセクションベクター、画像、レイヤー、座標空間。
| レシピ | 機能 | モジュール | プロファイル |
|---|---|---|---|
draw-vector-graphics | ベクターグラフィックスを描画 | グラフィックス | structural |
gradients-and-transparency | グラデーションと透明度を適用 | グラフィックス | structural |
embed-images | ラスター画像を埋め込み | コンテンツ | structural |
add-watermarks-and-backgrounds | ページにテキストと画像の透かしまたは背景を追加 | コンテンツ | structural |
cmyk-spot-color-and-icc-profiles | 印刷対応の CMYK とスポットカラーを生成 | カラー | structural |
embed-file-attachments | ファイルを埋め込み、PDF ポートフォリオを作成 | コンテンツ | structural |
optional-content-layers | オプショナルコンテンツ(レイヤー)を使用 | グラフィックス | structural |
transform-coordinate-space | 座標空間を変換 | グラフィックス | structural |
ナビゲーションとフォーム
「ナビゲーションとフォーム」という見出しのセクションブックマーク、リンク、注釈、AcroForm フィールド。
| レシピ | 機能 | モジュール | プロファイル |
|---|---|---|---|
bookmarks-and-toc | ブックマークと目次を構築 | ナビゲーション | structural |
generate-dynamic-table-of-contents | 動的な目次を生成 | ナビゲーション | structural |
links-and-annotations | リンクと注釈を追加 | ナビゲーション | structural |
generate-barcodes | バーコードを生成 | バーコード | bitwise |
gs1-composite-barcodes | GS1 Composite バーコード(CC-C キャリア)を生成 | バーコード | structural |
fill-pdf-form | AcroForm に入力 | フォーム | structural |
flatten-form-fields | フォームフィールドをフラット化 | フォーム | structural |
form-field-validation-and-flatten-with-state | フォームフィールドを検証し、状態を保持したままフラット化 | フォーム | structural |
ドキュメント情報
「ドキュメント情報」という見出しのセクションメタデータとビューア動作の設定。
| レシピ | 機能 | モジュール | プロファイル |
|---|---|---|---|
set-document-metadata | ドキュメントメタデータを設定 | メタデータ | structural |
set-viewer-preferences | ビューア設定を構成 | ドキュメント | structural |
ドキュメント操作
「ドキュメント操作」という見出しのセクション既存ドキュメントの組み立て、分割、最適化。
| レシピ | 機能 | モジュール | プロファイル |
|---|---|---|---|
merge-external-pdfs | 外部の PDF を結合、またはページを追加 | ドキュメント | structural |
split-and-extract-pages | PDF を分割し、ページ範囲を抽出 | ドキュメント | structural |
optimize-pdf-file-size | 圧縮とサブセット化で PDF のファイルサイズを削減 | ドキュメント | structural |
セキュリティ、署名、および適合性
「セキュリティ、署名、および適合性」という見出しのセクション暗号化、署名、アクセシビリティ、プロファイル出力。これらのレシピは、support≠conformance および presence≠validity の境界をレシピページで明示します。
| レシピ | 機能 | モジュール | プロファイル |
|---|---|---|---|
encrypt-aes256 | AES-256 で暗号化し、権限フラグを設定 | セキュリティ | structural |
encrypt-with-permissions | 権限フラグ付きで暗号化 | セキュリティ | structural |
sign-pades-b-b | PAdES 署名を適用(B-B および B-T) | セキュリティ | semantic |
inspect-existing-signature | 既存の署名を検査 | 検査 | semantic |
tagged-pdf-ua2 | PDF/UA-2 向けにタグ付き構造を出力 | アクセシビリティ | semantic |
accessible-pdfua2-from-html | HTML からアクセシブルな PDF/UA-2 オーサリング向けにタグ付き構造を出力 | アクセシビリティ | semantic |
pdf-a-4-output | PDF/A-4 出力を生成 | 適合性 | semantic |
pdfa4-conformance-gate | PDF/A-4 出力を生成し、外部バリデーターでゲート | 適合性 | semantic |
validate-conformance | 適合性プロファイルに対して検証 | コンプライアンス | semantic |
検査と抽出
「検査と抽出」という見出しのセクションPDF からのコンテンツと構造の読み出し。
| レシピ | 機能 | モジュール | プロファイル |
|---|---|---|---|
extract-text-content | テキストコンテンツを抽出 | テキスト | semantic |
multilingual-copy-paste-extraction | CJK とアラビア語の PDF で正確なコピー&ペーストを実現 | テキスト | structural |
parse-and-inspect-pdf | PDF を解析して検査 | 検査 | semantic |
inspect-layout-boxes | レイアウトボックスを検査 | 検査 | semantic |
横断的事項
「横断的事項」という見出しのセクション複数のモジュールにまたがるパターン。
| レシピ | 機能 | 対象範囲 | プロファイル |
|---|---|---|---|
worker-safe-batch-rendering | 長時間稼働するワーカー内で安全にレンダリング(共有レジストリ、メモリ上限あり) | Core · Performance · Support | semantic |
streaming-and-memory | ストリーミングとメモリ使用量をプロファイリング | Performance | bitwise |
exception-aware-error-handling | NextPDF の例外階層を用いてエラーを処理 | Exception · Contracts | structural |
custom-error-recovery-patterns | カスタムのエラー回復とリトライ戦略を実装 | Exception | semantic |
observe-with-opentelemetry | OpenTelemetry でレンダリングを観測 | Observability · Telemetry · Event | semantic |
上記のすべてのレシピは、コアリポジトリ内で裏付けとなる examples/*.php スクリプトと tests/Cookbook/Php/ ハーネステストとともに公開されています。新しいレシピがアップストリームで作成されると、そのサンプルとテストが配置され次第、ここに表示されます。
- インテグレーションクックブック — フレームワーク、レンダラー、およびサービスのインテグレーションインデックス。
- レシピ規約 — このクックブックの実行可能な各レシピが従う規約。