function SaveAsPdfA(const FileName: string; Conformance: TPdfAConformance = pac1b): Boolean; overload;
function SaveAsPdfA(const FileName: string; const Options: TPdfASaveOptions): Boolean; overload;
SaveAsPdfA voert eerst de reguliere SaveAs uit, waarna een incrementele update bovenop de opgeslagen bytes wordt gelaagde die het bestand tot een PDF/A-archief promoveert (PDF/A-1b standaard; ISO 19005-1, met Cor.1:2007). De nabewerking injecteert vier dingen in de opgeslagen stroom:
pdfaid:part = 1, pdfaid:conformance = B), elke Document Information Dictionary-vermelding spiegelt naar zijn XMP-equivalent (Title → dc:title, Author → dc:creator, Subject → dc:description, Keywords → pdf:Keywords, Creator → xmp:CreatorTool, Producer → pdf:Producer, CreationDate → xmp:CreateDate, ModDate → xmp:ModifyDate) zoals vereist door ISO 19005-1 6.7.3, en de pdfaid-extensieschema-beschrijving vereist door 6.7.8 / Cor.1 inbedt.TPdfASaveOptions.IccProfileData./ID-array in de trailer (verplicht per ISO 19005-1 6.1.3). Wanneer de bron-PDF al een bestandsidentificator draagt, worden de bestaande 16-byte permanente en wijzigende ID's hergebruikt; anders wordt een deterministische 16-byte-fallback-ID afgeleid uit de bronbytes.De uitvoer blijft byte-identiek aan het basis-SaveAs-resultaat tot aan het einde van de originele PDF; alleen de incrementele update wordt toegevoegd. Bestaande lezers die PDF/A niet begrijpen renderen het bestand nog steeds exact zoals de reguliere SaveAs zou doen. De twee overloads verschillen alleen in hoe de conformiteit / opties worden doorgegeven — de TPdfAConformance-vorm is een verkorte vorm voor het algemene geval (pac1b); de TPdfASaveOptions-vorm neemt een record met het volledige configuratieoppervlak, inclusief optionele overrides voor Title, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate, DocumentId en InstanceId. Velden die leeg worden gelaten worden automatisch gevuld vanuit FPDF_GetMetaText / FPDF_GetFileIdentifier, zodat de typische aanroeper geen veld anders dan Conformance hoeft in te stellen.
De waarde Conformance selecteert de doelstandaard en het niveau. PDF/A-1 (ISO 19005-1) biedt pac1b en pac1a; PDF/A-2 (ISO 19005-2) en PDF/A-3 (ISO 19005-3) voegen niveaus b, u en a toe als pac2b / pac2u / pac2a en pac3b / pac3u / pac3a. De geïnjecteerde pdfaid:part (1, 2 of 3) en pdfaid:conformance (A, B of U) volgen de gevraagde waarde, terwijl de OutputIntent het subtype GTS_PDFA1 behoudt dat ISO 19005-2 voor elk deel behoudt. Omdat de nabewerker geen logische structuur kan synthetiseren, resulteert een Level A-verzoek
(pac1a / pac2a / pac3a) automatisch in een downgrades naar het overeenkomstige Level B wanneer de bron de
getagde-PDF-structuur die dat niveau vereist ontbreekt — dus het opgeslagen bestand
doet nooit een valse Level A-claim.
Retourneert True bij succes. Retourneert False als
de basis-SaveAs faalde, als de incrementele update niet kon worden
bijgevoegd (PDF te kort, ongeldige trailer), of als de ICC-profiel-
gegevens werden aangeleverd maar validatie faalde.
/Encrypt verbiedt. (Intern draait de basis-save met saRemoveSecurity.)ValidatePdfA na het opslaan om het resultaat te inspecteren en eventuele resterende problemen aan bedieners te tonen.
// Simple PDF/A-1b output using the bundled sRGB profile
if Pdf1.SaveAsPdfA('C:\Report.pdfa.pdf') then
ShowMessage('Saved PDF/A-1b');
// With a custom ICC profile
var
Opts: TPdfASaveOptions;
begin
Opts := Default(TPdfASaveOptions);
Opts.Conformance := pac1b;
Opts.IccProfileData := TFile.ReadAllBytes('C:\Profiles\Coated.icc');
Pdf1.SaveAsPdfA('C:\Report.cmyk.pdfa.pdf', Opts);
end;