Resource- en beeldoptimalisatie
HotPDF kan de grootte van geladen documenten verkleinen zonder de graphics-state-semantiek van pagina's te veranderen of overgeërfde resources en annotatie-appearance te breken
Consolidatie van inhoud en resources
Herhaalde inline afbeeldingen kunnen gedeelde image-XObjects worden zodra de drempels voor voorkomens en payload zijn gehaald
Ongebruikte paginarezourcenaamworden conservatief verwijderd na het scannen van pagina-inhoud, geneste Form XObjects en annotatie-appearance-streams
Compatibele pagina-contentstreams worden gedecodeerd, met veilige tokengrenzen samengevoegd en genormaliseerd naar één Flate-stream
Form XObjects en ingebedde fonts worden gededupliceerd op basis van canonieke gedecodeerde inhoud en recursief canonieke resourcegrafen, waarbij compatibele fontsubset-prefixen tijdens de vergelijking worden genormaliseerd
Subsetting van geladen fonts
SubsetLoadedFonts volgt karaktercodes door pagina-inhoud, geneste Form XObjects en annotatie-appearance-streams, lost elke code op via de PDF-fontencoding en CID-mapping en behoudt daarna alleen bereikbare glyph-programma's
Fontwoordenlijsten, CID-maps, breedtes en ToUnicode-data behouden hun bestaande identificatoren, omdat subsetting van TrueType, CFF en Type 1 glyph-ID's of glyphnamen bewaart; gedeelde ingebedde programma's aggregeren het gebruik van elke compatibele fontwoordenlijst vóór één herschrijving
TrueType-composiet- en COLR v0/v1-outlineafhankelijkheden worden recursief gesloten, terwijl kleur-, bitmap-, variatie- en shapingtabellen intact blijven; Type 1 PFB, gesplitste binaire en hex PFA-programma's behouden gebruikte CharStrings en vervangen ongebruikte invoeren door geldige endchar-programma's van gelijke lengte
De operatie slaat een heel fontprogramma over wanneer één gebruikte code niet kan worden gemapped, kiest alleen een kleinere rauwe of Flate-kandidaat en weigert standaard ondertekende documenten, zodat aanroepers expliciet moeten instemmen met handtekeninginvalidatie
Image policies
JPEG-hercompressie kiest geschikte kleurruimten, uitvoerkwaliteit en minimale bytebesparing
JPEG 2000-optimalisatie ondersteunt lossless en visueel lossless profielen, optionele tiles en alle vijf progression orders via een expliciet niet-uitgeschakeld profiel
Visuele-kosten-hercompressie evalueert begrensde JPEG- of JPEG 2000-kwaliteitstesten tegen de gedecodeerde bron, wijst kandidaten buiten de grenzen voor perceptuele fout of minimale besparing af en kiest de laagste gewogen score voor visuele fout en bytekosten met deterministische tie-breaking
JBIG2-globale data wordt alleen gedeeld wanneer de exacte gedecodeerde bytes van het globale segment overeenkomen onder jbspExactGlobalsOnly
Effective-DPI-downsampling volgt pagina- en geneste Form-matrices, decodeert kleurbeheerde bronpixels en resamplert softmasks samen met hun eigenaar-beelden
Bij het herschrijven van beelden worden ondersteunde ICCBased-, CalGray- en CalRGB-invoeren naar gekalibreerd RGB geconverteerd, terwijl niet-ondersteunde gekalibreerde invoeren onaangeroerd blijven in plaats van naar proces-RGB te worden geconverteerd
DownsampleLoadedImages verkleint ondersteunde 8-bit rauwe, Flate-, LZW-, ASCII- en RunLength-Separation- of DeviceN-beelden direct in componentruimte, met behoud van de exacte kleurruimtegraaf, tinttransformatie, kleurstoffen, /Decode-bereiken en overprint-semantiek
DCT-, JPX-, JBIG2- en CCITT-spotbeelden blijven ongewijzigd wanneer hun codec de originele plaat-samples niet kan blootgeven
Gebruik kleurherschrijving van geladen pagina's wanneer de gevraagde uitvoer een uniforme Gray-, RGB- of CMYK-procesruimte is over vectorverf, beelden, patronen, shadings, transparantie en ICC-resources heen
Adaptieve objectstreams
Objectstream-packing kan ledengrootte, doelcontainerbytes en ledenaantal begrenzen, met behoud van objectnummer-localiteit en exclusie van vuile objecten die waarschijnlijk opnieuw veranderen
Adaptieve packing aanzetten vraagt ook de vereiste PDF-versie, xref-stream en volledige herschrijving aan
Primaire API's
THotPDF.ExternalizeRepeatedInlineImagesTHotPDF.RemoveUnusedLoadedPageResourcesTHotPDF.CoalesceLoadedPageContentStreamsTHotPDF.DeduplicateLoadedFormXObjectsTHotPDF.DeduplicateLoadedEmbeddedFontsTHotPDF.SubsetLoadedFontsTHotPDF.RecompressLoadedJPEGImagesTHotPDF.OptimizeLoadedJPEG2000ImagesTHotPDF.OptimizeLoadedImagesByVisualCostTHotPDF.ShareLoadedJBIG2GlobalsTHotPDF.DownsampleLoadedImagesTHotPDF.RewriteLoadedPageColorsTHotPDF.ConfigureAdaptiveObjectStreamPacking