Bỏ qua để đến nội dung

Sổ tay PHP

Mục lục này liệt kê các recipe PHP-native của NextPDF: những trang chạy được, tập trung vào từng tác vụ và được viết trực tiếp trên core PHP API. Core repository nextpdf sở hữu và xác minh từng recipe trong docs/public/cookbook/php/. Mỗi recipe có một script examples/*.php và một test harness tests/Cookbook/Php/. Sau đó, bộ tổng hợp kéo từng trang vào trang web này và giữ lại nguồn gốc của trang.

Vì là mục lục, trang này không đưa ra bất kỳ tuyên bố nào về hành vi của từng recipe. Mỗi hàng ghi lại mục đích của recipe, core module mà recipe dùng, và reproducibility profile mà recipe khai báo. Profile và mọi tuyên bố về tính tuân thủ thuộc về chính trang recipe. Những thông tin đó đến từ front-matter của trang và test trong repo của trang, không phải từ mục lục này. Để xem sổ tay tích hợp (framework / renderer / dịch vụ), hãy xem Sổ tay tích hợp. Để xem hợp đồng mà mọi recipe chạy được phải tuân theo, hãy xem Quy ước recipe.

Mỗi [[…]] bên dưới là tham chiếu chuyển tiếp đến một trang được biên soạn trong core repository tại docs/public/cookbook/php/. Sau đó, bộ tổng hợp kéo trang đó vào trang web này. Mỗi slug tuân theo một quy ước: một segment duy nhất.

/cookbook/php/<recipe>/

<recipe> đặt tên cho mục đích của recipe theo kebab-case (ví dụ render-html-to-pdf, không phải tên module html). Slug viết thường, phân tách bằng dấu gạch nối, không có số phiên bản, và kết thúc bằng một dấu gạch chéo. Cho đến khi trang đích được tổng hợp, liên kết của trang vẫn là placeholder và chưa thể phân giải. Một recipe chưa có ví dụ chạy được (danh sách còn thiếu bên dưới) không thể xuất bản cho đến khi ví dụ và test harness của nó tồn tại, dù liên kết đã trỏ tới slug cuối cùng.

Reproducibility profile, tóm tắt trong một dòng

Phần tiêu đề “Reproducibility profile, tóm tắt trong một dòng”

Mỗi recipe khai báo profile nghiêm ngặt nhất mà nó có thể thực sự đáp ứng:

  • bitwise — byte giống hệt nhau giữa các lần chạy (nội dung hoàn toàn tất định, với mọi nguồn entropy đã được ghim cố định).
  • structural — giống hệt nhau sau khi chuẩn hóa các phần tử dễ biến đổi (trailer /ID, ngày creation/modification, tiền tố font-subset — trên thực tế là mọi PDF nhiều đối tượng).
  • semantic — chỉ tương đương về structural-AST cộng với metadata (đầu ra đã ký hoặc đã đóng dấu thời gian, hoặc đầu ra có tính tương đương vốn không ổn định ở mức byte).

Trang recipe chứng minh profile bằng test harness của chính trang. Mục lục này chỉ báo cáo giá trị mà trang đó khai báo.

Core repository hiện đã chứa và đã hợp nhất năm recipe này: bộ Wave 8.

RecipeChức năngModuleProfile
sign-pades (dự kiến upstream)Áp dụng chữ ký baseline CMS/PAdES bằng khóa phần mềmSecuritysemantic
encrypt-aes256 (dự kiến upstream)Mã hóa bằng AES-256 và đặt các cờ quyềnSecuritystructural
pdfa4-conformance-gate (dự kiến upstream)Tạo đầu ra PDF/A-4 và thiết lập cổng kiểm tra bằng một validator bên ngoàiConformancesemantic
accessible-pdfua2-from-html (dự kiến upstream)Phát ra cấu trúc đã gắn thẻ để tạo PDF/UA-2 dễ tiếp cậnAccessibilitysemantic
validate-signature (dự kiến upstream)Kiểm tra một PDF có chữ ký hay không và ranh giới tin cậyInspectsemantic

Dựng, phân trang và tạo kiểu cho tài liệu.

RecipeChức năngModuleProfile
render-html-to-pdf (dự kiến upstream)Kết xuất tài liệu HTML thành PDFHtmlstructural
style-with-css (dự kiến upstream)Áp dụng CSS cho bản kết xuất HTMLHtmlstructural
html-table-layout (dự kiến upstream)Bố cục bảng HTMLHtmlstructural
paginate-long-html (dự kiến upstream)Phân trang tài liệu HTML dàiHtmlstructural
compose-text-and-fonts (dự kiến upstream)Soạn văn bản kèm kiểm soát kiểu chữTypographystructural
embed-and-subset-fonts (dự kiến upstream)Nhúng phông chữ và tạo subsetFontstructural
cjk-vertical-writing (dự kiến upstream)Đặt văn bản CJK ở chế độ viết dọcTypographystructural
multi-page-document (dự kiến upstream)Dựng tài liệu nhiều trangDocumentstructural
headers-and-footers (dự kiến upstream)Thêm đầu trang và chân trang lặp lạiLayoutstructural

Làm việc với vector, hình ảnh, lớp và không gian tọa độ.

RecipeChức năngModuleProfile
draw-vector-graphics (dự kiến upstream)Vẽ đồ họa vectorGraphicsstructural
gradients-and-transparency (dự kiến upstream)Áp dụng gradient và độ trong suốtGraphicsstructural
embed-images (dự kiến upstream)Nhúng hình ảnh rasterContentstructural
optional-content-layers (dự kiến upstream)Dùng optional content dưới dạng lớpGraphicsstructural
transform-coordinate-space (dự kiến upstream)Biến đổi không gian tọa độGraphicsstructural

Thêm dấu trang, liên kết, chú thích và các trường AcroForm.

RecipeChức năngModuleProfile
bookmarks-and-toc (dự kiến upstream)Tạo dấu trang và mục lụcNavigationstructural
links-and-annotations (dự kiến upstream)Thêm liên kết và chú thíchNavigationstructural
generate-barcodes (dự kiến upstream)Tạo barcodeBarcodebitwise
fill-pdf-form (dự kiến upstream)Điền AcroFormFormstructural
flatten-form-fields (dự kiến upstream)Làm phẳng các trường biểu mẫuFormstructural

Thiết lập metadata và hành vi của trình xem.

RecipeChức năngModuleProfile
set-document-metadata (dự kiến upstream)Đặt metadata tài liệuMetadatastructural
set-viewer-preferences (dự kiến upstream)Đặt tùy chọn trình xemDocumentstructural

Dùng mã hóa, chữ ký, khả năng tiếp cận và đầu ra theo profile. Các recipe này giữ rõ ranh giới support≠conformance và presence≠validity trên trang recipe.

RecipeChức năngModuleProfile
encrypt-with-permissions (dự kiến upstream)Mã hóa với các cờ quyềnSecuritystructural
sign-pades-b-b (dự kiến upstream)Áp dụng chữ ký PAdES (B-B và B-T)Securitysemantic
inspect-existing-signature (dự kiến upstream)Kiểm tra chữ ký hiện cóInspectsemantic
tagged-pdf-ua2 (dự kiến upstream)Phát ra cấu trúc đã gắn thẻ cho PDF/UA-2Accessibilitysemantic
pdf-a-4-output (dự kiến upstream)Tạo đầu ra PDF/A-4Conformancesemantic
validate-conformance (dự kiến upstream)Xác thực dựa trên conformance profileCompliancesemantic

Đọc lại nội dung và cấu trúc từ một PDF.

RecipeChức năngModuleProfile
extract-text-content (dự kiến upstream)Trích xuất nội dung văn bảnTextsemantic
parse-and-inspect-pdf (dự kiến upstream)Phân tích và kiểm tra PDFInspectsemantic
inspect-layout-boxes (dự kiến upstream)Kiểm tra các hộp bố cụcInspectsemantic

Dùng các mẫu trải rộng trên nhiều module.

RecipeChức năngPhạm viProfile
worker-safe-batch-rendering (dự kiến upstream)Kết xuất an toàn trong worker chạy lâu (registry dùng chung, bộ nhớ có giới hạn)Core · Performance · Supportsemantic
exception-aware-error-handling (dự kiến upstream)Xử lý lỗi với cây phân cấp ngoại lệ của NextPDFException · Contractsstructural
observe-with-opentelemetry (dự kiến upstream)Quan sát quá trình kết xuất bằng OpenTelemetryObservability · Telemetry · Eventsemantic

Các recipe đang chờ một ví dụ chạy được

Phần tiêu đề “Các recipe đang chờ một ví dụ chạy được”

Các recipe này cần một tệp examples/*.php mới và một harness tests/Cookbook/Php/ trong core repository trước khi có thể xuất bản. Các slug ở trên là cuối cùng. Mỗi trang vẫn là placeholder cho đến khi ví dụ được đưa vào và test của trang chạy:

  • sign-pades-b-b (dự kiến upstream) (bao gồm PAdES B-B và B-T)
  • inspect-existing-signature (dự kiến upstream)
  • extract-text-content (dự kiến upstream)
  • parse-and-inspect-pdf (dự kiến upstream)
  • validate-conformance (dự kiến upstream)
  • inspect-layout-boxes (dự kiến upstream)
  • worker-safe-batch-rendering (dự kiến upstream) (ví dụ đã có; đã thêm test harness memory/GC mới)
  • observe-with-opentelemetry (dự kiến upstream) (đã thêm ví dụ PHP-native mới)

Mọi recipe khác ở trên đều đã có một tệp examples/*.php nền tảng và chỉ cần một lớp bọc harness. Mục lục này ghi lại slug và trang cuối cùng. Nó không tuyên bố rằng bất kỳ trang đang chờ nào đã hoàn chỉnh.

  • Sổ tay tích hợp — mục lục tích hợp framework, renderer và dịch vụ.
  • Quy ước recipe — hợp đồng mà mọi recipe chạy được trong sổ tay này tuân theo.