THotPDF.ValidatePDFA4 Method
Waliduje wygenerowany albo wczytany graf obiektów względem wspieranego profilu PDF/A-4 base, PDF/A-4e (inżynieryjnego) lub PDF/A-4f (plików powiązanych) i zwraca stabilną, ustrukturyzowaną diagnostykę
Deklaracja
function ValidatePDFA4(
const Options: THPDFPDFA4ValidationOptions;
out Issues: THPDFPDFA4ValidationIssues): boolean; overload;
function ValidatePDFA4(
const Options: THPDFPDFA4ValidationOptions;
out Findings: THPDFComplianceFindings): boolean; overload;
Jednostka
HPDFDoc
Typy profili i ważności
THPDFPDFA4Profile = (
p4pAutomatic,
p4pBase,
p4pEngineering,
p4pAssociatedFiles
);
THPDFPDFA4IssueSeverity = (
p4isWarning,
p4isError
);
THPDFPDFA4Profile wybiera wnioskowanie na podstawie metadanych albo jawny profil zgodności, a THPDFPDFA4IssueSeverity rozróżnia diagnostykę doradczą od błędów walidacji
Opcje
| Pole | Przeznaczenie |
|---|---|
Profile | Wybiera automatyczne wykrywanie na podstawie metadanych albo walidację base, engineering lub associated-file |
MaxObjects | Ogranicza iteracyjne przechodzenie grafu obiektów, domyślnie 1,000,000 obiektów |
MaxIssues | Ogranicza zapamiętywaną diagnostykę, domyślnie 1,024 problemów |
MaxDecodedBytes | Ogranicza skumulowaną liczbę zdekodowanych bajtów metadanych, ICC i strumieni treści, domyślnie 64 MiB |
MaxContentTokens | Ogranicza skumulowaną liczbę tokenów strumieni treści, domyślnie 4,000,000 tokenów |
CheckEmbeddedFonts | Sprawdza, czy fonty używane przy renderowaniu mają osadzony program fontu |
CheckAnnotationAppearances | Sprawdza flagi adnotacji i normalne strumienie wyglądu |
CheckOptionalContent | Sprawdza nazwy konfiguracji zawartości opcjonalnej i ich unikalność |
CheckColourSpaces | Sprawdza rysowane kolory device, profile ICC, output intenty, wartości domyślne, obrazy, shadingi, formularze i grupy przezroczystości |
CheckTransparency | Sprawdza rysowany kanał alpha, miękkie maski, tryby mieszania i pokrycie przestrzeni mieszania na poziomie strony |
CheckCompositeFonts | Sprawdza potomków Type 0, CIDSystemInfo, zgodność CMap i ograniczenia CIDToGIDMap |
CheckMetadataPackets | Sprawdza każdy strumień metadanych pod kątem UTF-8, nagłówka pakietu, koperty RDF i identyfikacji PDF/A |
Diagnostyka
Każdy THPDFPDFA4ValidationIssue raportuje ważność, stabilny kod z przestrzenią nazw, dotyczącą klauzulę ISO 19005-4, ścieżkę obiektu, numer obiektu, indeks strony od zera (gdy jest znany) oraz komunikat czytelny dla człowieka
Przeciążenie z THPDFComplianceFindings udostępnia to samo przejście przez wspólny model ustaleń czytelnych maszynowo, z profilem PDF/A-4 i stanem naprawy crsNotAttempted
Walidator obejmuje identyfikację PDF 2.0, ID trailera i stan szyfrowania, każdy pakiet metadanych, ograniczenia Info, nagłówki ICC i liczby kanałów, output intenty dokumentu i stron, rysowane kolory device, odziedziczony stan graficzny w tablicach strumieni treści i zagnieżdżonych Form XObject, maski obrazów, shadingi, przezroczystość, osadzanie fontów przy renderowaniu, relacje fontów kompozytowych, adnotacje i wyglądy, ograniczenia AcroForm, akcje i akcje dodatkowe, pliki powiązane, zawartość opcjonalną, referencje zewnętrzne oraz reguły 3D i załączników specyficzne dla profilu
Ustalenia dotyczące koloru i przezroczystości opierają się na operatorach rysujących, a nie tylko na operatorach ustawiających kolor; tokenizacja treści i ponowne użycie zdekodowanych strumieni są cache'owane, przy czym każde wywołanie nadal ewaluuje odziedziczony stan graficzny dla własnego kontekstu strony albo Form
Limity zdekodowanych bajtów, tokenów treści, obiektów i zapamiętanych problemów działają w trybie fail closed ze stabilnymi ustaleniami pdfa4.validation.*, zanim nieograniczona praca zdąży trwać dalej
Przykład
var
Options: THPDFPDFA4ValidationOptions;
Issues: THPDFPDFA4ValidationIssues;
begin
Options := THPDFPDFA4ValidationOptions.Default;
Options.Profile := p4pAutomatic;
if not PDF.ValidatePDFA4(Options, Issues) then
raise Exception.CreateFmt('%s at %s',
[String(Issues[0].Code), String(Issues[0].Path)]);
end;
Zachowanie generowania
EndDoc automatycznie uruchamia walidator dla '4', '4E' i '4F' i rzuca wyjątek przed serializacją, gdy pozostaje błąd
Generowanie PDF/A-4 pomija wpis Info trailera, PDF/A-4f zawsze tworzy wymagane drzewo nazw EmbeddedFiles, a adnotacje załączników plików akceptuje wyłącznie PDF/A-4f, gdzie strumień osadzony, Filespec, relacja AF, tablica AF katalogu i drzewo nazw są zapisywane razem