function ValidatePdfA: TPdfAValidationResult;
ValidatePdfA går igenom det öppnade dokumentet och letar efter varje PDF/A-överensstämmelsemarkör som definieras av ISO 19005-1 (med Cor.1:2007):
pdfaid:part and pdfaid:conformance entries, which tells the validator what PDF/A level the document was authored against (1a, 1b, 2b, 3b, ...)./ID array (mandatory per ISO 19005-1 6.1.3).xmp:CreateDate and xmp:ModifyDate i XMP-paketet (krävs när Info-dictionaryn innehåller CreationDate / ModDate-värden enligt 6.7.3 Example 2)pdfaExtension:schemas container describing the pdfaid extension schema (required by 6.7.8 / Cor.1).Resultatet är en TPdfAValidationResult-post:
pac1a, pac1b, pac2a, pac2b, pac2u, pac3a, pac3b, pac3u, pacNone, or pacUnknown for a PDF/A marker without a recognised level).TPdfAValidationIssues med TPdfAValidationIssue-värden som beskriver varje problem som hittats. De strukturella markörerna är pvaiMissingXmpMetadata, pvaiMissingPdfAIdentifier, pvaiMissingOutputIntent, pvaiMissingIccProfile, pvaiEncryptionPresent, pvaiMissingTrailerId, pvaiMissingXmpDates och pvaiMissingExtensionSchema. Den rapporterar även överträdelser på innehållsnivå som inte kan åtgärdas genom markörinjektion: pvaiLevelAStructureMissing (en Level A-uppgift utan taggad struktur), pvaiJavaScriptPresent, pvaiForbiddenAction, pvaiAdditionalActions, pvaiEmbeddedFilesNonConforming, pvaiLzwUsed, pvaiTransparencyForbidden, pvaiOptionalContentForbidden, pvaiForbiddenAnnotation, pvaiNeedAppearancesTrue, pvaiXfaPresent, pvaiFontNotEmbedded och pvaiUnicodeMappingMissing (en PDF/A-2u-/PDF/A-3u-uppgift vars teckensnitt saknar /ToUnicode).ValidatePdfA är en skrivskyddad inspektion — den ändrar inte
dokumentet och är säker att anropa upprepade gånger. Använd den innan du lämnar över en
PDF till ett arkivsystem för att synliggöra avvikelser för operatören. För den vanliga
kontrollen "vilken nivå är detta?" som inte behöver problemlistan, använd den lättare
egenskapen PdfAConformance
/NeedAppearances och /XFA, samt teckensnitt vars deskriptorer saknar ett inbäddat teckensnittsprogram — utöver de strukturella markörerna. Kontrollerna av transparens, valfritt innehåll och inbäddade filer tillämpas enligt den angivna PDF/A-delen (förbjudna i PDF/A-1; tillåtna i PDF/A-2 och PDF/A-3). Den förblir en snabb inspektion på byte-nivå snarare än en uttömmande validator (den tolkar till exempel varken färgrymder eller teckensnittstäckning per glyf), så kombinera den med en fullständig validator som veraPDF när uttömmande certifiering krävs.Conformance = pacNone och en tom Issues-array
uses System.TypInfo;
var
Outcome: TPdfAValidationResult;
Issue: TPdfAValidationIssue;
begin
Pdf1.FileName := 'C:\Incoming\report.pdf';
Pdf1.Active := True;
Outcome := Pdf1.ValidatePdfA;
Memo1.Lines.Add('Level: ' + GetEnumName(TypeInfo(TPdfAConformance),
Ord(Outcome.Conformance)));
for Issue in Outcome.Issues do
Memo1.Lines.Add('- ' + GetEnumName(TypeInfo(TPdfAValidationIssue), Ord(Issue)));
end;