THotPDF.OptimizeLoadedStreams-metoden
Omskriver udvalgte indlæste strømfamilier som Flate kun, når erstatningen er mindre med den anmodede tærskel
Deklaration
function OptimizeLoadedStreams(
FilterFamilies: THPDFLoadedStreamFilterFamilies;
MinimumSavingsBytes: Int64;
out AInfo: THPDFLoadedStreamOptimizationInfo): Integer;
Enhed
HPDFDoc
Parametre
| Navn | Formål |
|---|---|
FilterFamilies | Vælger ufiltrerede, Flate-, LZW-, ASCII85-, ASCIIHex- og RunLength-kandidater |
MinimumSavingsBytes | Positiv minimum byte-reduktion, der kræves, før en kandidat erstatter sin kildestrøm |
AInfo | Modtager scannede, kandidat-, omskrevne, ikke-understøttede, fejlede, før-, efter- og sparede-byte-totaler |
Returværdi
Returnerer antallet af strøm-payloads, der erstattes i den indlæste objektgraf
Brugsnoter
CompressionLevelvælger zlib-hastighed og -forhold, mensclNonegør gennemløbet til en no-op- Afkodede og komprimerede kandidater lækker til ejede midlertidige filer efter
LoadedStreamMemoryThreshold, hvilket holder hukommelsen for store dokumenter afgrænset - Den oprindelige payload og ordbog forbliver uændrede efter afkodningsfejl eller utilstrækkelig besparelse
- Strømme med
/DecodeParmsspringes over, så prediktor- og ikke-standard-LZW-semantik ikke ved et uheld kan ændres - Multifilter-kæder er kun berettigede, når hver familie er valgt og understøttet
- Kald
SaveLoadedDocumentefter gennemløbet for at persistere adopterede payloads
Typer og 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;
Eksempel
Families := [lsffUnfiltered, lsffFlate, lsffLZW];
Count := PDF.OptimizeLoadedStreams(Families, 16, Info);
if Count > 0 then
PDF.SaveLoadedDocument('optimized.pdf');