function SaveAsPdfR(const FileName: string): Boolean; overload;
function SaveAsPdfR(const FileName: string; const Options: TPdfRSaveOptions): Boolean; overload;
SaveAsPdfR esegue prima il normale SaveAs, poi sovrappone un aggiornamento incrementale ai byte salvati che applica le marcature di formato file PDF/R-1. PDF/R-1 (ISO 23504-1:2020) è il sottosistema rigoroso di trasporto di immagini raster del PDF usato dal TWAIN Working Group per i flussi di lavoro con documenti scansionati; porta un buffer raster di dimensione fissa per pagina, supporta immagini bitonali / in scala di grigio / RGB e solo la compressione FlateDecode / CCITTFaxDecode / DCTDecode
Il post-processing inietta cinque classi di byte nello stream salvato:
%PDF-raster-1.0, scritto tra il dizionario trailer e la parola chiave startxref (ISO 23504-1 §5). È una peculiarità di PDF/R — gli altri standard PDF/x si identificano invece tramite voci XMP e del dizionario InfoL'output resta byte-identico al risultato del SaveAs base fino alla
fine del PDF originale; viene appeso solo l'aggiornamento incrementale
(e il catalogo / Info della sorgente vengono sostituiti con versioni ridotte
tramite riscrittura a parità di numero d'oggetto). I due overload
differiscono solo nel modo in cui la configurazione viene passata: la forma
con solo nome file usa TPdfRSaveOptions.Default con
auto-popolamento dei quattro campi Info e di DocumentId da
FPDF_GetMetaText / FPDF_GetFileIdentifier
Restituisce True in caso di successo
[0 0 w h], sono ammessi solo i filtri FlateDecode / CCITTFaxDecode (bitonale) / DCTDecode (8-bit grigio o RGB), niente object stream, ogni riferimento indiretto deve avere numero di generazione zero, e ogni pagina è di fatto una singola immagine raster. I documenti generati da PDFium che già rispettano questo schema (es. output di scanner ripassati da PDFium per il repackaging) funzionano bene; i PDF generici ricchi di contenuti tipicamente noTPdfRSaveOptions.StripCatalogOptionalEntries e StripInfoOptionalEntries valgono True per predefinito; impostale False se vuoi che l'injector conservi tutte le voci della sorgente (l'output allora non rispetterà §6.3 / §6.4.3 ma la marcatura di versione e l'XMP vengono comunque applicate)%PDF-2.0 e crittografia AES. I PDF generati da PDFium usano intestazione 1.x, quindi l'output crittografato non è un candidato PDF/R-1 senza un ulteriore risalvataggio
// Simple PDF/R-1 output; only meaningful when the source PDF is
// already a raster scan (one image per page, allowed filters only).
if Pdf1.SaveAsPdfR('C:\Scan.pdfr.pdf') then
ShowMessage('Saved with PDF/R-1 markers');
// Validate to see whether structural rules are also satisfied
Pdf1.FileName := 'C:\Scan.pdfr.pdf';
Pdf1.Active := True;
if Pdf1.ValidatePdfR.IsCompliant then
ShowMessage('PDF/R-1 conformant');