PHP 食譜
PHP 食譜
標題為「PHP 食譜」的區段這是 PHP 原生 NextPDF 食譜的索引——這些頁面以任務為中心且可執行,直接針對核心 PHP API 撰寫。nextpdf 核心儲存庫擁有並驗證 docs/public/cookbook/php/ 之下的每一道食譜。每一道食譜都由一支 examples/*.php 指令稿與一個 tests/Cookbook/Php/ 測試框架背書。接著,匯整器會將每個頁面拉進本網站,並一併帶入其來源出處。
由於本頁是一份索引,它不對任何食譜做行為宣稱。每一列都記錄該食譜的意圖、它所操作的核心模組,以及它宣告的可重現性設定檔。設定檔與任何符合性宣稱都存在於食譜頁面本身,來源是該頁面的前置資料與其儲存庫內測試——而非本頁。關於整合(框架/轉譯器/服務)食譜,請參閱 整合食譜。關於每一道可執行食譜都遵循的契約,請參閱 食譜慣例。
食譜連結如何解析
標題為「食譜連結如何解析」的區段以下每一個 [[…]] 都是前向參照,指向在核心儲存庫 docs/public/cookbook/php/ 之下撰寫、隨後由匯整器拉進本網站的頁面。其 slug 遵循單一慣例:單一區段。
/cookbook/php/<recipe>/<recipe> 以 kebab-case 命名食譜的意圖(例如 render-html-to-pdf,而非模組名稱 html)。它是小寫、以連字號分隔、不含版本號,並以單一結尾斜線收尾。在目標頁面匯整之前,其連結只是一個佔位符,並不會解析。尚無可執行範例的食譜(下方的缺口清單)在其範例與測試框架存在之前無法發佈,即使該連結已經指向最終的 slug。
可重現性設定檔:一行說明
標題為「可重現性設定檔:一行說明」的區段每一道食譜都宣告它能如實滿足的最嚴格設定檔:
- bitwise——跨多次執行皆為位元組相同(純粹決定性的內容,所有熵都已固定)。
- structural——在正規化易變原子(trailer 的
/ID、creation/modification 日期、字型子集前綴——實務上每一份多物件 PDF 都會如此)之後皆相同。 - semantic——僅要求結構性 AST 與中繼資料等價(已簽署或已加蓋時戳的輸出,或等價性本質上無法達到位元組穩定的輸出)。
設定檔是食譜頁面透過其測試框架證明的一項屬性。本索引僅回報該頁面宣告的值。
已納入匯整的食譜
標題為「已納入匯整的食譜」的區段核心儲存庫目前已收錄並合併這五道食譜——也就是 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(規劃於上游) | 嵌入並子集化字型 | 字型 | 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 |
安全性、簽章與符合性
標題為「安全性、簽章與符合性」的區段加密、簽署、無障礙與設定檔輸出。這些食譜會在各自的食譜頁面標明「支援≠符合性」與「存在≠有效性」的邊界。
| 食譜 | 它的作用 | 模組 | 設定檔 |
|---|---|---|---|
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/ 測試框架。上方的 slug 已是最終版本。在範例落地並執行其測試之前,該頁面仍是一個佔位符:
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,只需要再加上一個測試框架包裝。本索引記錄該 slug 與最終頁面,並未宣稱任何尚待處理的頁面已經完成。