function SaveAsPdfR(const FileName: string): Boolean; overload;
function SaveAsPdfR(const FileName: string; const Options: TPdfRSaveOptions): Boolean; overload;
SaveAsPdfR wykonuje najpierw zwykłe SaveAs, a następnie nakłada na zapisane bajty przyrostową aktualizację, która dołącza znaczniki formatu pliku PDF/R-1. PDF/R-1 (ISO 23504-1:2020) to ścisły podzbiór PDF do transportu obrazów rastrowych, używany przez TWAIN Working Group w przepływach pracy dla dokumentów skanowanych; przenosi bufor rastrowy o stałym rozmiarze na stronę, obsługuje wyłącznie obrazy bitonalne / w skali szarości / RGB oraz kompresję FlateDecode / CCITTFaxDecode / DCTDecode
Postprocessing wstrzykuje do zapisanego strumienia pięć klas bajtów:
%PDF-raster-1.0, zapisany między słownikiem trailera a słowem kluczowym startxref (ISO 23504-1 §5). To rzecz unikatowa dla PDF/R — pozostałe standardy PDF/x identyfikują się zamiast tego przez wpisy XMP i słownika InfoWyjście pozostaje identyczne bajt po bajcie z wynikiem bazowego
SaveAs aż do końca pierwotnego PDF; doklejana jest jedynie przyrostowa
aktualizacja (a źródłowy katalog / Info są zastępowane wersjami
okrojonymi przez przepisanie z tym samym numerem obiektu). Dwa
przeciążenia różnią się jedynie sposobem przekazania konfiguracji:
forma wyłącznie z nazwą pliku używa TPdfRSaveOptions.Default
z automatycznym wypełnieniem czterech pól Info oraz DocumentId
z FPDF_GetMetaText / FPDF_GetFileIdentifier
Zwraca True w przypadku powodzenia
[0 0 w h], dozwolone są tylko filtry FlateDecode / CCITTFaxDecode (bitonalny) / DCTDecode (8-bitowa skala szarości lub RGB), bez strumieni obiektów, każde odwołanie pośrednie musi mieć numer generacji zero, a każda strana to w istocie pojedynczy obraz rastrowy. Dokumenty wygenerowane przez PDFium, które już pasują do tego wzorca (np. wyjście skanera przepuszczone przez PDFium w celu przepakowania), działają dobrze; dowolne PDF-y bogate w zawartość zazwyczaj nieTPdfRSaveOptions.StripCatalogOptionalEntries i StripInfoOptionalEntries domyślnie mają wartość True; ustaw je na False, jeśli chcesz, aby wstrzykiwacz zachował wszystkie wpisy źródłowe (wyjście wtedy nie będzie spełniać §6.3 / §6.4.3, ale znacznik wersji i XMP nadal zostaną dołączone)%PDF-2.0 i szyfrowaniem AES. PDF-y generowane przez PDFium używają nagłówka 1.x, więc zaszyfrowane wyjście nie jest kandydatem PDF/R-1 bez ponownego zapisu
// 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');