function SaveAsPdfA(const FileName: string; Conformance: TPdfAConformance = pac1b): Boolean; overload;
function SaveAsPdfA(const FileName: string; const Options: TPdfASaveOptions): Boolean; overload;
SaveAsPdfA utfører først den vanlige SaveAs, og legger deretter en inkrementell oppdatering oppå de lagrede byteverdiene, som oppgraderer filen til et PDF/A-arkiv (PDF/A-1b som standard; ISO 19005-1, med Cor.1:2007). Etterbehandlingen injiserer fire ting i den lagrede strømmen:
pdfaid:part = 1, pdfaid:conformance = B), speiler hver oppføring i Document Information Dictionary over i sitt XMP-motstykke (Title → dc:title, Author → dc:creator, Subject → dc:description, Keywords → pdf:Keywords, Creator → xmp:CreatorTool, Producer → pdf:Producer, CreationDate → xmp:CreateDate, ModDate → xmp:ModifyDate) som krevd av ISO 19005-1 6.7.3, og bygger inn pdfaid-utvidelsesskjemabeskrivelsen som kreves av 6.7.8 / Cor.1TPdfASaveOptions.IccProfileData/ID-array i traileren (obligatorisk per ISO 19005-1 6.1.3). Når kilde-PDF-en allerede har en filidentifikator, gjenbrukes de eksisterende 16-byte permanente og skiftende ID-ene; ellers avledes en deterministisk 16-byte fallback-ID fra kildebyteverdieneUtdatan forblir byte-identisk med base-SaveAs-resultatet frem til
slutten av den opprinnelige PDF-en; bare den inkrementelle oppdateringen legges til. Lesere
som ikke forstår PDF/A, gjengir fortsatt filen nøyaktig
slik den vanlige SaveAs ville gjort. De to overlastningene skiller
seg bare i hvordan samsvar / alternativer sendes inn —
TPdfAConformance-formen er en forkortelse for det vanlige
tilfellet (pac1b); TPdfASaveOptions-formen tar en
record med den fullstendige konfigurasjonsflaten, inkludert valgfrie
overstyringer for Title, Author, Subject, Keywords, Creator, Producer,
CreationDate, ModDate, DocumentId og InstanceId. Felter som etterlates tomme,
fylles automatisk ut fra FPDF_GetMetaText /
FPDF_GetFileIdentifier, så den typiske kalleren trenger ikke
å sette andre felt enn Conformance
Verdien Conformance velger målstandard og
nivå. PDF/A-1 (ISO 19005-1) tilbyr pac1b og
pac1a; PDF/A-2 (ISO 19005-2) og PDF/A-3 (ISO 19005-3) legger
til nivåene b, u og a som pac2b / pac2u /
pac2a og pac3b / pac3u /
pac3a. De injiserte pdfaid:part (1, 2 eller 3) og
pdfaid:conformance (A, B eller U) følger den forespurte verdien,
mens OutputIntent-en beholder GTS_PDFA1-subtypen som
ISO 19005-2 beholder for hver del. Etterbehandleren kan ikke
syntetisere logisk struktur, så et nivå A-ønske
(pac1a / pac2a / pac3a) nedgraderes
automatisk til matchende nivå B når kilden mangler den taggede
PDF-strukturen som nivået krever — dermed fremsetter aldri
den lagrede filen en falsk nivå A-påstand
Returnerer True ved vellykket lagring. Returnerer False hvis
base-SaveAs feilet, hvis den inkrementelle oppdateringen ikke kunne
festes (PDF-en for kort, ugyldig trailer), eller hvis ICC-profildataene
ble oppgitt men ikke besto valideringen
/Encrypt-nøkkelen. (Internt kjører baselagringen med saRemoveSecurity)ValidatePdfA etter lagringen for å undersøke resultatet og synliggjøre gjenværende problemer for operatører
// 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;