function SaveAsPdfR(const FileName: string): Boolean; overload;
function SaveAsPdfR(const FileName: string; const Options: TPdfRSaveOptions): Boolean; overload;
SaveAsPdfR executa primeiro o SaveAs regular e depois sobrepõe uma atualização incremental aos bytes salvos que anexa os marcadores de formato de arquivo PDF/R-1. O PDF/R-1 (ISO 23504-1:2020) é o subconjunto estrito de PDF para transporte de imagens raster usado pelo TWAIN Working Group em fluxos de trabalho de documentos digitalizados; carrega um buffer raster de tamanho fixo por página, suporta apenas imagens bitonais / em tons de cinza / RGB e compressão FlateDecode / CCITTFaxDecode / DCTDecode
O pós-processamento injeta cinco classes de bytes no fluxo salvo:
%PDF-raster-1.0, gravado entre o dicionário do trailer e a palavra-chave startxref (ISO 23504-1 §5). Isso é exclusivo do PDF/R — os outros padrões PDF/x se identificam por meio de entradas XMP e do dicionário InfoA saída permanece byte idêntica ao resultado do SaveAs base até o
fim do PDF original; apenas a atualização incremental é anexada
(e o catálogo / Info de origem são substituídos por versões
reduzidas via reescrita com o mesmo número de objeto). As duas
sobrecargas diferem apenas em como a configuração é passada: a
forma somente com nome de arquivo usa
TPdfRSaveOptions.Default com preenchimento automático
dos quatro campos de Info e do DocumentId a partir de
FPDF_GetMetaText / FPDF_GetFileIdentifier
Retorna True em caso de sucesso
[0 0 w h], apenas os filtros FlateDecode / CCITTFaxDecode (bitonal) / DCTDecode (cinza de 8 bits ou RGB) são permitidos, sem object streams, toda referência indireta deve ter número de geração zero e cada página é essencialmente uma única imagem raster. Documentos gerados pelo PDFium que já correspondem a esse padrão (por exemplo, saída de scanner passada pelo PDFium para reempacotamento) funcionam bem; PDFs arbitrários ricos em conteúdo tipicamente nãoTPdfRSaveOptions.StripCatalogOptionalEntries e StripInfoOptionalEntries têm padrão True; defina-os como False se quiser que o injetor preserve todas as entradas de origem (a saída então não atenderá ao §6.3 / §6.4.3, mas o marcador de versão e o XMP continuam anexados)%PDF-2.0 e criptografia AES. PDFs gerados pelo PDFium usam um cabeçalho 1.x, de modo que a saída criptografada não é candidata a PDF/R-1 sem um novo salvamento adicional
// 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');