Archiwizacja i PDF/A
Spec: ISO 19005-4:2020, PDF/A-4 ISO 19005-4:2020 PDF/A-4 Spec: ISO 19005-2, PDF/A-2 ISO 19005-2 PDF/A-2 Evidence: Standard-backed
W skrócie
Dział zatytułowany „W skrócie”PDF/A to format używany wtedy, gdy dokument ma pozostać czytelny i wierny za kilkadziesiąt lat, także w oprogramowaniu, które jeszcze nie istnieje. Ta strona wyjaśnia, co ta gwarancja faktycznie obejmuje, jak NextPDF tworzy zgodny plik, oraz rzecz, która często zaskakuje zespoły: utworzenie PDF/A i udowodnienie, że plik jest zgodny z PDF/A, to dwa odrębne zadania. To drugie nadal należy do ciebie.
Dlaczego to ważne
Dział zatytułowany „Dlaczego to ważne”Obowiązki archiwizacyjne są bezlitosne właśnie dlatego, że błędy długo pozostają ciche. Plik wygląda dziś poprawnie, więc trafia do archiwum. Usterka — nieosadzona czcionka, kolor zależny od urządzenia, zaszyfrowany trailer — ujawnia się lata później, gdy pierwotne środowisko już nie istnieje i nikt nie potrafi odtworzyć zamierzonego wyglądu dokumentu. Wtedy kosztem nie jest już ponowne wygenerowanie; zostaje zapis, któremu nie można ufać.
PDF/A istnieje właśnie po to, by wyeliminować tę klasę usterek. Ale „użyliśmy biblioteki PDF/A” to nie to samo, co „ten plik jest zgodny”. Mylenie tych dwóch pojęć sprawia, że archiwa gromadzą dokumenty, które tylko wyglądają na zachowane.
Wersja skrócona
Dział zatytułowany „Wersja skrócona”- Celem formatu PDF/A jest wierne, samowystarczalne i niezależne od urządzenia odwzorowanie w czasie — zachowuje on statyczny wygląd dokumentu niezależnie od narzędzi, którymi go utworzono (ISO 19005-2, Wprowadzenie).
- Wymaga to konkretnych ograniczeń: wszystkie czcionki osadzone, kolor niezależny od urządzenia (bezpośrednio albo za pośrednictwem output intent; ISO 19005-4 §6.2.4.1) oraz brak szyfrowania w trailerze.
- NextPDF tworzy PDF/A w jawnym trybie wymagającym świadomej zgody, który odmawia wykonania niezgodnych operacji zamiast wytwarzać plik, który po cichu nie jest zgodny.
- O zgodności decyduje narzędzie weryfikujące, a nie deklaracja producenta. Nawet skuteczne zastosowanie standardu zależy od otaczającego środowiska archiwalnego i procedur (ISO 19005-4, Wprowadzenie). Walidacja wyniku to krok, który nadal pozostaje twoim obowiązkiem.
Jak podchodzi do tego NextPDF
Dział zatytułowany „Jak podchodzi do tego NextPDF”NextPDF traktuje PDF/A jako tryb, w którym znajduje się dokument, a nie filtr nakładany po przetwarzaniu. Ten tryb wymaga świadomej zgody. Po włączeniu aktywnie chroni dokument przed operacjami, które naruszyłyby zgodność. Zasadą projektową jest szybkie zgłaszanie błędów (fail-fast). Lepiej głośno odmówić żądania utworzenia zaszyfrowanego PDF/A niż zwrócić plik, który wygląda na archiwalny, a nim nie jest.
Scenariusz ma cztery etapy. Ten trzeci zespoły pomijają najczęściej.
- Compose for permanence Embed every font, use device-independent colour or an output intent, and avoid features the chosen PDF/A part forbids.
- Enable the PDF/A mode Opt in explicitly to the target conformance level. The mode now guards the document against incompatible operations.
- Validate independently Run a conformance checker. A passing report — not the producing library — is the evidence the archive needs.
- Preserve with procedure Store under records-management policy. The standard itself notes archival success depends on the environment, not the file alone.
Świadoma zgoda to rzeczywista ochrona, a nie sama flaga. Gdy tryb PDF/A jest włączony i pojawia się próba niezgodnej operacji — włączenia AES-GCM lub standardowego mechanizmu szyfrowania — silnik zgłasza typowany błąd niezgodności. Ochrona działa w obu kolejnościach: włącz PDF/A, a następnie zażądaj szyfrowania, albo zażądaj szyfrowania, a następnie włącz PDF/A. W obu przypadkach wynikiem jest jednoznaczna odmowa.
ISO 19005 zabrania klucza Encrypt w trailerze zgodnego
pliku, a silnik traktuje to jako wiążące, a nie jedynie zalecane.
Tryb pilnuje też spójności własnego stanu. Włączenie PDF/A dla określonej części (na przykład poziomu wiernego bajtowo PDF/A-3 w porównaniu z PDF/A-4) ustawia dyskryminator zgodności dokumentu tak, aby odpowiadał tej części. Bramki po stronie writera, które zależą od tej części, widzą wówczas właściwą wartość, a nie nieaktualną wartość domyślną. To rodzaj wewnętrznej spójności, który decyduje o tym, czy walidator zaakceptuje plik.
Co mówią dowody
Dział zatytułowany „Co mówią dowody”Cała ta strona jest poparta standardem. Evidence: Standard-backed
Sam cel wyznacza standard. Spec: ISO 19005-2 ISO 19005-2 stwierdza, że podstawowym celem PDF/A jest mechanizm reprezentowania dokumentów elektronicznych tak, by ich statyczna postać wizualna była zachowana w czasie, niezależnie od użytych narzędzi i systemów. Wynikają z tego ograniczenia: Spec: ISO 19005-4:2020, §6.2.4.1 ISO 19005-4:2020 §6.2.4.1 wymaga, by kolor był określony niezależnie od urządzenia, bezpośrednio lub za pośrednictwem output intent formatu PDF/A. Wymóg dotyczący czcionek wzmacnia format bazowy — Spec: ISO 32000-2:2020, §9 ISO 32000-2:2020 §9 zauważa, że najbardziej przewidywalne, niezawodne renderowanie uzyskuje się wtedy, gdy wszystkie czcionki są osadzone — dokładnie ta właściwość, bez której archiwum nie może się obejść.
Sama granica również znajduje się w standardzie, a nie tylko w redakcyjnym zastrzeżeniu. Spec: ISO 19005-4:2020 ISO 19005-4:2020 stwierdza we Wprowadzeniu, że pomyślne wykorzystanie do celów archiwalnych zależy od środowiska archiwalnego organizacji, polityk zarządzania dokumentacją i dodatkowych warunków trwałości. Zgodność jest oceniana względem normatywnych wymagań standardu przez narzędzie weryfikujące — a nie deklarowana przez producenta.
Zachowanie silnika jest poparte kodem: Evidence: Code-backed
Document::enablePdfA() to jawna operacja wymagająca świadomej zgody; zgłasza typowany
błąd niezgodności, gdy szyfrowanie i PDF/A są łączone w dowolnej kolejności,
i utrzymuje dyskryminator zgodności dokumentu w pełnej spójności z
wybraną częścią.
Przykład praktyczny
Dział zatytułowany „Przykład praktyczny”Poniższy kod pokazuje zachowanie ochronne na granicy. Sam tryb PDF/A jest funkcją z poziomu Premium. Sprawdzenie zgodności jest osobnym, niezależnym krokiem.
<?php
declare(strict_types=1);
use NextPDF\Contracts\PdfDocumentInterface;use NextPDF\Security\Exception\IncompatiblePdfAModeException;
/** * Produce an archival candidate, then prove it independently. * * The engine refuses conformance-breaking combinations; it does NOT * certify the result. A validator does that. * * @param PdfDocumentInterface $doc A document with all fonts embedded * @param object $pdfaLevel The target PDF/A version (Premium enum) * * @return string The archival candidate's bytes — not yet a verified PDF/A */function buildArchivalCandidate( PdfDocumentInterface $doc, object $pdfaLevel,): string { try { // Opt in explicitly. From here the mode guards the document. $doc->enablePdfA($pdfaLevel); } catch (IncompatiblePdfAModeException $e) { // e.g. encryption was already requested — refused, not silently // downgraded into a non-conforming "archival" file. throw new \RuntimeException( 'PDF/A and encryption are mutually exclusive for a conforming ' . 'file; resolve before archiving.', previous: $e, ); }
$bytes = $doc->getPdfData();
// The step teams skip: this is a CANDIDATE. Run an independent // conformance validator before treating it as a preserved record. return $bytes;}Tu kluczowy jest komentarz przy instrukcji return. Nazwa funkcji celowo mówi candidate (kandydat). Silnik wytworzył coś, co powinno być zgodne. Dopiero weryfikator zamienia „powinno” w dowód.
Częste nieporozumienie
Dział zatytułowany „Częste nieporozumienie”Jedno nieporozumienie sprawia, że do archiwów trafiają dokumenty, które nie są naprawdę zachowane: „biblioteka mówi PDF/A, więc plik jest plikiem PDF/A.” Taki werdykt nie należy do biblioteki. Producent może wytworzyć plik mający być zgodny i nadal pominąć normatywny wymóg. Zgodność jest ustalana względem standardu przez narzędzie walidujące. To ustalenie jest tym, na czym opiera się audytor lub przyszły czytelnik. Traktowanie intencji biblioteki generującej plik jako dowodu to podstawowy błąd.
Druga, subtelniejsza pułapka: założenie, że samo PDF/A zachowuje dokument. Sam standard wiąże powodzenie archiwizacji z otaczającym środowiskiem i procedurami. Zgodny plik w repozytorium bez dyscypliny procesowej nadal jest zagrożony. Format jest konieczny, lecz niewystarczający.
Ograniczenia i granice
Dział zatytułowany „Ograniczenia i granice”- NextPDF tworzy zgodnego kandydata; nie certyfikuje zgodności. Uruchom niezależny walidator. Dowodem jest pomyślny raport, a nie biblioteka generująca plik.
- Tryby zgodności PDF/A są funkcją z poziomu Premium. Core tworzy zwykły plik PDF 2.0 i wskazuje praktyczną ścieżkę uaktualnienia. Nie daje gwarancji PDF/A. Zobacz granicę poniżej.
- PDF/A i szyfrowanie wzajemnie się wykluczają w zgodnym pliku. Silnik odmawia tego połączenia w dowolnej kolejności, zamiast po cichu obniżać jakość.
- Silnik nie może osadzić czcionek, których mu nie dostarczono, ani naprawić koloru zależnego od urządzenia, który podajesz. Komponowanie z myślą o trwałości — osadzone czcionki, kolor niezależny od urządzenia — jest odpowiedzialnością po stronie danych wejściowych.
- Trwałość archiwalna zależy od procesu, a nie od samego pliku. ISO 19005 wskazuje, że procedury organizacyjne dotyczące retencji i zarządzania dokumentacją są częścią pomyślnego zachowania.
- Ta strona jest poparta standardem i opisuje zachowanie w obszarze Premium. Nie zawiera żadnej certyfikacji ani jej nie przyznaje.
| Edition | Availability |
|---|---|
| Core | Core tworzy wyłącznie zwykły plik PDF 2.0. |
| Pro | Tryby zgodności PDF/A (w tym poziomy wierne bajtowo PDF/A-3 oraz PDF/A-4) są dostępne wraz z ochroną przed niezgodnym użyciem szyfrowania. |
| Enterprise | Dodaje ustrukturyzowaną politykę zgodności PDF/A oraz raport (nadal jest to kontrola strukturalna, a nie certyfikacja — ostateczne ustalenie należy do walidatora i twojego zespołu ds. zgodności). |
Powiązane dokumenty
Dział zatytułowany „Powiązane dokumenty”- Czcionki: najtrudniejsza część — dlaczego czcionka, która wygląda poprawnie, nadal może sprawić, że plik będzie niezgodny lub niemożliwy do przeszukania.
- Testowanie plikami złotymi (golden-file) — jak przypięty wzorzec wyjścia wychwytuje dryf bajtowy, który po cichu narusza gwarancje archiwizacji.
- Faktury i e-fakturowanie — najbliżej powiązany temat: hybrydowy nośnik faktury sam jest plikiem PDF/A.
Słownik
Dział zatytułowany „Słownik”- PDF/A — rodzina ISO 19005: ograniczony profil PDF do długoterminowego przechowywania, zaprojektowany tak, by odtwarzać statyczny wygląd dokumentu w czasie, niezależnie od narzędzi, którymi go utworzono.
- Poziom / część zgodności — konkretny wariant PDF/A (na przykład PDF/A-2, PDF/A-3, PDF/A-4 oraz jego podpoziomy); każdy ogranicza funkcje PDF, których można użyć.
- Output intent — osadzony profil charakterystyki koloru, który pozwala interpretować zależny od urządzenia kolor w sposób niezależny od urządzenia.
- Kolor niezależny od urządzenia — kolor określony tak, by był reprodukowany spójnie niezależnie od urządzenia renderującego; wymóg PDF/A.
- Narzędzie sprawdzające zgodność / walidator — niezależne oprogramowanie, które ocenia plik względem normatywnych wymagań standardu; źródło werdyktu o zgodności.
- Kandydat archiwalny — plik wytworzony z zamiarem zgodności, zanim niezależny walidator potwierdzi, że faktycznie jest zgodny.