Sổ tay PHP
Sổ tay PHP
Phần tiêu đề “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.
Cách phân giải một liên kết recipe
Phần tiêu đề “Cách phân giải một liên kết 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.
Các recipe đã được tổng hợp
Phần tiêu đề “Các recipe đã được tổng hợp”Core repository hiện đã chứa và đã hợp nhất năm recipe này: bộ Wave 8.
| Recipe | Chức năng | Module | Profile |
|---|---|---|---|
sign-pades (dự kiến upstream) | Áp dụng chữ ký baseline CMS/PAdES bằng khóa phần mềm | Security | semantic |
encrypt-aes256 (dự kiến upstream) | Mã hóa bằng AES-256 và đặt các cờ quyền | Security | structural |
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ài | Conformance | semantic |
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ận | Accessibility | semantic |
validate-signature (dự kiến upstream) | Kiểm tra một PDF có chữ ký hay không và ranh giới tin cậy | Inspect | semantic |
Nền tảng
Phần tiêu đề “Nền tảng”Dựng, phân trang và tạo kiểu cho tài liệu.
| Recipe | Chức năng | Module | Profile |
|---|---|---|---|
render-html-to-pdf (dự kiến upstream) | Kết xuất tài liệu HTML thành PDF | Html | structural |
style-with-css (dự kiến upstream) | Áp dụng CSS cho bản kết xuất HTML | Html | structural |
html-table-layout (dự kiến upstream) | Bố cục bảng HTML | Html | structural |
paginate-long-html (dự kiến upstream) | Phân trang tài liệu HTML dài | Html | structural |
compose-text-and-fonts (dự kiến upstream) | Soạn văn bản kèm kiểm soát kiểu chữ | Typography | structural |
embed-and-subset-fonts (dự kiến upstream) | Nhúng phông chữ và tạo subset | Font | structural |
cjk-vertical-writing (dự kiến upstream) | Đặt văn bản CJK ở chế độ viết dọc | Typography | structural |
multi-page-document (dự kiến upstream) | Dựng tài liệu nhiều trang | Document | structural |
headers-and-footers (dự kiến upstream) | Thêm đầu trang và chân trang lặp lại | Layout | structural |
Đồ họa và nội dung
Phần tiêu đề “Đồ họa và nội dung”Làm việc với vector, hình ảnh, lớp và không gian tọa độ.
| Recipe | Chức năng | Module | Profile |
|---|---|---|---|
draw-vector-graphics (dự kiến upstream) | Vẽ đồ họa vector | Graphics | structural |
gradients-and-transparency (dự kiến upstream) | Áp dụng gradient và độ trong suốt | Graphics | structural |
embed-images (dự kiến upstream) | Nhúng hình ảnh raster | Content | structural |
optional-content-layers (dự kiến upstream) | Dùng optional content dưới dạng lớp | Graphics | structural |
transform-coordinate-space (dự kiến upstream) | Biến đổi không gian tọa độ | Graphics | structural |
Điều hướng và biểu mẫu
Phần tiêu đề “Điều hướng và biểu mẫu”Thêm dấu trang, liên kết, chú thích và các trường AcroForm.
| Recipe | Chức năng | Module | Profile |
|---|---|---|---|
bookmarks-and-toc (dự kiến upstream) | Tạo dấu trang và mục lục | Navigation | structural |
links-and-annotations (dự kiến upstream) | Thêm liên kết và chú thích | Navigation | structural |
generate-barcodes (dự kiến upstream) | Tạo barcode | Barcode | bitwise |
fill-pdf-form (dự kiến upstream) | Điền AcroForm | Form | structural |
flatten-form-fields (dự kiến upstream) | Làm phẳng các trường biểu mẫu | Form | structural |
Thông tin tài liệu
Phần tiêu đề “Thông tin tài liệu”Thiết lập metadata và hành vi của trình xem.
| Recipe | Chức năng | Module | Profile |
|---|---|---|---|
set-document-metadata (dự kiến upstream) | Đặt metadata tài liệu | Metadata | structural |
set-viewer-preferences (dự kiến upstream) | Đặt tùy chọn trình xem | Document | structural |
Bảo mật, chữ ký và tính tuân thủ
Phần tiêu đề “Bảo mật, chữ ký và tính tuân thủ”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.
| Recipe | Chức năng | Module | Profile |
|---|---|---|---|
encrypt-with-permissions (dự kiến upstream) | Mã hóa với các cờ quyền | Security | structural |
sign-pades-b-b (dự kiến upstream) | Áp dụng chữ ký PAdES (B-B và B-T) | Security | semantic |
inspect-existing-signature (dự kiến upstream) | Kiểm tra chữ ký hiện có | Inspect | semantic |
tagged-pdf-ua2 (dự kiến upstream) | Phát ra cấu trúc đã gắn thẻ cho PDF/UA-2 | Accessibility | semantic |
pdf-a-4-output (dự kiến upstream) | Tạo đầu ra PDF/A-4 | Conformance | semantic |
validate-conformance (dự kiến upstream) | Xác thực dựa trên conformance profile | Compliance | semantic |
Kiểm tra và trích xuất
Phần tiêu đề “Kiểm tra và trích xuất”Đọc lại nội dung và cấu trúc từ một PDF.
| Recipe | Chức năng | Module | Profile |
|---|---|---|---|
extract-text-content (dự kiến upstream) | Trích xuất nội dung văn bản | Text | semantic |
parse-and-inspect-pdf (dự kiến upstream) | Phân tích và kiểm tra PDF | Inspect | semantic |
inspect-layout-boxes (dự kiến upstream) | Kiểm tra các hộp bố cục | Inspect | semantic |
Mẫu xuyên suốt
Phần tiêu đề “Mẫu xuyên suốt”Dùng các mẫu trải rộng trên nhiều module.
| Recipe | Chức năng | Phạm vi | Profile |
|---|---|---|---|
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 · Support | semantic |
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 NextPDF | Exception · Contracts | structural |
observe-with-opentelemetry (dự kiến upstream) | Quan sát quá trình kết xuất bằng OpenTelemetry | Observability · Telemetry · Event | semantic |
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.
Xem thêm
Phần tiêu đề “Xem thêm”- 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.