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 |
|---|---|
FilterFamilies | Vybírá nefiltrované, Flate, LZW, ASCII85, ASCIIHex a RunLength kandidáty |
MinimumSavingsBytes | Kladné minimální snížení bajtů vyžadované dříve, než kandidát nahradí svůj zdrojový proud |
AInfo | Př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í
CompressionLevelvybírá rychlost a poměr zlib, zatímcoclNonez průchodu dělá no-op- Dekódovaní a komprimovaní kandidáti se přelévají do vlastních dočasných souborů po dosažení
LoadedStreamMemoryThreshold, čímž udržují paměť velkých dokumentů ohraničenou - Původní payload a slovník zůstávají nezměněny po selhání dekódování nebo nedostatečných úsporách
- Proudy s
/DecodeParmsjsou přeskočeny, takže sémantika prediktoru a nestandardního LZW nemůže být omylem změněna - Vícefiltrační řetězce jsou způsobilé jen tehdy, když je vybrána a podporována každá rodina
- Volejte
SaveLoadedDocumentpo průchodu pro persistenci přijatých payloadů
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');