THotPDF.OptimizeLoadedStreams Method
Prepisuje izabrane familije učitanog toka kao Flate samo kada je zamena manja za traženi prag
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;
Jedinica
HPDFDoc
Parametri
| Ime | Namena |
|---|---|
FilterFamilies | Bira nefiltrirane, Flate, LZW, ASCII85, ASCIIHex i RunLength kandidate |
MinimumSavingsBytes | Pozitivna minimalna redukcija bajtova potrebna pre nego što kandidat zameni svoj izvorni tok |
RecompressionMode | Bira standardni put jednog prolaza ili deterministički izbor visoko-odnosnog Flate-a sa četiri strategije |
AInfo | Prima ukupne brojeve skeniranih, kandidata, prepisanih, nepodržanih, neuspešnih, pre, posle i sačuvanih bajtova |
Povratna vrednost
Vraća broj sadržaja toka zamenjenih u učitanom grafu objekata
Napomene o upotrebi
CompressionLevelbira zlib brzinu i odnos, dokclNonečini prolaz ne-operacijomfrmHighRatioproba strategije maksimalne kompresije default, filtered, run-length i Huffman-only i zadržava najmanji standardno-kompatibilan tok- Dekodirani i kompresovani kandidati prelaze u privremene fajlove u vlasništvu nakon
LoadedStreamMemoryThreshold, držeći memoriju velikih dokumenata ograničenom - Originalni sadržaj i rečnik ostaju nepromenjeni nakon neuspeha dekodiranja ili nedovoljnih ušteda
- Tokovi sa
/DecodeParmsse preskaču tako da semantika prediktora i ne-podrazumevanog LZW-a ne mogu slučajno da se promene - Lanci sa više filtera su podobni samo kada je svaka familija izabrana i podržana
- Pozovite
SaveLoadedDocumentnakon prolaza da usvojite sadržaje
Tipovi i dijagnostika
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 beleži broj tokova pre optimizacije, kodirane bajtove i atribuciju faze po-familiji bez prisiljavanja dodatnog prolaza dekodiranja
Primer
Families := [lsffUnfiltered, lsffFlate, lsffLZW];
Count := PDF.OptimizeLoadedStreams(Families, 16, frmHighRatio, Info);
if Count > 0 then
PDF.SaveLoadedDocument('optimized.pdf');