コンテンツにスキップ

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 にレンダリングHtmlstructural
style-with-css(アップストリームで予定)HTML レンダリングに CSS を適用Htmlstructural
html-table-layout(アップストリームで予定)HTML テーブルをレイアウトHtmlstructural
paginate-long-html(アップストリームで予定)長い HTML ドキュメントをページ分割Htmlstructural
compose-text-and-fonts(アップストリームで予定)タイポグラフィ制御でテキストを構成タイポグラフィstructural
embed-and-subset-fonts(アップストリームで予定)フォントを埋め込み、サブセット化Fontstructural
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 · Supportsemantic
exception-aware-error-handling(アップストリームで予定)NextPDF の例外階層を用いてエラーを処理Exception · Contractsstructural
observe-with-opentelemetry(アップストリームで予定)OpenTelemetry でレンダリングを観測Observability · Telemetry · Eventsemantic

これらのレシピは、公開する前にコアリポジトリ内に新規の examples/*.phptests/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 を持ち、必要なのはハーネスラッパーだけです。このインデックスはスラッグと最終的なページを記録します。保留中のページが既に完成していると主張するものではありません。