THotPDF.OptimizeLoadedStreams metodas

Perrašo pasirinktas įkeltų srautų šeimas kaip Flate tik tada, kai pakaitas yra mažesnis už prašytą slenkstį

Deklaracija

function OptimizeLoadedStreams(
  FilterFamilies: THPDFLoadedStreamFilterFamilies;
  MinimumSavingsBytes: Int64;
  out AInfo: THPDFLoadedStreamOptimizationInfo): Integer; overload;

function OptimizeLoadedStreams(
  FilterFamilies: THPDFLoadedStreamFilterFamilies;
  MinimumSavingsBytes: Int64;
  RecompressionMode: THPDFFlateRecompressionMode;
  out AInfo: THPDFLoadedStreamOptimizationInfo): Integer; overload;

Modulis

HPDFDoc

Parametrai

PavadinimasPaskirtis
FilterFamiliesPasirenka nefiltruotus, Flate, LZW, ASCII85, ASCIIHex ir RunLength kandidatus
MinimumSavingsBytesTeigiamas minimalus baitų sumažinimas, reikalingas prieš kandidatui pakeičiant jo šaltinio srautą
RecompressionModePasirenka standartinį vienos eigos kelią arba deterministinį keturių strategijų didelio santykio Flate pasirinkimą
AInfoPriima perskaitytų, kandidatų, perrašytų, nepalaikomų, nesėkmingų, prieš ir po bei sutaupytų baitų sumas

Grąžinama reikšmė

Grąžina srautų turinių, pakeistų įkeltame objektų grafe, skaičių

Naudojimo pastabos

Tipai ir diagnostika

THPDFLoadedStreamFilterFamily = (lsffUnfiltered, lsffFlate, lsffLZW,
  lsffASCII85, lsffASCIIHex, lsffRunLength);
THPDFLoadedStreamFilterFamilies = set of THPDFLoadedStreamFilterFamily;

THPDFLoadedStreamOptimizationInfo = record
  ScannedStreamCount: Integer;
  CandidateStreamCount: Integer;
  RewrittenStreamCount: Integer;
  UnsupportedStreamCount: Integer;
  DecodeFailureCount: Integer;
  BytesBefore: Int64;
  BytesAfter: Int64;
  BytesSaved: Int64;
  FilterStatistics: THPDFLoadedStreamFilterStatistics;
  RecompressionMode: THPDFFlateRecompressionMode;
  CompressionTrialCount: Integer;
end;

FilterStatistics įrašo prieš optimizavimą esantį srautų skaičių, užkoduotus baitus ir kiekvienos šeimos stadijos priskyrimą nepriversdama papildomos iššifravimo eigos

Pavyzdys

Families := [lsffUnfiltered, lsffFlate, lsffLZW];
Count := PDF.OptimizeLoadedStreams(Families, 16, frmHighRatio, Info);
if Count > 0 then
  PDF.SaveLoadedDocument('optimized.pdf');

Susijusios API