Metoden THotPDF.OptimizeLoadedStreams
Skriver om valda inlästa strömfamiljer som Flate endast när ersättningen är mindre med den begärda tröskeln
Deklaration
function OptimizeLoadedStreams(
FilterFamilies: THPDFLoadedStreamFilterFamilies;
MinimumSavingsBytes: Int64;
out AInfo: THPDFLoadedStreamOptimizationInfo): Integer;
Unit
HPDFDoc
Parametrar
| Namn | Syfte |
|---|---|
FilterFamilies | Väljer ofiltrerade samt Flate-, LZW-, ASCII85-, ASCIIHex- och RunLength-kandidater |
MinimumSavingsBytes | Positiv minsta byte-reduktion som krävs innan en kandidat ersätter sin källström |
AInfo | Tar emot totaler för skannade, kandidat-, omskrivna, stöds-inte-, misslyckade-, före-, efter- och sparade byte |
Returvärde
Returnerar antalet strömnyttolaster som ersatts i den inlästa objektgrafen
Användningsanteckningar
CompressionLevelväljer zlib-hastighet och -förhållande, medanclNonegör passet till en no-op- Avkodade och komprimerade kandidater spiller till ägda temporärfiler efter
LoadedStreamMemoryThreshold, vilket håller minnet för stora dokument bundet - Den ursprungliga nyttolasten och ordlistan förblir oförändrade efter avkningsfel eller otillräckliga besparingar
- Strömmar med
/DecodeParmshoppas över så att prediktor- och icke-standard-LZW-semantik inte kan ändras av misstag - Multifilterkedjor är giltiga endast när varje familj är vald och stöds
- Anropa
SaveLoadedDocumentefter passet för att bevara antagna nyttolaster
Typer och diagnostik
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;
Exempel
Families := [lsffUnfiltered, lsffFlate, lsffLZW];
Count := PDF.OptimizeLoadedStreams(Families, 16, Info);
if Count > 0 then
PDF.SaveLoadedDocument('optimized.pdf');