THotPDF.ValidatePDFA4 Method

Validerar en genererad eller inläst objektgraf mot den stödda profilen PDF/A-4 base, PDF/A-4e engineering eller PDF/A-4f associated files och returnerar stabil, strukturerad diagnostik

Deklaration

function ValidatePDFA4(
  const Options: THPDFPDFA4ValidationOptions;
  out Issues: THPDFPDFA4ValidationIssues): boolean; overload;

function ValidatePDFA4(
  const Options: THPDFPDFA4ValidationOptions;
  out Findings: THPDFComplianceFindings): boolean; overload;

Enhet

HPDFDoc

Profil- och allvarlighetstyper

THPDFPDFA4Profile = (
  p4pAutomatic,
  p4pBase,
  p4pEngineering,
  p4pAssociatedFiles
);

THPDFPDFA4IssueSeverity = (
  p4isWarning,
  p4isError
);

THPDFPDFA4Profile väljer metadatainferens eller en explicit konformitetsprofil, medan THPDFPDFA4IssueSeverity skiljer rådgivande diagnostik från valideringsfel

Alternativ

FältSyfte
ProfileVäljer automatisk metadatabaserad detektering eller validering mot base, engineering eller associated files
MaxObjectsBegränsar iterativ traversering av objektgrafen, standard 1 000 000 objekt
MaxIssuesBegränsar antalet sparade diagnostikposter, standard 1 024
MaxDecodedBytesBegränsar kumulativt avkodade byte för metadata, ICC och innehållsströmmar, standard 64 MiB
MaxContentTokensBegränsar kumulativa tokens i innehållsströmmar, standard 4 000 000 tokens
CheckEmbeddedFontsKontrollerar att renderande typsnitt har ett inbäddat fontprogram
CheckAnnotationAppearancesKontrollerar annoteringsflaggor och normala appearance-strömmar
CheckOptionalContentKontrollerar namn och unikhet i optional content-konfigurationer
CheckColourSpacesKontrollerar målad enhetsfärg, ICC-profiler, output intents, standardvärden, bilder, shadings, formulär och transparensgrupper
CheckTransparencyKontrollerar målad alpha, soft masks, blend modes och sidtäckningen av blending-rymden
CheckCompositeFontsKontrollerar Type 0-efterföljare, CIDSystemInfo, CMap-kompatibilitet och CIDToGIDMap-begränsningar
CheckMetadataPacketsKontrollerar varje metadataström mot kraven på UTF-8, packet-header, RDF-kuvert och PDF/A-identifikation

Diagnostik

Varje THPDFPDFA4ValidationIssue rapporterar allvarlighetsgrad, en stabil namnrymdskod, tillämplig klausul i ISO 19005-4, objektsökväg, objektnummer, nollbaserat sidindex när det är känt och ett mänskligt läsbart meddelande

THPDFComplianceFindings-overloaden exponerar samma traversering genom den gemensamma maskinläsbara fyndmodellen, med profilen PDF/A-4 och repareringsläget crsNotAttempted

Valideraren täcker PDF 2.0-identifikation, trailer-ID och krypteringstillstånd, varje metadatapaket, Info-begränsningar, ICC-huvuden och antal kanaler, output intents för dokument och sidor, målad enhetsfärg, ärvda grafiktillstånd över innehållsströmsarrayer och nästlade Form XObjects, bildmasker, shadings, transparens, inbäddning av renderande typsnitt, relationer mellan sammansatta typsnitt, annoteringar och appearances, AcroForm-begränsningar, actions och ytterligare actions, associerade filer, optional content, externa referenser samt profilens specifika 3D- eller bilageregler

Fynd om färg och transparens bygger på paint-operatorer, inte bara på färgsättande operatorer; tokenisering av innehåll och återanvändning av avkodade strömmar cachas, medan varje anrop fortfarande utvärderar ärvt grafiktillstånd för sin egen sid- eller Form-kontext

Gränserna för avkodade byte, innehållstokens, objekt och sparade problem failar stängt med stabila pdfa4.validation.*-fynd innan obegränsat arbete hinner fortsätta

Exempel

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;

Genereringsbeteende

EndDoc kör valideraren automatiskt för '4', '4E' och '4F' och kaster undantag före serialisering om något fel återstår

PDF/A-4-generering utelämnar Info-posten i trailern, PDF/A-4f skapar alltid det krävda EmbeddedFiles-namnträdet, och annoteringar för filbilagor accepteras bara av PDF/A-4f, där den inbäddade strömmen, Filespec, AF-relationen, Catalog AF-arrayen och namnträdet skrivs ut tillsammans

Relaterade API:er