PHP クックブック
PHP クックブック
「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 とメタデータの等価性のみ(署名済みまたはタイムスタンプ付きの出力、あるいは本質的にバイト単位で安定しない等価性の出力)。
プロファイルは、レシピページがそのハーネステストで証明するプロパティです。このインデックスは、ページが宣言した値を報告するだけです。
既に集約されているレシピ
「既に集約されているレシピ」という見出しのセクションコアリポジトリは、現時点で以下 5 つのレシピを保持し、マージ済みです — Wave 8 のセットです。
| レシピ | 機能 | モジュール | プロファイル |
|---|---|---|---|
sign-pades(アップストリームで予定) | ソフトウェア鍵で CMS/PAdES ベースライン署名を適用 | セキュリティ | semantic |
encrypt-aes256(アップストリームで予定) | AES-256 で暗号化し、権限フラグを設定 | セキュリティ | structural |
pdfa4-conformance-gate(アップストリームで予定) | PDF/A-4 出力を生成し、外部バリデーターでゲート | 適合性 | semantic |
accessible-pdfua2-from-html(アップストリームで予定) | アクセシブルな PDF/UA-2 オーサリング向けにタグ付き構造を出力 | アクセシビリティ | semantic |
validate-signature(アップストリームで予定) | PDF が署名を持つかどうか、および信頼境界を検査 | 検査 | semantic |
ドキュメントの構築、ページ分割、スタイル付け。
| レシピ | 機能 | モジュール | プロファイル |
|---|---|---|---|
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 |
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 |
optional-content-layers(アップストリームで予定) | オプショナルコンテンツ(レイヤー)を使用 | グラフィックス | structural |
transform-coordinate-space(アップストリームで予定) | 座標空間を変換 | グラフィックス | structural |
ナビゲーションとフォーム
「ナビゲーションとフォーム」という見出しのセクションブックマーク、リンク、注釈、AcroForm フィールド。
| レシピ | 機能 | モジュール | プロファイル |
|---|---|---|---|
bookmarks-and-toc(アップストリームで予定) | ブックマークと目次を構築 | ナビゲーション | structural |
links-and-annotations(アップストリームで予定) | リンクと注釈を追加 | ナビゲーション | structural |
generate-barcodes(アップストリームで予定) | バーコードを生成 | バーコード | bitwise |
fill-pdf-form(アップストリームで予定) | AcroForm に入力 | フォーム | structural |
flatten-form-fields(アップストリームで予定) | フォームフィールドをフラット化 | フォーム | structural |
ドキュメント情報
「ドキュメント情報」という見出しのセクションメタデータとビューア動作の設定。
| レシピ | 機能 | モジュール | プロファイル |
|---|---|---|---|
set-document-metadata(アップストリームで予定) | ドキュメントメタデータを設定 | メタデータ | structural |
set-viewer-preferences(アップストリームで予定) | ビューア設定を構成 | ドキュメント | structural |
セキュリティ、署名、および適合性
「セキュリティ、署名、および適合性」という見出しのセクション暗号化、署名、アクセシビリティ、プロファイル出力。これらのレシピは、support≠conformance および presence≠validity の境界をレシピページで明示します。
| レシピ | 機能 | モジュール | プロファイル |
|---|---|---|---|
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 |
pdf-a-4-output(アップストリームで予定) | PDF/A-4 出力を生成 | 適合性 | semantic |
validate-conformance(アップストリームで予定) | 適合性プロファイルに対して検証 | コンプライアンス | semantic |
検査と抽出
「検査と抽出」という見出しのセクションPDF からのコンテンツと構造の読み出し。
| レシピ | 機能 | モジュール | プロファイル |
|---|---|---|---|
extract-text-content(アップストリームで予定) | テキストコンテンツを抽出 | テキスト | semantic |
parse-and-inspect-pdf(アップストリームで予定) | PDF を解析して検査 | 検査 | semantic |
inspect-layout-boxes(アップストリームで予定) | レイアウトボックスを検査 | 検査 | semantic |
横断的事項
「横断的事項」という見出しのセクション複数のモジュールにまたがるパターン。
| レシピ | 機能 | 対象範囲 | プロファイル |
|---|---|---|---|
worker-safe-batch-rendering(アップストリームで予定) | 長時間稼働するワーカー内で安全にレンダリング(共有レジストリ、メモリ上限あり) | Core · Performance · Support | semantic |
exception-aware-error-handling(アップストリームで予定) | NextPDF の例外階層を用いてエラーを処理 | Exception · Contracts | structural |
observe-with-opentelemetry(アップストリームで予定) | OpenTelemetry でレンダリングを観測 | Observability · Telemetry · Event | semantic |
実行可能なサンプル待ちのレシピ
「実行可能なサンプル待ちのレシピ」という見出しのセクションこれらのレシピは、公開する前にコアリポジトリ内に新規の examples/*.php と tests/Cookbook/Php/ ハーネスを必要とします。上記のスラッグは最終版です。ページは、サンプルが配置され、そのテストが実行されるまでプレースホルダーのままです。
sign-pades-b-b(アップストリームで予定)(PAdES B-B と B-T をカバー)inspect-existing-signature(アップストリームで予定)extract-text-content(アップストリームで予定)parse-and-inspect-pdf(アップストリームで予定)validate-conformance(アップストリームで予定)inspect-layout-boxes(アップストリームで予定)worker-safe-batch-rendering(アップストリームで予定)(サンプルは存在。新しいメモリ/GC ハーネステストを追加)observe-with-opentelemetry(アップストリームで予定)(新しい PHP ネイティブのサンプルを追加)
上記のうち、これ以外のレシピはすべて、既に裏付けとなる examples/*.php を持ち、必要なのはハーネスラッパーだけです。このインデックスはスラッグと最終的なページを記録します。保留中のページが既に完成していると主張するものではありません。
- インテグレーションクックブック — フレームワーク、レンダラー、およびサービスのインテグレーションインデックス。
- レシピ規約 — このクックブックの実行可能な各レシピが従う規約。