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

PolePrzeznaczenie
ProfileWybiera automatyczne wykrywanie na podstawie metadanych albo walidację base, engineering lub associated-file
MaxObjectsOgranicza iteracyjne przechodzenie grafu obiektów, domyślnie 1,000,000 obiektów
MaxIssuesOgranicza zapamiętywaną diagnostykę, domyślnie 1,024 problemów
MaxDecodedBytesOgranicza skumulowaną liczbę zdekodowanych bajtów metadanych, ICC i strumieni treści, domyślnie 64 MiB
MaxContentTokensOgranicza skumulowaną liczbę tokenów strumieni treści, domyślnie 4,000,000 tokenów
CheckEmbeddedFontsSprawdza, czy fonty używane przy renderowaniu mają osadzony program fontu
CheckAnnotationAppearancesSprawdza flagi adnotacji i normalne strumienie wyglądu
CheckOptionalContentSprawdza nazwy konfiguracji zawartości opcjonalnej i ich unikalność
CheckColourSpacesSprawdza rysowane kolory device, profile ICC, output intenty, wartości domyślne, obrazy, shadingi, formularze i grupy przezroczystości
CheckTransparencySprawdza rysowany kanał alpha, miękkie maski, tryby mieszania i pokrycie przestrzeni mieszania na poziomie strony
CheckCompositeFontsSprawdza potomków Type 0, CIDSystemInfo, zgodność CMap i ograniczenia CIDToGIDMap
CheckMetadataPacketsSprawdza 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

Powiązane API