THotPDF.OptimizeLoadedStreams-methode
Herschrijft geselecteerde geladen stroomfamilies als Flate alleen wanneer de vervanging kleiner is met de gevraagde drempel
Declaratie
function OptimizeLoadedStreams(
FilterFamilies: THPDFLoadedStreamFilterFamilies;
MinimumSavingsBytes: Int64;
out AInfo: THPDFLoadedStreamOptimizationInfo): Integer;
Unit
HPDFDoc
Parameters
| Naam | Doel |
|---|---|
FilterFamilies | Selecteert ongefilterde, Flate-, LZW-, ASCII85-, ASCIIHex- en RunLength-kandidaten |
MinimumSavingsBytes | Positieve minimum byte-reductie vereist voordat een kandidaat zijn bronstroom vervangt |
AInfo | Ontvangt gescande, kandidaat-, herschreven, niet-ondersteunde, gefaalde, voor-, na- en bespaarde-byte-totalen |
Retourwaarde
Retourneert het aantal stroompayloads vervangen in de geladen objectgrafiek
Gebruiksaanwijzing
CompressionLevelselecteert de zlib-snelheid en -verhouding, terwijlclNonede pass een no-op maakt- Gedecodeerde en gecomprimeerde kandidaten spillen naar eigendomstijdelijke bestanden na
LoadedStreamMemoryThreshold, wat geheugen van grote documenten begrensd houdt - De oorspronkelijke payload en woordenboek blijven ongewijzigd na decodeerfout of onvoldoende besparingen
- Stromen met
/DecodeParmsworden overgeslagen zodat predictor- en niet-standaard-LZW-semantiek niet per ongeluk kan worden gewijzigd - Multi-filter-ketens komen alleen in aanmerking wanneer elke familie is geselecteerd en ondersteund
- Roep
SaveLoadedDocumentaan na de pass om overgenomen payloads te behouden
Types en diagnostiek
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;
Voorbeeld
Families := [lsffUnfiltered, lsffFlate, lsffLZW];
Count := PDF.OptimizeLoadedStreams(Families, 16, Info);
if Count > 0 then
PDF.SaveLoadedDocument('optimized.pdf');