Støtte for PDF-filtre

Oversikt

PDF-strømmer og innebygde bilder identifiserer koding gjennom filtrenavn HotPDF arbeider hovedsakelig med følgende filterfamilier når dokumenter genereres eller eksternt innhold avkodes

Vanlige filtre

  • FlateDecode: Hovedkomprimeringsfilter for genererte strømmer og den primære zlib-baserte dekomprimeringsbanen
  • LZWDecode: Støttes for eldre scenarier og kompatibilitet gjennom HPDFLZW.pas
  • DCTDecode: Brukes for vanlige JPEG-bildedata som håndteres av HotPDFs bildeinnlastingsbaner
  • CCITTFaxDecode: Vanlig i monokrome TIFF- og fakslignende bildedata
  • ASCIIHexDecode / ASCII85Decode / RunLengthDecode: Kodinghjelpere eksponert i HPDFTypes.pas (_ASCIIHexEncode, _ASCII85Encode, _RunLengthEncode) siden HotPDF v2.4.0. Nyttig når vilkårlig binært innhold skal pakkes for 7-bit-kanaler eller for eksplisitt PDF 1.7 7.4-rundreise-støtte
  • JBIG2Decode / JPXDecode: Filternavn definert av PDF 1.7 7.4.7 / 7.4.9. HotPDFs medfølgende JBIG2- og JPEG 2000-hjelpere er stubber som rapporterer ikke støttet (returnerer False) til en ekte OpenJPEG / JBIG2-bakende kobles inn. Tidligere bygg returnerte en falsk 100×100-suksess som ga uleselige bilder; dette er nå rettet

Praktiske merknader

  • Ikke alle filtre eksponeres gjennom én generell API; noen nås via dedikerte bilde- eller strømhjelperenheter
  • For generert PDF-innhold forblir THotPDF.Compression den sentrale brukervendte innstillingen
  • Når eksterne data lastes inn, avhenger den aktuelle filtertypen av kildefilformatet og hjelpekassen som brukes
  • Krypterte PDF-er kombinerer disse filtrene med sikkerhetshåndtereren; se CryptKeyLength for støttede AES‑128 (V=4 R=4 / CFM=AESV2) og RC4 (V=1/V=2)-valg
  • Interaktive skjemafelt sendes som Widget-annotasjoner som visningen tegner; se AcroForm-støtte
  • Tekstmarkering-annotasjoner (Highlight, Underline, Squiggly, StrikeOut) og hopp-lenker i dokumentet (GoTo, GoToR, Launch) eksponeres som nye metoder THPDFPage.Add*Annotation / AddGoToLink / AddGoToRLink / AddLaunchLink siden HotPDF v2.6.0
  • DeviceCMYK-utdata er tilgjengelig gjennom THPDFPage.SetCMYKColor / SetCMYKFillColor / SetCMYKStrokeColor; ICC-styrte fargerom registreres med THotPDF.RegisterICCProfile og brukes via SetFillColorSpace / SetStrokeColorSpace + SetFillColor / SetStrokeColor siden HotPDF v2.7.0
  • Sett THotPDF.UseXRefStream til true før lagring for å sende ut én enkelt /Type /XRef-kryssreferansestrøm komprimert med FlateDecode i stedet for den tekstlige sekvensen xref / trailer / startxref (PDF 1.7 7.5.8); tilgjengelig siden HotPDF v2.8.0
  • Sett THotPDF.EnableXMPMetadata til true for å legge en XMP-/Type /Metadata /Subtype /XML-strøm til Catalog (PDF 1.7 14.3.2); bygges automatisk fra Info-diktsfeltene, eller send inn en håndlaget pakke via CustomXMP. Tilgjengelig siden HotPDF v2.9.0
  • PDF-versjonskontroll per metode (siden HotPDF v2.24.0). Hver funksjonsmetode introdusert i v2.4.0+ sjekker RequirePDFVersion før utsending; med StrictVersionLock=false (standard) oppgraderes dokumentets Version stille til minimumsnivået funksjonen krever, og med StrictVersionLock=true avvises kallet slik at den lagrede filen følger den valgte referansespesifikasjonen 1.3 / 1.4 / 1.5 / 1.6 / 1.7 nøye
  • PNG- og TIFF-prediktorkodere for FlateDecode-komprimert bildedata (PDF 1.7 7.4.4.4): _PNGPredictorEncode bruker libpngs heuristikk for minste absolutte differansefilter (Predictor=15), _TIFFPredictor2Encode bruker horisontal differansering (Predictor=2). Tilgjengelig siden HotPDF v2.10.0
  • Innganger for tagget PDF (PDF 1.7 14.7-14.8): THotPDF.Lang fyller /Lang i Catalog, EnableTaggedPDF sender ut /MarkInfo <</Marked true>> og en stubb /StructTreeRoot, og de nye metodene THPDFPage.BeginMarkedContent / BeginMarkedContentMCID / EndMarkedContent skriver BMC / BDC / EMC-operatorene i innholdsstrømmen. Tilgjengelig siden HotPDF v2.11.0
  • Aksiale og radiale gradienter (PDF 1.7 7.10 / 8.7): THotPDF.RegisterAxialGradient / RegisterRadialGradient bygger hele stakken med Function Type 2 / Shading Type 2-3 / Pattern Type 2 og returnerer et stabilt mønsternavn; THPDFPage.SetFillPattern / SetStrokePattern installerer det på siden. Komponentantallet i start- / sluttfargen velger DeviceGray (1) / DeviceRGB (3) / DeviceCMYK (4). Tilgjengelig siden HotPDF v2.13.0; aksiale gradienter med flere stopp via Function Type 3 eksponeres gjennom RegisterMultiStopAxialGradient siden v2.18.0
  • Innebygde bilder (PDF 1.7 8.9.7) via THPDFPage.DrawInlineImage; rå byte pakkes automatisk med ASCIIHex når ingen Filter er oppgitt, slik at innholdsstrømmen forblir 7-bit-ren. Tilgjengelig siden HotPDF v2.18.0
  • OutputIntents (PDF 1.7 14.11) via THotPDF.AddOutputIntent; hvert kall legger en /Type /OutputIntent-ordbok til Catalog med valgfri /DestOutputProfile som peker til en registrert ICC-profil. Tilgjengelig siden HotPDF v2.18.0
  • Automatisk generering av utseendestrøm for AcroForm (PDF 1.7 12.5.5 / 12.7.3.3 / 8.10): sett THotPDF.AutoFormAppearances til true før interaktive skjemafelt legges til, og HotPDF bygger på forhånd en /Subtype /Form-Form XObject for hver widgets /AP /N-oppføring (Yes / Off-underdikter for knapper), fyller AcroForm /DR-standardressursene med indirekte fontordbøker for Helvetica / ZapfDingbats, og setter /NeedAppearances til false slik at viserne respekterer de innebygde strømmene. Tilgjengelig siden HotPDF v2.28.0
  • ViewerPreferences /ViewArea og /ViewClip (PDF 1.4 12.2 tabell 152) eksponeres nå gjennom egenskapene THotPDF.ViewArea / THotPDF.ViewClip (med de tilhørende settmedlemmene vpViewArea / vpViewClip). Begge godtar verdiene i THPDFPageBoundary (MediaBox / CropBox / BleedBox / TrimBox / ArtBox) og fullfører HotPDFs dekning av de fire PDF 1.4-sidegrense-ViewerPreferences. Tilgjengelig siden HotPDF v2.29.0
  • Sideskifter (PDF 1.1 / 1.5 12.4.4): THPDFPage.SetPageTransition skriver en /Trans-ordbok på siden slik at PDF-lesere i /PageMode /FullScreen animerer navigasjonen. PDF 1.1-stiler (Split, Blinds, Box, Wipe, Dissolve, Glitter, R) og PDF 1.5-stiler (Fly, Push, Cover, Uncover, Fade) eksponeres gjennom enumerasjonen THPDFTransitionStyle; tilhørende /Dm, /M og /Di-undervalg er også eksponert. THPDFPage.SetPageDuration skriver /Dur-forsinkelsen for automatisk sidebytte i sekunder. Tilgjengelig siden HotPDF v2.30.0
  • Transparensgruppe på sidenivå (PDF 1.4 11.6.6 / 7.5.5): THPDFPage.SetTransparencyGroup legger ved en /Group-ordbok (/Type /Group /S /Transparency) slik at visere kompositerer alfabærende innhold forutsigbart. Velg et enhetsfargerom gjennom enumerasjonen THPDFGroupColorSpace (DeviceGray / DeviceRGB / DeviceCMYK eller utelat), eller kall THPDFPage.SetTransparencyGroupICC med navnet på en ICC-profil som tidligere er registrert via THotPDF.RegisterICCProfile. Valgfrie /I- og /K-flagg styrer komposisjonsmotoren; THPDFPage.ClearTransparencyGroup fjerner en tidligere lagt oppføring. Tilgjengelig siden HotPDF v2.32.0
  • Inkrementell oppdatering (PDF 1.7 ISO 32000-1 7.5.6): THotPDF.BeginIncrementalUpdate(SourceFile) laster en eksisterende PDF i append-only-modus; påfølgende CreateIndirect*-kall markerer automatisk nye objekter som endret, og THotPDF.MarkDirty(Obj) merker forhåndsinnlastede objekter for ny utsending. THotPDF.SaveIncrementalUpdate(TargetFile) skriver de opprinnelige kildebytene uendret, legger bare til endrede objekter med objektnumrene bevart, sender ut en ny xref-underdel og avslutter med en trailer som har /Prev som peker til forrige xref. Kombiner med den eksisterende kjeden AddSignedSignatureField + PreparePDFForSigning + InsertSignatureHex for å legge til senere signaturfelt i et allerede signert dokument uten å ugyldiggjøre tidligere signaturer (deres /ByteRange-digest forblir gyldige fordi ingen av de opprinnelige bytene endres). Tilgjengelig siden HotPDF v2.35.0
  • Normalisering av innebygd TrueType-fontnavn: HotPDF leser den innebygde TrueType-navnetabellen og justerer /BaseFont, /FontDescriptor /FontName, /FontFamily og nedarvede CID-fontnavn slik at de samsvarer med fontprogrammets PostScript-navn. Dette unngår Adobe Acrobat Font Capture-feil som skyldes avvik mellom PDF-fontordboken og den innebygde TTF-lasten. Tilgjengelig siden HotPDF v2.35.1
  • Underinndeling av TrueType-fonter (PDF 1.7 ISO 32000-1 9.6.4 / 9.8.2): sett THotPDF.EnableFontSubsetting til true før BeginDoc, og HotPDF bygger den innebygde TrueType-lasten på nytt slik at den bare inneholder glyfene dokumentet faktisk bruker. Typiske latinske dokumenter ser omtrent 90 % reduksjon i innebygd fontvekt (1 MB Arial -> rundt 70 KB på én linje med "Hello, world."). Avhengigheter mellom sammensatte glyfer spores rekursivt, GID-nummereringen bevares (så eksisterende Type0 / Identity-H-innholdsstrømmer fortsetter å virke), og den nye /BaseFont får automatisk den spesifiserte seksbokstavs-prefiksen med "+"-suffiks (for eksempel /BaseFont /AAAAAA+ArialMT). Avslått som standard; aktiver ved behov for å beholde full fontinnbygging i redigeringsarbeidsflyter. Tilgjengelig siden HotPDF v2.36.0
  • Underinndeler for Compact Font Format (CFF) (PDF 1.7 ISO 32000-1 9.7.4 / 9.9): ledsager til TrueType-underinndeleren for OpenType-CFF (.otf, sfntVersion OTTO) og Type 1 / Type 1C-fonter. Den eksporterte funksjonen HPDFSubsetCFF(CFFBytes, KeepGlyph) bygger CharStrings INDEX på nytt med utelatte glyfer erstattet av den minimale 1-byte-endchar-stubben, samtidig som GID-nummereringen bevares byte for byte. Tilgjengelig siden HotPDF v2.37.0
  • Innbyggingsbanen for OpenType-CFF (.otf) er koblet inn i StoreFont (PDF 1.6+ 9.7.4 tabell 117). Når den GDI-lastede fontbinæren er en sfnt OTTO-container, underinndeler HotPDF den innebygde 'CFF '-undertabellen gjennom HPDFSubsetOTFContainer, sender ut fontprogrammet via /FontFile3 /Subtype /OpenType og skriver nedarvet fontordbok med /Subtype /CIDFontType0 i stedet for /CIDFontType2. TrueType-fonter fortsetter gjennom den eksisterende banen /FontFile2 + /CIDFontType2 uten at oppførselen endres. Tilgjengelig siden HotPDF v2.38.0
  • Underinndeling av CFF-subrutiner ende til ende (PDF 1.7 9.7.4 §6 / Adobe Tech Note #5177 §3.1): CFF-underinndeleren fjerner nå ubrukte oppføringer fra BÅDE Global Subr INDEX (rett etter String INDEX i CFF-binæren) og Local Subr INDEX (nestet under Private DICT, nådd via Top DICT-operator 18 + Private DICT-operator 19). Én fastpunktslukning følger kjedene callsubr (op 0x0A) OG callgsubr (op 0x1D) transitivt, så en CharString som kaller en Local Subr som kaller en Global Subr som kaller en annen Local Subr, fanges i én iterasjon. Hver ubrukt oppføring erstattes av en 1-byte return-stubb, og INDEX skrives på nytt på stedet med den etterfølgende slakken nullfylt. Denne oppførselen eksponeres gjennom de offentlige hjelperne HPDFSubsetCFF og HPDFSubsetOTFContainer; lavere nivå CFF-skannere forblir interne. Tilgjengelig siden HotPDF v2.39.0
  • CID-nøkkelstyrt CFF-underinndeling (PDF 1.7 ISO 32000-1 9.7.4 / Adobe Tech Note #5176 §18-19): CFF-underinndeleren kjenner nå igjen Top DICT-operatoren ROS (12-30) som markerer en CID-nøkkelstyrt OpenType-CFF-font, og går gjennom FDArray (12-36)-INDEXen av Font DICT-er, der hver har sin egen Private DICT + Local Subr INDEX. FDSelect (12-37)-kartet for glyf til FD bevares byte for byte. Subrutine-lukningsskanningen følger hvert beholdte CharStrings FD-kontekst, slik at en glyf i FD #5 bare markerer Local Subrs i FD #5 - globale subrs forblir delt mellom FD-ene. Hver FDs Local Subr INDEX skrives på nytt på stedet med ubrukte oppføringer komprimert til 1-byte return-stubber. CJK / Indic / arabiske OTF-fonter (Adobe Fan/Gothic/Heiti/Ming/Myungjo/Song Std, Kozuka Pr6N, Source Han Sans osv.) går nå gjennom hele underinndelingsrørledningen i stedet for å bli innebygd som de er. Tilgjengelig siden HotPDF v2.40.0
  • Objektstrømmer (PDF 1.5 ISO 32000-1 7.5.7): sett THotPDF.UseObjectStreams til true i tillegg til UseXRefStream og SaveToStream, så pakkes kvalifiserte indirekte objekter (alt unntatt strømmer, krypteringsordboken og Catalog- og Info-ordbøkene som trailer peker på) inn i én eller flere containerstrømmer /Type /ObjStm. Kryssreferansestrømmen refererer deretter til de pakkede objektene gjennom type-2-oppføringer (felt-2 = hostens ObjStm-objektnummer; felt-3 = oppføringsindeks inne i strømmen). Filstørrelsen kuttes betydelig på PDF-er med mange små ordbøker (fler-siders dokumenter, annotasjoner, AcroForm-widgeter, strukturtre-elementer, Optional Content-lag) - en 30-siders grafikk-kun-smoke krymper fra 14502 til 8488 byte (41,5 % mindre). Nedgraderer stille til false når UseXRefStream er av (type-2-oppføringer kan ikke representeres i den tekstlige xref-tabellen per spesifikasjonen) eller når Version er under PDF 1.5. Tilgjengelig siden HotPDF v2.41.0
  • Soft-maskebilde / SMask (PDF 1.4 ISO 32000-1 8.9.5.4): THotPDF.AddImageWithSMask(Width, Height, RGB, Alpha) sender ut en fargebilde-XObject pluss en 8-bit DeviceGray soft-maskebilde-XObject og kobler /SMask-referansen automatisk, slik at hver piksel kan bære full per-kanal-transparens i stedet for den binære på/av-begrensningen i den gamle /ImageMask-banen. Praktisk overlast THotPDF.AddImageWithSMask32(Bitmap32) henter RGB- og alfaplanene ut av en 32-bit BGRA TBitmap for PNG-med-alpha-innbygging i ett kall. Begge kallene går gjennom RequirePDFVersion(pdf14) slik at streng modus 1.3-utdata forblir i samsvar. Tilgjengelig siden HotPDF v2.42.0
  • Fargelegging av ufarget Tiling Pattern (PDF 1.7 ISO 32000-1 8.6.6.1): THotPDF.RegisterTilingPattern har siden v2.19.0 sendt ut både /PaintType 1 (farget) og /PaintType 2 (ufarget), men den samsvarende operatorsekvensen på siden var bare korrekt for den fargede varianten. Seks nye metoder i THPDFPage - SetFillPatternRGB / SetStrokePatternRGB / SetFillPatternGray / SetStrokePatternGray / SetFillPatternCMYK / SetStrokePatternCMYK - styrer nå den ufargede banen ved å auto-registrere det samsvarende fargetilpasningsrommet [/Pattern /BaseCS] i sidens Resources/ColorSpace-ordbok og sende ut den spesifiserte sekvensen tint_components /Pn scn. Bruk de opprinnelige SetFillPattern / SetStrokePattern for den fargede varianten der flisen har sin egen farge. Tilgjengelig siden HotPDF v2.43.0
  • CIELab-fargerom (PDF 1.3+ ISO 32000-1 8.6.5.3): THotPDF.RegisterLabColorSpace(Xw, Yw, Zw, aMin, aMax, bMin, bMax) bygger en innebygd fargeroms-tabell [/Lab << /WhitePoint /BlackPoint /Range >>], lagrer den under et automatisk generert navn (Lab1, Lab2, ...) og returnerer navnet for bruk med den vanlige pipelinen THPDFPage.SetFillColorSpace / SetStrokeColorSpace + SetFillColor([L, a, b]) / SetStrokeColor([L, a, b]). Bruk en D50-lyskilde [0.9505, 1.0, 1.089] for ICC-utskriftsarbeidsflyter eller en D65-lyskilde [0.95047, 1.0, 1.08883] for sRGB-ekvivalent visning, og mal deretter med L* i [0..100] og a*, b* i det valgte området (vanligvis [-128..127]). Tilgjengelig siden HotPDF v2.44.0
  • Separation-fargerom for spotfarger (PDF 1.3+ ISO 32000-1 8.6.6.4): THotPDF.RegisterSeparation(ColorantName, AlternateCS, TintC1) deklarerer en ettkomponents spotblekk-variant der den ene tint-operatoren i [0..1] driver en lineær Function Type 2 tint-transform bygget internt. Bruk det returnerte navnet (Sep1, Sep2, ...) med den vanlige pipelinen SetFillColorSpace / SetStrokeColorSpace + SetFillColor([tint]) / SetStrokeColor([tint]). AlternateCS godtar DeviceGray, DeviceRGB eller DeviceCMYK; TintC1 leverer alt-CS-komponentene ved tint = 1.0. Pantone og andre blekknavn med mellomrom aksepteres direkte - HotPDF slipper dem til #20 per PDF 1.7 7.3.5 når fargeromsnavnet skrives. Tilgjengelig siden HotPDF v2.45.0
  • AcroForm-utseendestrømmer for flerlinjet og comb-tekst (PDF 1.7 ISO 32000-1 12.7.4.3): når THotPDF.AutoFormAppearances er på, får tekstfelt med Flags som inkluderer ffMultiline en ord-ombrutt /AP /N-Form XObject (Td + T* + /TL-oppstilling, med CR / LF / CRLF-separatorer og avkorting ved synlig radantall). Felt med Flags som inkluderer ffComb sammen med positiv MaxLen renderer hvert tegn i sin egen celle med lik bredde ved hjelp av en absolutt Tm-matrise per glyf. Enlinjeoppsettet fra v2.28.0 bevares byte for byte for felt uten slike flagg. Internasjonale tegn i startverdien faller fortsatt videre til visningsprogrammets /NeedAppearances-rekalkuleringsbane - full generering av utseende med innebygd CID-font er fortsatt fremtidig arbeid. Tilgjengelig siden HotPDF v2.46.0
  • AcroForm /AP Unicode-font (PDF 1.7 ISO 32000-1 12.7.2 + 12.7.4.3): THotPDF.SetFormUnicodeFontDict(LogicalName, FontDict) registrerer en Type 0 / CIDFontType2 + Identity-H-sammensatt font som er levert av kalleren, i AcroForm /DR/Font-standardressursordboken. Når den er registrert, bytter AcroForm-nivåets /DA, hver Tx-widgets /DA og /AP /N-strømmen produsert av AutoFormAppearances for ikke-ASCII Tx-startverdier til det logiske navnet; Form XObjectens /Resources/Font-underdiktsreferanse peker også til den samme indirekte fonten slik at AP er selvstendig uten å være avhengig av /DR-oppløsning ved rendertid. Den tilhørende hjelpfunksjonen THotPDF.CreateIndirectFontDict returnerer en ny tom THPDFDictionaryObject registrert som et indirekte PDF-objekt, slik at kallere kan bygge egne fontordbøker (eller enhver annen ordbok som krever "N G R"-indirekte serialisering) uten å røre interne hjelpere. Send tom LogicalName og nil FontDict for å gå tilbake til v2.46.0-atferden med kun ASCII og /Helv. ASCII Tx-felt fortsetter å bruke /Helv med byte-identisk utdata til v2.46.0 / v2.55.0. Flerlinjet + comb ikke-ASCII /AP og RTL bidi-forming (UAX #9 + arabisk kontekstuell kobling) er fortsatt fremtidig arbeid. Tilgjengelig siden HotPDF v2.56.0; støtte for ikke-ASCII /AP med ffMultiline (per-linje UTF-16BE hex Tj med Td / T* / /TL-oppstilling og CJK-bevisst ordombryting) siden v2.57.0; støtte for ikke-ASCII /AP med ffComb (per-CID celler med lik bredde og absolutt Tm + én-celle Tj per kodepunkt med UTF-16 surrogatparhåndtering) siden v2.58.0; egenskapen THotPDF.FormUnicodeRTL for høyre-til-venstre-retning (reverserer UTF-16-rekkefølgen i /AP Tj hex mens /V beholdes i logisk rekkefølge; kalleren forhåndsformer arabisk til Unicode-presentasjonsformer U+FB50..U+FDFF + U+FE70..U+FEFF; full UAX #9 + automatisk GSUB-forming er ventende) siden v2.59.0
  • AcroForm rich-text Tx-widget (PDF 1.5+ ISO 32000-1 12.7.4.3 + Annex L): THPDFPage.AddRichTextField(FieldName, InitialValue, RichValue, DefaultStyle, Rectangle, [MaxLen], [Flags]) sender ut en tekstwidget med /RV (rich-text XHTML-body), /DS (CSS-lignende standardstil), ffRichText-flagget /Ff bit 26 automatisk OR-et inn, pluss plain-text /V + /DV-fallback brukt av lesere som ikke tolker /RV. Acrobat og Foxit rendrer direkte fra /RV når RichText-biten er på, og henter fontfallbacks fra leserens installerte Unicode-fonter - så flertegnsinnhold (CJK / kyrillisk / arabisk / aksentert latin) vises riktig uten at HotPDF bygger inn en CID-font i /DR-ressursene. Både /V og /RV oppdager automatisk flertegnsinnhold og bytter til UTF-16BE hex-strengkoding (FE FF BOM + big-endian kodeenheter) når det trengs. Generering av utseendestrøm med CID-font for HotPDFs egen /AP-bane er fortsatt fremtidig arbeid; rich-text-bevisste visere trenger det ikke. Tilgjengelig siden HotPDF v2.55.0
  • DeviceN-fargerom for spot-blekkflyter med flere farger (PDF 1.3+ ISO 32000-1 8.6.6.5): THotPDF.RegisterDeviceN(ColorantNames, AlternateCS, TintC1Matrix) generaliserer RegisterSeparation fra ett spotblekk til N. Tint-transformen er en PostScript-kalkulator Function Type 4 som sender ut en lineær vektet blanding over den leverte N x M-matrisen (rad n kolonne m er fargekomponent n sitt bidrag til AlternateCS-kanal m når fargekomponent n alene er 1.0). Returnerer et fargeromsnavn (DevN1, DevN2, ...) som styrer den vanlige pipelinen SetFillColorSpace + SetFillColor([t0, t1, ..., t_{N-1}]). AlternateCS godtar DeviceGray, DeviceRGB eller DeviceCMYK; blekknavn med mellomrom escapes til #20 per PDF 1.7 7.3.5; det spesielle navnet None markerer en ubrukt fargekomponentplass. Tilgjengelig siden HotPDF v2.47.0
  • Fritt formet Gouraud-skygget trekantmesh (PDF 1.3+ ISO 32000-1 8.7.4.5.4): THotPDF.RegisterFreeFormGouraudShading(XMin, YMin, XMax, YMax, NumComponents, Vertices) deklarerer en /ShadingType 4-strøm med /BitsPerCoordinate 16 + /BitsPerComponent 8 + /BitsPerFlag 8, pakker den inn i en innebygd Pattern Type 2-oppføring på sidens Resources/Pattern-ordbok og returnerer det automatisk genererte mønsternavnet (Sh1, Sh2, ...) for den vanlige pipelinen SetFillPattern / SetStrokePattern. Hver vertex pakkes som 1 flaggbyte (alltid 0 for uavhengige trekanter) + 2 big-endian X-byte + 2 big-endian Y-byte + NumComponents 8-bit fargekomponenter. Argumentet NumComponents godtar 1 (DeviceGray), 3 (DeviceRGB) eller 4 (DeviceCMYK); hver vertex bidrar med 2 + NumComponents Extended-verdier til Vertices i rekkefølgen (X, Y, c1...cN); vertex-antallet må være et multiplum av 3. /Decode mapper 16-bitskoordinatene tilbake til [XMin, XMax] x [YMin, YMax] og fargekomponentene til [0, 1]. Type 5 (lattice), Type 6 (Coons patch) og Type 7 (tensor product) mesh-shadings er fortsatt fremtidig arbeid. Tilgjengelig siden HotPDF v2.48.0
  • Lattice-formet Gouraud-skygget trekantmesh (PDF 1.3+ ISO 32000-1 8.7.4.5.5): THotPDF.RegisterLatticeFormGouraudShading(XMin, YMin, XMax, YMax, NumComponents, VerticesPerRow, Vertices) deklarerer en /ShadingType 5-strøm som arrangerer vertexer i et M-rad x N-kolonne-rutenett og lar rendereren auto-triangulere hvert par av nabo-rader til en trekantstripe. I motsetning til RegisterFreeFormGouraudShading (Type 4) finnes det ingen flaggbyte per vertex; /BitsPerFlag er fraværende i shading-ordboken og hver vertex opptar bare 4 + NumComponents byte (2 big-endian X + 2 big-endian Y + N fargekomponenter). Shading-ordboken bærer i stedet den nødvendige oppføringen /VerticesPerRow N. Bruk den for kildedata som allerede ligger på et vanlig prøve-rutenett (terreng, FEA-resultater, vitenskapelige heatmaps) - applikasjonen leverer vertexer radvis og renderingspipelinen setter sammen trekantstripetopologien automatisk. VerticesPerRow må være minst 2 og totalt vertexantall må være et multiplum av VerticesPerRow med minst to rader. Tilgjengelig siden HotPDF v2.49.0
  • Coons-patchmesh shading (PDF 1.3+ ISO 32000-1 8.7.4.5.6): THotPDF.RegisterCoonsPatchMesh(XMin, YMin, XMax, YMax, NumComponents, Patches) deklarerer en /ShadingType 6-strøm av Coons-patcher, der hver er avgrenset av fire kubiske Bezier-kurver og har én farge per hjørne. Rendereren tilpasser Coons-flaten mellom de fire kantene, noe som gir en vilkårlig bøyd fargelagt firkant - nyttig for folier og metalliske gradienter på bøyde baner, SVG-avledede gradient-mesh og enhver firkant med buede kanter som ellers ville trengt mange små trekanter for å tilnærmes. Hver patch bidrar med 12 kontrollpunkter (24 X+Y Extended-verdier, ordnet c1..c12 med klokken rundt kanten med c1 / c4 / c7 / c10 ved de fire hjørnene og de resterende 8 som indre Bezier-håndtak) fulgt av 4 hjørnefarger (4 * NumComponents Extended-verdier), så Patches-steget er 24 + 4 * NumComponents. Shading-ordboken bærer de samme /BitsPerCoordinate 16 + /BitsPerComponent 8 + /BitsPerFlag 8 som Type 4 (og i motsetning til Type 5 finnes ikke /VerticesPerRow). Hver sendt patch har flagg = 0 (uavhengig patch); fortsettelsesflagg 1 / 2 / 3 (kantdeling) er ikke eksponert i denne praktiske overlasten. Tilgjengelig siden HotPDF v2.50.0
  • Separation-fargerom med samplet LUT tint-transform (PDF 1.3+ ISO 32000-1 8.6.6.4 + 7.10.2): THotPDF.RegisterSeparationLUT(ColorantName, AlternateCS, Samples) pakker RegisterSampledFunction inn slik at kallere kan uttrykke en full ikke-lineær tint -> alt-CS-kurve som en flat byte-strøm med 8-biters (M-tuple) samples uten å bygge en Function Type 0-ordbok manuelt. Bruk LUT-varianten når fargeovergangen er ikke-lineær - PANTONE Hexachrome-lignende tint-ramp, gamma-korrigerte tetthetskurver, håndtegnede tonekurver som matcher en pressekarakterisering, sRGB-til-spot-conversion ICC LUT-er uten hele ICC-profilmaskineriet; v2.45.0-oppføringen RegisterSeparation dekker fortsatt det lineære ett-endepunkts-tilfellet. AlternateCS godtar DeviceGray, DeviceRGB eller DeviceCMYK; lengden på Samples må være et positivt multiplum av M med minst 2 * M byte slik at funksjonen får et interpolerbart område, og antall rutenettpunkter S utledes fra Length(Samples) / M. Lineær interpolasjon er standard per PDF 1.7 /Order 1. Returnerer det registrerte fargeromsnavnet (Sep1, Sep2, ...) for bruk med den vanlige pipelinen SetFillColorSpace + SetFillColor([tint]). Tilgjengelig siden HotPDF v2.53.0
  • Registrering av Function Type 0 (Sampled) (PDF 1.3+ ISO 32000-1 7.10.2): THotPDF.RegisterSampledFunction(Domain, Range, Size, BitsPerSample, Samples, [Order]) deklarerer en indirekte /FunctionType 0-strøm som uttrykker en vilkårlig inn-til-ut-kartlegging som et vanlig N-dimensjonalt rutenett av M-dimensjonale ut-samples, interpolert mellom rutenettpunkter. Bruk den der ICC-profilmaskineri er overkill, men en håndtrimmet farge-LUT er ønsket - tonekurver for /TransferFunction (ExtGState /TR), samplede tint-transformer for /Separation / /DeviceN utover de lineære Type 2- / aritmetiske Type 4-banene, halvtone-terskelkurver eller andre PDF-konstruksjoner som tar en Function-ordbok. Domain er 2N oppføringer (ett [min, max]-par per inngangsdimensjon); Range er 2M oppføringer (ett par per utgangsdimensjon); Size er N antall rutenettpunkter; BitsPerSample godtar 1, 2, 4, 8, 12, 16, 24 eller 32 per PDF 1.7 tabell 38; Samples er den rå bitpakkede sample-strømmen (MSB først innenfor hver sample, ingen padding mellom samples utover nullfylling i siste byte, med inngang 0 som varierer raskest per spesifikasjonens sample-rekkefølge-regler); Order har standard 1 (lineær) og godtar 3 (kubisk spline-interpolasjon, siden v2.54.0) per PDF 1.7 tabell 38. HotPDF validerer antall sample-byte mot ceil(GridPoints * M * BitsPerSample / 8). Returnerer den indirekte THPDFStreamObject-en slik at kallere kan feste den der en Function-ordbok forventes. Tilgjengelig siden HotPDF v2.52.0; kubisk /Order 3 + ende-til-ende-støtte for flere inn- og utdata siden v2.54.0
  • Tensorprodukt-patchmesh shading (PDF 1.3+ ISO 32000-1 8.7.4.5.7): THotPDF.RegisterTensorProductPatchMesh(XMin, YMin, XMax, YMax, NumComponents, Patches) deklarerer en /ShadingType 7-strøm av tensorprodukt-patcher, der hver er definert av et komplett 4 x 4-rutenett av bikubiske Bezier-kontrollpunkter p[i][j] pluss én farge per hjørne. Utvider RegisterCoonsPatchMesh (Type 6) ved å legge til 4 eksplisitte indre kontrollpunkter (p[1][1], p[1][2], p[2][2], p[2][1]) oppå de 12 randpunktene, noe som gir finere kontroll over patchens indre enn Coons-blandingen kan uttrykke. Nyttig for SVG mesh-gradient-runde-reiser og annet materiale som trenger en tensorprodukt-Bezierflate. Hver patch bidrar med 16 kontrollpunkter (32 X+Y Extended-verdier, ordnet etter spesifikasjonens tabell 88 strømrekkefølge: p[0][0..3], p[1][3], p[2][3], p[3][3], p[3][2..0], p[2][0], p[1][0], deretter de 4 indre punktene p[1][1], p[1][2], p[2][2], p[2][1]) fulgt av 4 hjørnefarger (4 * NumComponents Extended-verdier ved p[0][0] / p[0][3] / p[3][3] / p[3][0]), så Patches-steget er 32 + 4 * NumComponents. Hver sendt patch har flagg = 0 (uavhengig patch). Med denne versjonen er hele mesh-shading-familien i ISO 32000-1 8.7.4.5 (Type 4 / 5 / 6 / 7) dekket. Tilgjengelig siden HotPDF v2.51.0
  • Annotasjonskantstil og popup-kobling (PDF 1.7 12.5.4 / 12.5.6.14): THPDFPage.SetAnnotationBorderStyle(Annot, Width, Style, DashPattern) legger ved en /BS-ordbok med valgt THPDFAnnotBorderStyle (absSolid / absDashed / absBeveled / absInset / absUnderline). THPDFPage.AddPopupAnnotationFor(ParentAnnot, Rect, Open) sender ut en /Popup-annotasjon som er koblet begge veier (forelder /Popup -> popup, popup /Parent -> forelder) slik at viseren kan rendere snakkeboble-koblingen. Den nye egenskapen THPDFPage.LastAnnotation mater enten hjelpemetode uten å endre signaturen til de eksisterende Add*Annotation-prosedyrene. Tilgjengelig siden HotPDF v2.34.0
  • Sikkerhetshåndterer for offentlig nøkkel (PDF 1.7 7.6.5): THotPDF.EnablePubKeyEncryption(seed, KeyType, EncryptMetadata) + THotPDF.AddPubKeyRecipient(envelope) sender ut en krypteringsordbok /Filter /Adobe.PubSec (/SubFilter /adbe.pkcs7.s4 for V=1 RC4-40 / /adbe.pkcs7.s5 for V=2 RC4-128 / V=4 AESV2). Kalleren leverer den 20 byte lange tilfeldige seed-en og én PKCS#7 envelopedData-binærblob per mottaker (bygget eksternt med Windows CryptoAPI, OpenSSL eller pycryptodome). HotPDF avleder filkrypteringsnøkkelen gjennom algoritme 9 (SHA-1 av seed satt sammen med hver envelope) og gjenbruker den vanlige per-objekt nøkkelavledningen for AES-128 / RC4-strømmer. Tilgjengelig siden HotPDF v2.33.0

Se også