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év | Cél |
|---|---|
FilterFamilies | Szűretlen, Flate, LZW, ASCII85, ASCIIHex és RunLength jelölteket választ ki |
MinimumSavingsBytes | Pozitív minimális bájt-csökkenés, amely egy jelölt forrás-adatfolyam helyettesítése előtt szükséges |
RecompressionMode | A normál egylépéses útvonalat vagy a determinisztikus négy-stratégiás magas-arányú Flate kiválasztást választja |
AInfo | Vizsgá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
- A
CompressionLevela zlib sebességet és arányt választja, míg aclNonea futást üres műveletté teszi - A
frmHighRatioalapértelmezett, szűrt, run-length és csak-Huffman maximális-tömörítési stratégiákat próbál ki, és megtartja a legkisebb szabvány-kompatibilis adatfolyamot - A dekódolt és tömörített jelöltek a
LoadedStreamMemoryThresholdután saját ideiglenes fájlokba ömlenek ki, így a nagydokumentum-memória korlátozott marad - Az eredeti hasznos adat és szótár változatlan marad dekódolási hiba vagy elégtelen megtakarítás után
- A
/DecodeParms-szel rendelkező adatfolyamok átugrása kerül, hogy a prediktor és a nem-alapértelmezett LZW szemantika véletlenül ne módosulhasson - A többszörös-szűrő láncok csak akkor jogosultak, ha minden család ki van választva és támogatott
- Hívja a
SaveLoadedDocument-et a futás után az elfogadott hasznos adatok tartósításához
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');