PDFium Delphi Component Docs

SaveAsPdfA Metodo

Componente: TPdf  ·  Unità: PDFium
Salva il documento corrente come file conforme a PDF/A-1b post-elaborando il PDF di base con un aggiornamento incrementale che inserisce uno stream di metadati XMP, un OutputIntent ICC sRGB e un catalogo del documento aggiornato

Syntax

function SaveAsPdfA(const FileName: string; Conformance: TPdfAConformance = pac1b): Boolean; overload;
function SaveAsPdfA(const FileName: string; const Options: TPdfASaveOptions): Boolean; overload;

Description

SaveAsPdfA esegue prima il normale SaveAs, poi sovrappone un aggiornamento incrementale ai byte salvati che promuove il file a archivio PDF/A (PDF/A-1b predefinito; ISO 19005-1, con Cor.1:2007). Il post-processing inietta quattro cose nello stream salvato:

L'output resta byte-identico al risultato del SaveAs base fino alla fine del PDF originale; viene appeso solo l'aggiornamento incrementale I reader esistenti che non capiscono PDF/A continuano a renderizzare il file esattamente come farebbe il normale SaveAs. I due overload differiscono solo nel modo in cui conformità / opzioni vengono passate — la forma TPdfAConformance è la scorciatoia per il caso comune (pac1b); la forma TPdfASaveOptions prende un record con la superficie di configurazione completa, incluse le override opzionali per Title, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate, DocumentId e InstanceId. I campi lasciati vuoti vengono auto-popolati da FPDF_GetMetaText / FPDF_GetFileIdentifier, così il chiamante tipico non deve impostare alcun campo oltre a Conformance

Il valore Conformance seleziona lo standard e il livello di destinazione. PDF/A-1 (ISO 19005-1) offre pac1b e pac1a; PDF/A-2 (ISO 19005-2) e PDF/A-3 (ISO 19005-3) aggiungono i livelli b, u e a come pac2b / pac2u / pac2a e pac3b / pac3u / pac3a. Il pdfaid:part iniettato (1, 2 o 3) e pdfaid:conformance (A, B o U) seguono il valore richiesto, mentre l'OutputIntent mantiene il subtype GTS_PDFA1 che ISO 19005-2 conserva per ogni parte. Poiché il post-processore non può sintetizzare la struttura logica, una richiesta di Level A (pac1a / pac2a / pac3a) viene declassata automaticamente al Level B corrispondente quando la sorgente non ha la struttura tagged-PDF che quel livello richiede — così il file salvato non rivendica mai falsamente un Level A

Restituisce True in caso di successo. Restituisce False se il SaveAs base è fallito, se l'aggiornamento incrementale non ha potuto essere attaccato (PDF troppo corto, trailer non valido), o se i dati del profilo ICC sono stati forniti ma hanno fallito la validazione

Remarks

Example

// 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;

See Also

SaveAsPdfAToStream, ValidatePdfA, PdfAConformance, SaveAs