Metoda THotPDF.OptimizeLoadedStreams

Přepisuje vybrané rodiny načtených proudů jako Flate jen tehdy, když je náhrada menší o požadovaný práh

Deklarace

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

Unit

HPDFDoc

Parametry

NázevÚčel
FilterFamiliesVybírá nefiltrované, Flate, LZW, ASCII85, ASCIIHex a RunLength kandidáty
MinimumSavingsBytesKladné minimální snížení bajtů vyžadované dříve, než kandidát nahradí svůj zdrojový proud
AInfoPřijímá celky naskenovaných, kandidátních, přepsaných, nepodporovaných, selhaných, před, po a ušetřených bajtů

Návratová hodnota

Vrací počet payloadů proudů nahrazených v grafu načtených objektů

Poznámky k použití

Typy a 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;
end;

Příklad

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

Související API