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

Đường cơ sở PDF 2.0: các điều khoản ISO 32000-2 mà NextPDF triển khai

Tuyên bố ranh giới. NextPDF triển khai các điều khoản được trích dẫn; NextPDF không khẳng định việc tuân thủ đầy đủ ISO 32000-2 như một tuyên bố chung chung.

ISO 32000-2:2020 là tiêu chuẩn nền tảng của PDF 2.0. Theo mặc định, NextPDF Core phát ra PDF 2.0 không bị ràng buộc (ConformanceMode::Plain): một header %PDF-2.0, một danh mục tài liệu, một cấu trúc tham chiếu chéo và một trailer tuân thủ. Trang này ghi lại các điều khoản đường cơ sở mà NextPDF triển khai cùng các ranh giới áp dụng rõ ràng. Thư viện triển khai các điều khoản được trích dẫn; thư viện không đưa ra tuyên bố chung chung rằng tài liệu “tuân thủ đầy đủ ISO 32000-2”. Một tệp tuân thủ là tệp mà một trình đọc tuân thủ có thể xử lý theo tiêu chuẩn. Đó là kết luận của trình kiểm chứng, không phải một cờ của thư viện.

Terminal window
composer require nextpdf/core:^3

Đầu ra đường cơ sở PDF 2.0 là mặc định của Core; bạn không cần chọn profile nào. ConformanceMode::Plain là bộ phân biệt mặc định. Các profile PDF/A-4, PDF/UA-2, PDF/X và ZUGFeRD là những tập con có ràng buộc được xếp lớp trên đường cơ sở này.

Mọi tài liệu NextPDF đều khởi đầu dưới dạng một tệp PDF 2.0 trước khi bất kỳ profile nào được áp dụng. Trình ghi đáp ứng các nghĩa vụ cấu trúc mà ISO 32000-2 đặt ra cho một tệp tuân thủ:

  • Danh mục tài liệu — §7.7.2: đối tượng gốc do /Root của trailer tham chiếu, có mặt trong mọi đầu ra.
  • Cấu trúc tham chiếu chéo — §7.5.8: một bảng hoặc luồng tham chiếu chéo giúp định vị mọi đối tượng.
  • Trailer — §7.5.5: từ điển trailer mà một tệp tuân thủ phải mang theo, bao gồm cả định danh /ID của tệp. /ID là duy nhất theo từng tệp và được loại bỏ trong quá trình chuẩn hóa khi so sánh. Đây là lý do phần lớn đầu ra có nhiều đối tượng dùng reproducibility_profile: structural, chứ không phải so khớp từng bit.
  • Cấu trúc logic — §14.7.2: khi bật chế độ gắn thẻ, đường cơ sở StructTreeRoot hỗ trợ profile PDF/UA-2.
  • Mở rộng phiên bản — §7.12: khi một extension của nhà phát triển được khai báo, dùng cơ chế từ điển Extensions / tiền tố nhà phát triển.

NextPDF triển khai các điều khoản này, nhưng không chạy quy trình đánh giá tuân thủ đầy đủ ISO 32000-2. Hãy dùng một trình kiểm chứng bên ngoài, chẳng hạn trình kiểm tra ngữ pháp Arlington hoặc veraPDF, để đưa ra kết luận đó. NextPDF\Compliance đi kèm các kiểm tra chéo luồng byte (ArlingtonValidator) nhằm phát hiện các bất nhất cấu trúc. Các kiểm tra này hỗ trợ việc kiểm chứng; chúng không phải là chứng nhận.

Ký hiệuTác dụng
ConformanceMode::PlainMặc định — phát ra PDF 2.0 không bị ràng buộc.
ConformanceMode::requiresPdf17(): boolFalse đối với các chế độ PDF 2.0; trình ghi phát ra một header %PDF-2.0.
NextPDF\Compliance\Validator\ArlingtonValidatorKiểm tra chéo ngữ pháp theo mô hình Arlington PDF (hỗ trợ việc kiểm chứng).
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$out = getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: __DIR__ . '/baseline.pdf';
$doc = Document::createStandalone(); // ConformanceMode::Plain — PDF 2.0
$doc->setTitle('PDF 2.0 baseline');
$doc->writeHtml('<h1>Hello PDF 2.0</h1><p>Unconstrained baseline output.</p>');
$doc->save($out);
echo "Wrote {$out} (%PDF-2.0). Validate structure with an external checker.\n";

Trong môi trường thực tế, hãy chạy trình kiểm chứng cấu trúc bên ngoài (Arlington / veraPDF) trong tích hợp liên tục (CI) trên đầu ra đại diện, rồi đặt cổng kiểm soát dựa trên báo cáo của trình đó. Thư viện phát ra cấu trúc; trình kiểm tra xác định cấu trúc đó có tuân thủ hay không. Thư viện không đưa ra bất kỳ tuyên bố tuân thủ chung chung nào.

Các trường hợp biên & điều cần lưu ý

Phần tiêu đề “Các trường hợp biên & điều cần lưu ý”
  • /ID là duy nhất theo từng tệp. Đầu ra đường cơ sở chứa /ID trong trailer, /CreationDate, hoặc các tiền tố tập con phông chữ sẽ không ổn định ở mức byte. Hãy so sánh bằng profile cấu trúc (qpdf-normalize), chứ không phải sha256 thô.
  • Plain ≠ lưu trữ. ConformanceMode::Plain không phải là PDF/A. Nó không mang theo OutputIntent hay dấu hiệu pdfaid nào. Đừng xem nó là định dạng lưu trữ.
  • Triển khai ≠ tuân thủ đầy đủ. Trang này liệt kê các điều khoản mà NextPDF triển khai. Nó không khẳng định rằng mọi điều khoản ISO 32000-2 đều được đáp ứng cho mọi tài liệu. Đó là phán quyết của trình kiểm chứng cho từng tài liệu.
  • Các extension có không gian tên. Một extension của nhà phát triển dùng từ điển Extensions §7.12 với một tiền tố đã đăng ký. Khóa riêng không có tiền tố là một sai lệch so với đường cơ sở.

Phát ra đường cơ sở là đường dẫn lõi của engine. Ngân sách là thời gian thực ≤ 1500 ms và mức sử dụng đỉnh ≤ 64 MB cho một tài liệu điển hình. Trình ghi đường cơ sở hỗ trợ ma trận backport (PHP 8.1–8.4).

Đầu ra đường cơ sở PDF 2.0 không mang theo mã hóa hay chữ ký trừ khi bạn thêm chúng một cách tường minh. Mã hóa cung cấp tính bảo mật và được trình bày trong một công thức riêng. Các bit quyền ISO dựa vào sự hợp tác của trình đọc, không phải cơ chế kiểm soát truy cập. Đường cơ sở không đưa ra bất kỳ bảo đảm bảo mật nào.

Tuyên bốĐặc tảĐiều khoảnreference_id
Tệp PDF 2.0 tuân thủ phải mang theo một trailer / cấu trúc tệp tuân thủ.ISO 32000-2§7.5.5
Mọi đối tượng đều có thể định vị được qua một bảng hoặc luồng tham chiếu chéo.ISO 32000-2§7.5.8
Tệp có danh mục tài liệu làm đối tượng gốc.ISO 32000-2§7.7.2
Việc tuân thủ được đặt trong khuôn khổ trình ghi và trình đọc tuân thủ.ISO 32000-2§7.2
Các mở rộng phiên bản dùng từ điển Extensions / tiền tố nhà phát triển.ISO 32000-2§7.12
Đầu ra gắn thẻ được xây dựng dựa trên đường cơ sở cấu trúc logic của ISO 32000-2.ISO 32000-2§14.7.2

Các trích dẫn là con trỏ gồm clause-id + reference_id đến kho ngữ liệu kiểm chứng. Không có văn bản tiêu chuẩn nào được tái hiện; NextPDF tóm tắt các điều khoản bằng ngôn từ của riêng mình.