跳转到内容

PHP 食谱

这是 PHP 原生 NextPDF 食谱索引,收录的是面向任务、可运行的页面,直接针对核心 PHP API 编写。 nextpdf 核心仓库拥有并验证 docs/public/cookbook/php/ 下的每个食谱。 每个食谱都由一个 examples/*.php 脚本和一个 tests/Cookbook/Php/ 测试夹具支撑。 随后,聚合器会把每个页面拉入本站,并一并带上其来源出处。

由于本页只是索引,它不会对任何食谱的行为作出声明。 每一行都记录该食谱的意图、调用的核心模块,以及它声明的可复现性概况。 该概况以及任何合规性声明都位于食谱页面本身,来源于该页面的 front-matter 及其仓库内测试,而不是本页。 关于集成(框架、渲染器、服务)食谱,请参阅 集成食谱。 关于每个可运行食谱都遵循的约定,请参阅 食谱约定

下面每个 [[…]] 都是对核心仓库 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 文档渲染为 PDFHtmlstructural
style-with-css(计划于上游)为 HTML 渲染应用 CSSHtmlstructural
html-table-layout(计划于上游)布局一个 HTML 表格Htmlstructural
paginate-long-html(计划于上游)为长 HTML 文档分页Htmlstructural
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 · Supportsemantic
exception-aware-error-handling(计划于上游)使用 NextPDF 异常体系处理错误Exception · Contractsstructural
observe-with-opentelemetry(计划于上游)使用 OpenTelemetry 观测渲染过程Observability · Telemetry · Eventsemantic

这些食谱需要在核心仓库中新增 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 与最终页面。 它并不声称任何尚待完成的页面已经完成。

  • 集成食谱 —— 框架、渲染器与服务的集成索引。
  • 食谱约定 —— 本索引中每个可运行食谱都遵循的约定。