Przejdź do głównej zawartości

Przegląd zgodności: co generuje NextPDF i kto decyduje o zgodności

Granica odpowiedzialności. Obsługa profilu to nie zgodność; o zgodności rozstrzyga niezależny walidator.

Ta strona zestawia profile standardów, do których NextPDF Core kieruje dokumenty. Na każdej stronie w tej sekcji obowiązuje jedna zasada wynikająca z norm: biblioteka generuje wynik przeznaczony do zachowania zgodności z profilem, a o tym, czy dany plik Portable Document Format (PDF) faktycznie jest zgodny, decyduje niezależny walidator. Tym walidatorem może być veraPDF, narzędzie sprawdzające PDF/UA, walidator faktur elektronicznych oparty na Schematron lub organ odbierający. W przypadku PDF/A norma ISO 19005-4 §6.7.3 wprost określa tę granicę: znaczniki pdfaid:part/pdfaid:rev wskazują intencję producenta; nie rozstrzygają o zgodności. Rozstrzygnięcie zapada zgodnie z klauzulą zgodności normy, w procesie zewnętrznym wobec biblioteki generującej.

NextPDF nie stwierdza zgodności. Generuje artefakty strukturalne wymagane przez profil. Gdy profil jest reglamentowany, NextPDF zgłasza błąd już na granicy API, dzięki czemu brakująca funkcja jest widoczna jako wyraźny błąd, a nie jako niezgodny plik wygenerowany po cichu.

Okno terminala
composer require nextpdf/core:^3

Niektóre z poniższych profili wymagają pakietu Premium nextpdf/pro; każda dotycząca ich strona odnotowuje ten wymóg. Core dostarcza dyskryminator zgodności (NextPDF\Conformance\ConformanceMode) oraz walidatory strumienia bajtów w NextPDF\Compliance. Ścieżkę tworzenia OutputIntent / International Color Consortium (ICC) / Extensible Metadata Platform (XMP) dla profili archiwalnych zapewnia nextpdf/pro.

NextPDF przypisuje dokument do kontraktu zgodności za pomocą jednego typowanego dyskryminatora, NextPDF\Conformance\ConformanceMode. Wyliczenie jest źródłem prawdy dla kontraktu ISO, którego musi przestrzegać moduł zapisujący. Ma przypadki dla Plain, PdfUa1, PdfUa2, PdfA2, PdfA3/PdfA3b/PdfA3u oraz PdfA4/PdfA4e/PdfA4f. Moduł zapisujący odczytuje tryb i generuje wymaganą strukturę; nigdy nie ustawia flagi mówiącej, że plik jest zgodny.

Na każdej stronie w tej sekcji obowiązują trzy granice:

  • Obsługa ≠ zgodność. Wygenerowanie metadanych wymaganych przez profil to funkcja, a nie werdykt.
  • Walidacja ≠ certyfikacja. Raport walidatora bez błędów to dowód, a nie certyfikat.
  • Przetestowany profil ≠ certyfikacja. Testy NextPDF potwierdzają, że wygenerowane bajty odpowiadają cytowanym klauzulom; nie są akredytowanym audytem.

Punktami wejścia zgodności w NextPDF\Core\Document są:

MetodaEfektPoziom
enablePdfA(?object $version = null)Ustawia dla dokumentu przypadek PDF/A ConformanceMode (domyślnie PdfA4); planuje OutputIntent + ICC + XMP przy save(). Zgłasza InvalidConfigException, jeśli brakuje nextpdf/pro.API Core, silnik Premium
enableTaggedPdf(string $lang = 'en', ?ConformancePolicy $policy = null)Ustawia ConformanceMode::PdfUa2, podłącza generator treści ze znacznikami i sprawdza znacznik języka względem zasady.Core
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$doc = Document::createStandalone();
$doc->enableTaggedPdf('en'); // ConformanceMode::PdfUa2
$doc->setTitle('Conformance index sample');
$doc->writeHtml('<h1>Hello</h1><p>Tagged content.</p>');
$doc->save(getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: __DIR__ . '/out.pdf');

Nie dotyczy. Strony poszczególnych profili zawierają uruchamialne przykłady produkcyjne; ta strona przeglądowa służy jako punkt nawigacyjny.

  • Strona przeglądowa nie deklaruje żadnego zachowania. Tabele zweryfikowanych deklaracji znajdują się na stronach poszczególnych profili. Ta strona podaje wyłącznie nadrzędną zasadę.
  • Nazwa profilu w metadanych to deklaracja, a nie dowód. Czytnik, który znajdzie pdfaid:part=4, widzi intencję producenta, a nie dowód, że plik jest zgodny.
  • Reglamentacja funkcji działa w trybie fail-fast. Instalacja oparta wyłącznie na Core, która wywołuje ścieżkę archiwalną Premium, otrzymuje InvalidConfigException z komunikatem o konieczności uaktualnienia, a nigdy niezgodny plik wygenerowany po cichu.

Nie ma zastosowania do strony przeglądowej. Strony poszczególnych profili deklarują własne budżety.

Profile zgodności nakładają ograniczenia na strukturę, a nie zapewniają ochronę przed zagrożeniami. PDF/A-4 zakazuje szyfrowania; PDF/UA-2 wymaga dostępnej struktury. Żaden z tych wymogów nie jest zabezpieczeniem. Model bezpieczeństwa silnika opisuje centrum zaufania.

DeklaracjaNormaKlauzulareference_id
Znaczniki pdfaid producenta wskazują intencję; rozstrzygnięcie wynika z klauzuli zgodności normy i należy do walidatora lub procesu, a nie do biblioteki.ISO 19005-4§6.7.3
Zgodność z PDF/UA-2 ocenia się względem wymagań zgodności normy; nie stwierdza jej oprogramowanie generujące.ISO 14289-2§7.2.2
Zgodny plik PDF 2.0 musi spełniać określone wymagania dotyczące struktury pliku i sekcji trailer; biblioteka je generuje, lecz nie rozstrzyga wyniku.ISO 32000-2§7.5.5

Cytowania są wskaźnikami w postaci clause-id + reference_id, kierującymi do korpusu weryfikacyjnego. Tekst norm nie jest powielany.