function SaveAsPdfR(const FileName: string): Boolean; overload;
function SaveAsPdfR(const FileName: string; const Options: TPdfRSaveOptions): Boolean; overload;
SaveAsPdfR utför först den vanliga SaveAs och lägger sedan en inkrementell uppdatering ovanpå de sparade byten som bifogar PDF/R-1- filformatsmarkörer. PDF/R-1 (ISO 23504-1:2020) är den strikta delmängden av PDF för överföring av rasterbilder som används av TWAIN Working Group för arbetsflöden med skannade dokument; den har en rasterbuffer med fast storlek per sida och stöder endast bitonala / gråskala / RGB-bilder samt komprimeringen FlateDecode / CCITTFaxDecode / DCTDecode
Efterbearbetningen injicerar fem klasser av byte i den sparade strömmen:
%PDF-raster-1.0, skriven mellan trailer-dictionaryn och nyckelordet startxref (ISO 23504-1 §5). Den är unik för PDF/R — de övriga PDF/x-standarderna identifierar sig genom XMP och Info-dictionary-poster i ställetUtmatningen förblir byte-identisk med basresultatet från SaveAs fram till
slutet på den ursprungliga PDF-filen; endast den inkrementella uppdateringen
läggs till (och källans katalog / Info ersätts med nedbantade versioner
via omskrivning med samma objektnummer). De två överlagringarna
skiljer sig bara i hur konfigurationen skickas in: formen med enbart
filnamn använder TPdfRSaveOptions.Default med automatisk
ifyllning av de fyra Info-fälten och DocumentId från
FPDF_GetMetaText / FPDF_GetFileIdentifier
Returnerar True vid lyckat resultat
[0 0 w h], endast filtren FlateDecode / CCITTFaxDecode (bitonal) / DCTDecode (8-bit gråskala eller RGB) tillåts, inga objektströmmar, varje indirekt referens måste ha generationsnummer noll och varje sida är i praktiken en enda rasterbild. PDFium-genererade dokument som redan följer det här mönstret (till exempel skannerutmatning som passerat PDFium för ompaketering) fungerar bra; innehållsrika PDF-filer i allmänhet gör det vanligtvis inteTPdfRSaveOptions.StripCatalogOptionalEntries och StripInfoOptionalEntries har standardvärdet True; sätt dem till False om du vill att injektorn ska bevara alla källposter (utmatningen uppfyller då inte §6.3 / §6.4.3 men versionsmarkören och XMP bifogas ändå)%PDF-2.0-huvud och AES-kryptering. PDFium-genererade PDF-filer använder ett 1.x-huvud, så krypterad utmatning är inte en PDF/R-1-kandidat utan ytterligare omsparning
// 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');