THotPDF.OptimizeLoadedStreams metódus

A kiválasztott betöltött adatfolyam-családokat csak akkor írja át Flate-ként, ha a csere a kért küszöbértékkel kisebb

Deklaráció

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

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

Egység

HPDFDoc

Paraméterek

NévCél
FilterFamiliesSzűretlen, Flate, LZW, ASCII85, ASCIIHex és RunLength jelölteket választ ki
MinimumSavingsBytesPozitív minimális bájt-csökkenés, amely egy jelölt forrás-adatfolyam helyettesítése előtt szükséges
RecompressionModeA normál egylépéses útvonalat vagy a determinisztikus négy-stratégiás magas-arányú Flate kiválasztást választja
AInfoVizsgált, jelölt, újraírt, nem támogatott, hibás, előtti, utáni és megtakarított-bájt összegeket fogad

Visszatérési érték

Visszaadja a betöltött objektum-gráfban helyettesített adatfolyam-hasznos adatok számát

Használati megjegyzések

Típusok és diagnosztika

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;

A FilterStatistics rögzíti az optimalizálás előtti adatfolyam-számot, kódolt bájtokat és családonkénti fázis-attribúciót további dekódolási futás kényszerítése nélkül

Példa

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

Kapcsolódó API-k