PDFium Component Docs

SaveAsFlateRecompressed Metoda

Component: TPdf  ·  Unit: PDFium
Przepisuje dokument i ponownie koduje kwalifikujące się strumienie FlateDecode przy maksymalnej kompresji, zastępując strumień tylko wtedy, gdy zmierzona oszczędność bajtów przekracza próg podany przez wywołującego

Syntax

function SaveAsFlateRecompressed(Stream: TStream; const Options: TPdfFlateRecompressOptions; out Report: TPdfFlateRecompressReport; AllowSignedDocument: Boolean = False): Boolean;

function SaveAsFlateRecompressed(const FileName: string; const Options: TPdfFlateRecompressOptions; out Report: TPdfFlateRecompressReport; AllowSignedDocument: Boolean = False): Boolean;

Description

PDFium najpierw zapisuje nieprzyrostową kopię bieżącego dokumentu w pamięci, a następnie otoczka wykonuje pełne przejście osiągalności po dokumencie dokładnie tak jak SaveAsReachable

Każdy osiągalny strumień FlateDecode jest dekodowany funkcją PdfInflate i ponownie kodowany funkcją DeflateCompress przy maksymalnej kompresji; zastępowane są tylko strumienie, których zmierzona oszczędność przekracza zarówno MinSavingBytes, jak i MinSavingRatio

Numery obiektów i generacje pozostają stabilne, więc zmieniają się tylko ponownie skompresowane ładunki strumieni i ich bezpośrednie wartości /Length; każde zachowane odwołanie krzyżowe pozostaje ważne bez przenumerowania

Wynikiem jest pojedyncza klasyczna rewizja, a przebudowany trailer przenosi dalej /Root, /Info i /ID

Policies and limits

Example

Options.MinSavingBytes:= 64;
Options.MinSavingRatio:= 0.1;
Pdf.SaveAsFlateRecompressed('recompressed.pdf', Options, Report);
WriteLn('recompressed ', Report.RecompressedCount, ' streams');

See Also

SaveAsReachable, SaveAsDeduplicated, SaveAs