Metoda THotPDF.OptimizeLoadedStreams

Rescrie familiile selectate de fluxuri încărcate ca Flate doar atunci când înlocuirea este mai mică cu pragul cerut

Declarație

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

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

Unitate

HPDFDoc

Parametri

NumeScop
FilterFamiliesSelectează candidați nefiltrați, Flate, LZW, ASCII85, ASCIIHex și RunLength
MinimumSavingsBytesReducere minimă pozitivă de octeți cerută înainte ca un candidat să-și înlocuiască fluxul sursă
RecompressionModeSelectează calea standard cu o singură trecere sau selecția Flate deterministă cu patru strategii de raport ridicat
AInfoPrimește totalurile scanate, candidate, rescrise, nesuportate, eșuate, înainte, după și octeți economisiți

Valoare returnată

Returnează numărul de încărcături de flux înlocuite în graful de obiecte încărcat

Note de utilizare

Tipuri și diagnosticare

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 înregistrează numărul de fluxuri înainte de optimizare, octeții codificați și atribuirea pe familie a etapei fără a forța o trecere suplimentară de decodificare

Exemplu

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

API-uri corelate