THotPDF.OptimizeLoadedStreams-metode
Omskriver valgte innlaste strøm-familier som Flate kun når erstatningen er mindre med den forespurte terskelen
Deklarasjon
function OptimizeLoadedStreams(
FilterFamilies: THPDFLoadedStreamFilterFamilies;
MinimumSavingsBytes: Int64;
out AInfo: THPDFLoadedStreamOptimizationInfo): Integer;
Enhet
HPDFDoc
Parametere
| Navn | Formål |
|---|---|
FilterFamilies | Velger ufiltrerte, Flate-, LZW-, ASCII85-, ASCIIHex- og RunLength-kandidater |
MinimumSavingsBytes | Positiv minimum byte-reduksjon kreves før en kandidat erstatter sin kildestrøm |
AInfo | Mottar skannede, kandidat-, omskrevne, ikke-støttede, feilede, før-, etter- og spart-byte-totaler |
Returverdi
Returnerer antall strøm-nyttelaster erstattet i den innlaste objektgrafen
Bruksnotater
CompressionLevelvelger zlib-hastighet og -rate, mensclNonegjør passeringen til en no-op- Dekodete og komprimerte kandidater spiller over til eide midlertidige filer etter
LoadedStreamMemoryThreshold, noe som holder store-dokument-minne avgrenset - Den opprinnelige nyttelasten og ordboken forblir uendret etter dekodingsfeil eller utilstrekkelig besparelse
- Strømmer med
/DecodeParmshoppes over slik at prediktor- og ikke-standard LZW-semantikk ikke kan endres ved et uhell - Multi-filter-kjeder er kvalifiserte kun når hver familie er valgt og støttet
- Kall
SaveLoadedDocumentetter passeringen for å lagre adopterte nyttelaster
Typer og diagnostikk
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;
Eksempel
Families := [lsffUnfiltered, lsffFlate, lsffLZW];
Count := PDF.OptimizeLoadedStreams(Families, 16, Info);
if Count > 0 then
PDF.SaveLoadedDocument('optimized.pdf');