|
PDF Filter Support
Yleiskatsaus
PDF-virrat ja upotetut kuvat tunnistavat pakkauksensa suodatinluokkien nimien perusteella. HotPDF toimii ensisijaisesti seuraavien suodatinperheiden kanssa luodessaan asiakirjoja tai purkaessaan ulkoista sisältöä
Common Filters
- FlateDecode: Pääasiallinen pakkaussuodatin luoduille virroille ja ensisijainen zlib-pohjainen pakkauksen purkupolku
- LZWDecode: Tuettu vanhoille ja yhteensopivuusskenaarioille HPDFLZW.pas-tiedoston kautta
- DCTDecode: Käytetään standardeissa JPEG-kuvatiedoissa, joita käsitellään HotPDF-kuvanlatauspoluilla
- CCITTFaxDecode: Yleinen mustavalkoisissa TIFF-kuvissa ja faksityyppisissä kuvatiedoissa
- ASCIIHexDecode / ASCII85Decode / RunLengthDecode: Enkooderi-aputoiminnot, jotka on tuotu esiin tiedostossa HPDFTypes.pas (
_ASCIIHexEncode, _ASCII85Encode, _RunLengthEncode) versiosta HotPDF v2.4.0 lähtien. Hyödyllinen käärittäessä mielivaltaista binaarisisältöä 7-bittisiä kanavia varten tai eksplisiittistä PDF 1.7 7.4 -edestakaistukea varten
- JBIG2Decode / JPXDecode: PDF 1.7 7.4.7 / 7.4.9:n määrittelemät suodatinnimet. HotPDF:n mukana toimitetut JBIG2- ja JPEG 2000 -apuohjelmat ovat tynkiä, jotka raportoivat, ettei niitä tueta (palauttaa
False), kunnes todellinen OpenJPEG- / JBIG2-taustajärjestelmä on linkitetty. Aikaisemmat versiot palauttivat väärän 100×100 onnistumisen, mikä tuotti lukukelvottomia kuvia; tämä on nyt korjattu
Practical Notes
- Kaikkia suodattimia ei tuoda näkyville yhden yleisen ohjelmointirajapinnan kautta; jotkin niistä tavoitetaan erillisten kuva- tai virta-apuyksiköiden kautta
- Luodun PDF-sisällön osalta ominaisuus THotPDF.Compression säilyy keskeisenä käyttäjälle näkyvänä asetuksena
- Ulkoista dataa ladattaessa sovellettava suodatin riippuu lähdetiedostomuodosta ja käytettävästä apuluokasta
- Salatut PDF-tiedostot yhdistävät nämä suodattimet suojauskäsittelijään; katso kohdasta CryptKeyLength tuetut AES-128 (V=4 R=4 / CFM=AESV2) ja RC4 (V=1/V=2) -vaihtoehdot
- Interaktiiviset lomakekentät lähetetään Widget-annotointina, jotka katseluohjelma piirtää; katso AcroForm Support
- Tekstimerkintähuomautukset (Highlight, Underline, Squiggly, StrikeOut) ja dokumentinsisäiset hyppylinkit (
GoTo, GoToR, Launch) on tuotu saataville uusina THPDFPage.Add*Annotation-, AddGoToLink-, AddGoToRLink- ja AddLaunchLink-metodeina versiosta HotPDF v2.6.0 alkaen
- DeviceCMYK-tulostus on saatavilla metodeilla
THPDFPage.SetCMYKColor / SetCMYKFillColor / SetCMYKStrokeColor; ICC-hallinnoidut väriavaruudet rekisteröidään metodilla THotPDF.RegisterICCProfile ja otetaan käyttöön metodien SetFillColorSpace / SetStrokeColorSpace + SetFillColor / SetStrokeColor kautta versiosta HotPDF v2.7.0 alkaen
- Aseta
THotPDF.UseXRefStream arvoon true ennen tallentamista tuottaaksesi yhden FlateDecode-pakatun ristiviitevirran /Type /XRef tekstimuotoisen xref / trailer / startxref -sarjan sijaan (PDF 1.7 7.5.8); saatavilla versiosta HotPDF v2.8.0 alkaen
- Aseta
THotPDF.EnableXMPMetadata arvoon true liittääksesi XMP-virran /Type /Metadata /Subtype /XML Catalog-objektiin (PDF 1.7 14.3.2); luodaan automaattisesti Info-sanakirjan kentistä, tai toimita käsin kirjoitettu paketti ominaisuuden CustomXMP kautta. Saatavilla versiosta HotPDF v2.9.0 alkaen
- Metodikohtainen PDF-version rajaus (versiosta HotPDF v2.24.0 alkaen). Jokainen versiossa v2.4.0+ esitelty toimintometodi tarkistaa arvon
RequirePDFVersion ennen lähetystä; kun StrictVersionLock=false (oletus), asiakirjan Version nostetaan automaattisesti toiminnon vaatimaan minimiversioon, ja kun StrictVersionLock=true, kutsu hylätään, jotta tallennettu tiedosto noudattaa tiukasti valittua 1.3 / 1.4 / 1.5 / 1.6 / 1.7 -viitespesifikaatiota
- PNG- ja TIFF-ennustekooderit FlateDecode-pakatuille kuvatiedoille (PDF 1.7 7.4.4.4):
_PNGPredictorEncode soveltaa libpng-kirjaston pienimmän absoluuttisen eron suodatinheuristiikkaa (Predictor=15), _TIFFPredictor2Encode soveltaa vaakasuuntaista erotusta (Predictor=2). Saatavilla versiosta HotPDF v2.10.0 alkaen
- Merkityn PDF:n (Tagged PDF) aloituspisteet (PDF 1.7 14.7-14.8):
THotPDF.Lang asettaa Catalog-objektin /Lang-arvon, EnableTaggedPDF tuottaa elementit /MarkInfo <> ja tng-rakenteen /StructTreeRoot, ja uudet THPDFPage.BeginMarkedContent- / BeginMarkedContentMCID- / EndMarkedContent-metodit kirjoittavat sisällönohjausoperaattorit BMC / BDC / EMC. Saatavilla versiosta HotPDF v2.11.0 alkaen
- Aksiaaliset ja radiaaliset liukuvärit (PDF 1.7 7.10 / 8.7):
THotPDF.RegisterAxialGradient / RegisterRadialGradient rakentavat täyden Function Type 2 / Shading Type 2-3 / Pattern Type 2 -pinon ja palauttavat vakaan kuviomuodon nimen; THPDFPage.SetFillPattern / SetStrokePattern asentavat sen sivulle. Alku- ja loppuvärin komponenttimäärä valitsee DeviceGray- (1), DeviceRGB- (3) tai DeviceCMYK-tilan (4). Saatavilla versiosta HotPDF v2.13.0 lähtien; monivaiheiset aksiaaliset liukuvärit Function Type 3:n kautta tuodaan esiin RegisterMultiStopAxialGradient-menetelmän kautta versiosta v2.18.0 lähtien
- Rivinsisäiset kuvat (PDF 1.7 8.9.7)
THPDFPage.DrawInlineImage -kutsulla; raakatavut kääritään automaattisesti ASCIIHex-muotoon, jos Filter-suodatinta ei ole määritetty, jotta sisältövirta pysyy 7-bittisenä. Saatavilla versiosta HotPDF v2.18.0 alkaen
- OutputIntents (PDF 1.7 14.11)
THotPDF.AddOutputIntent -kutsulla; jokainen kutsu lisää /Type /OutputIntent -sanakirjan Catalog-osaan, ja valinnainen /DestOutputProfile viittaa rekisteröityyn ICC-profiiliin. Saatavilla versiosta HotPDF v2.18.0 alkaen
- AcroForm-ulkoasuvirran automaattinen luonti (PDF 1.7 12.5.5 / 12.7.3.3 / 8.10): aseta
THotPDF.AutoFormAppearances arvoon true ennen interaktiivisten lomakekenttien lisäämistä, jolloin HotPDF rakentaa valmiiksi /Subtype /Form -muotoisen Form XObject -objektin jokaisen widgetin /AP /N -tietueelle (painikkeille Yes / Off -alisanakirjat), täyttää AcroFormin /DR -oletusresurssit epäsuorilla Helvetica- / ZapfDingbats-fonttisanakirjoilla ja asettaa /NeedAppearances-arvoksi false, jotta renderöijät kunnioittavat upotettuja virtoja. Saatavilla versiosta HotPDF v2.28.0 lähtien
- Asetukset ViewerPreferences /ViewArea ja /ViewClip (PDF 1.4 12.2 taulukko 152) tuodaan nyt saataville
THotPDF.ViewArea- / THotPDF.ViewClip-ominaisuuksien kautta (vastaavilla joukon jäsenillä vpViewArea / vpViewClip). Molemmat hyväksyvät THPDFPageBoundary-arvot (MediaBox / CropBox / BleedBox / TrimBox / ArtBox) ja täydentävät HotPDF-kirjaston kattavuuden neljästä PDF 1.4:n sivurajan ViewerPreferences-asetuksesta. Saatavilla versiosta HotPDF v2.29.0 alkaen
- Sivusiirtymät (PDF 1.1 / 1.5 12.4.4):
THPDFPage.SetPageTransition kirjoittaa /Trans-sanakirjan sivulle, jotta PDF-lukijat animoivat siirtymisen tilassa /PageMode /FullScreen. PDF 1.1 -tyylit (Split, Blinds, Box, Wipe, Dissolve, Glitter, R) ja PDF 1.5 -tyylit (Fly, Push, Cover, Uncover, Fade) tuodaan näkyville THPDFTransitionStyle-luettelotyypin kautta; myös siihen liittyvät /Dm-, /M- ja /Di-alivalinnat ovat käytettävissä. THPDFPage.SetPageDuration asettaa automaattisen siirtymisviiveen /Dur sekunneissa. Saatavilla versiosta HotPDF v2.30.0 alkaen
- Sivutason läpinäkyvyysryhmä (PDF 1.4 11.6.6 / 7.5.5):
THPDFPage.SetTransparencyGroup liittää sivuun /Group-sanakirjan (/Type /Group /S /Transparency), jotta renderöijät yhdistävät alfakanavaa sisältävän sisällön ennakoitavasti. Valitse laitteen väriavaruus THPDFGroupColorSpace-luettelotyypin kautta (DeviceGray / DeviceRGB / DeviceCMYK tai jätä tyhjäksi), tai kutsu THPDFPage.SetTransparencyGroupICC aiemmin rekisteröidyn ICC-profiilin nimellä THotPDF.RegisterICCProfile-kutsun kautta. Valinnaiset /I (Isolated) ja /K (Knockout) -liput ohjaavat komposiittoria; THPDFPage.ClearTransparencyGroup poistaa aiemmin liitetyn tietueen. Saatavilla versiosta HotPDF v2.32.0 alkaen
- Inkrementaalinen päivitys (PDF 1.7 ISO 32000-1 7.5.6):
THotPDF.BeginIncrementalUpdate(SourceFile) lataa olemassa olevan PDF-tiedoston vain lisäystilassa; sitä seuraavat CreateIndirect*-kutsut merkitsevät uudet objektit automaattisesti muuttuneiksi (dirty), ja THotPDF.MarkDirty(Obj) merkitsee aiemmin ladatut objektit uudelleen lähetettäviksi. THotPDF.SaveIncrementalUpdate(TargetFile) kirjoittaa alkuperäiset lähdetavut sellaisenaan, lisää vain muuttuneet objektit säilyttäen niiden objektinumerot, luo uuden xref-alilohkon ja päättyy trailer-osaan, jossa /Prev osoittaa edelliseen xref-kohtaan. Yhdistä olemassa olevaan AddSignedSignatureField + PreparePDFForSigning + InsertSignatureHex -putkeen lisätäksesi allekirjoituskenttiä jo allekirjoitettuun asiakirjaan mitätöimättä aikaisempia allekirjoituksia (niiden /ByteRange-tiivisteet säilyvät kelvollisina, koska mitkään alkuperäiset tavut eivät muutu). Saatavilla versiosta HotPDF v2.35.0 alkaen
- Upotetun TrueType-fontin nimen normalisointi: HotPDF lukee upotetun TrueType-nimitaulukon ja kohdistaa
/BaseFont-, /FontDescriptor /FontName-, /FontFamily- ja jälkeläisten CID-fonttien nimet fonttiohjelman PostScript-nimen kanssa. Tämä välttää Adobe Acrobat Font Capture -virheet, jotka johtuvat PDF-fonttisanakirjan ja upotetun TTF-hyötykuorman välisestä epäsuhdasta. Saatavilla versiosta HotPDF v2.35.1 alkaen
- TrueType-fontin osajoukkoistaminen (PDF 1.7 ISO 32000-1 9.6.4 / 9.8.2): aseta
THotPDF.EnableFontSubsetting arvoon true ennen metodia BeginDoc, ja HotPDF rakentaa upotetun TrueType-datan uudelleen sisältämään vain dokumentissa todella käytetyt glyfit. Tyypilliset latinalaiset dokumentit saavuttavat noin 90 % pienennyksen upotetun fontin koossa (1 Mt Arial -> n. 70 kt yksirivisellä tekstillä "Hello, world."). Yhdistelmäglyfien riippuvuuksia seurataan rekursiivisesti, GID-numerointi säilytetään (joten olemassa olevat Type0- / Identity-H-sisältövirrat toimivat edelleen) ja uusi /BaseFont saa automaattisesti määrityksen vaatiman kuusikirjaimisen "+"-loppuisen etuliitteen (esim. /BaseFont /AAAAAA+ArialMT). Oletuksena pois käytöstä; ota käyttöön, jos haluat säilyttää koko fontin upotuksen muokkaustyönkulkuja varten. Saatavilla versiosta HotPDF v2.36.0 alkaen
- Compact Font Format (CFF) -osajoukkoistin (PDF 1.7 ISO 32000-1 9.7.4 / 9.9): TrueType-osajoukkoistimen kumppani OpenType-CFF- (.otf, sfntVersion
OTTO) ja Type 1 / Type 1C -fonteille. Yksikön eksportoima funktio HPDFSubsetCFF(CFFBytes, KeepGlyph) rakentaa CharStrings INDEX -taulukon uudelleen korvaamalla pois jätetyt glyyfit minimaalisella 1-tavuisella endchar-tynällä, säilyttäen GID-numeroinnin tavu tavulta. Saatavilla versiosta HotPDF v2.37.0 alkaen
- OpenType-CFF (.otf) -upotuspolku kytkettynä
StoreFont-metodiin (PDF 1.6+ 9.7.4 Table 117). Kun GDI-ladattu fonttibinaari on sfnt-muotoinen OTTO-säiliö, HotPDF tekee osajoukon upotetusta 'CFF '-alitaulukosta HPDFSubsetOTFContainer-aputoiminnolla, tulostaa fonttiohjelman polulla /FontFile3 /Subtype /OpenType ja kirjoittaa johdetun fonttisanakirjan arvolla /Subtype /CIDFontType0 arvon /CIDFontType2 sijaan. TrueType-fontit jatkavat olemassa olevaa /FontFile2 + /CIDFontType2 -polkua ilman toiminnallisia muutoksia. Saatavilla versiosta HotPDF v2.38.0 alkaen
- CFF-aliohjelmien alijoukkoistus päästä päähän (PDF 1.7 9.7.4 §6 / Adobe Tech Note #5177 §3.1): CFF-alijoukon luoja poistaa nyt käyttämättömät tietueet SEKÄ Global Subr INDEX -tietueesta (sijaitsee heti String INDEX -tietueen jälkeen CFF-binaarissa) että Local Subr INDEX -tietueesta (upotettuna Private DICT -tietueeseen, saavutetaan Top DICT -operaattorin 18 + Private DICT -operaattorin 19 kautta). Yksittäinen kiintopistesulkeuma seuraa transitiivisesti ketjuja
callsubr (op 0x0A) JA callgsubr (op 0x1D), joten yhdessä iteraatiossa poimitaan CharString, joka kutsuu Local Subria, joka kutsuu Global Subria, joka kutsuu toista Local Subria. Jokainen käyttämätön tietue korvataan 1-tavuisella return-tynällä ja INDEX kirjoitetaan uudelleen paikoilleen siten, että loppuosa täytetään nollilla. Tämä käyttäytyminen tuodaan esiin julkisten apuohjelmien HPDFSubsetCFF ja HPDFSubsetOTFContainer kautta; alemman tason CFF-skannerit pysyvät sisäisinä. Saatavilla versiosta HotPDF v2.39.0 lähtien
- CID-avainnettu CFF-alijoukkoistus (PDF 1.7 ISO 32000-1 9.7.4 / Adobe Tech Note #5176 §18-19): CFF-alijoukon luoja tunnistaa nyt Top DICT
ROS -operaattorin (12-30), joka merkitsee CID-avaimellisen OpenType-CFF-fontin, ja käy läpi Font DICT -hakemistojen FDArray (12-36) INDEX -tietueet, joista jokainen sisältää oman Private DICT + Local Subr INDEX -rakenteensa. Glyyfeistä FD-tietueisiin kartoittava FDSelect (12-37) säilytetään tavulleen identtisenä. Aliohjelmien sulkeumaskannaus seuraa kunkin säilytetyn CharStringin FD-kontekstia, joten FD #5:ssä oleva glyyfi merkitsee vain FD #5:n Local Subr -tietueita – globaalit subrit pysyvät jaettuina eri FD-tietueiden välillä. Jokaisen FD:n Local Subr INDEX kirjoitetaan uudelleen paikoilleen siten, että käyttämättömät tietueet supistetaan 1-tavuisiksi return-tyngiksi. CJK- / intialaiset / arabialaiset OTF-fontit (Adobe Fan/Gothic/Heiti/Ming/Myungjo/Song Std, Kozuka Pr6N, Source Han Sans jne.) käyvät nyt läpi koko alijoukkoistusputken sen sijaan, että ne upotettaisiin sellaisenaan. Saatavilla versiosta HotPDF v2.40.0 lähtien
- Objektivirrat (PDF 1.5 ISO 32000-1 7.5.7): asetuksen
THotPDF.UseObjectStreams asettaminen arvoon true yhdessä UseXRefStream- ja SaveToStream-ominaisuuksien kanssa pakkaa soveltuvat epäsuorat objektit (kaikki paitsi virrat, salaus-sanakirjan ja trailer-osan osoittamat Catalog- ja Info-sanakirjat) yhteen tai useampaan /Type /ObjStm -säiliövirtaan. Ristiviitevirta (xref-virta) viittaa tällöin pakattuihin objekteihin tyypin 2 tietueiden kautta (kenttä 2 = isäntä-ObjStm-objektin numero; kenttä 3 = tietueen indeksi virran sisällä). Pienentää tiedostokokoa huomattavasti PDF-tiedostoissa, joissa on paljon pieniä sanakirjoja (monisivuiset asiakirjat, annotaatiot, AcroForm-widgetit, rakenne-puun elementit, valinnaisen sisällön tasot) - 30-sivuinen vain grafiikkaa sisältävä PDF kutistuu 14502 tavusta 8488 tavuun (41.5 % pienempi). Laskee automaattisesti arvoon false, kun UseXRefStream on pois päältä (tyypin 2 tietueita ei voida esittää tekstipohjaisessa xref-taulukossa määritysten mukaan) tai kun Version on alle PDF 1.5. Saatavilla versiosta HotPDF v2.41.0 alkaen
- Pehmeytetyn maskin kuva / SMask (PDF 1.4 ISO 32000-1 8.9.5.4):
THotPDF.AddImageWithSMask(Width, Height, RGB, Alpha) luo värikuvan XObject-objektin sekä 8-bittisen DeviceGray-pehmeämaskikuvan XObject-objektin ja kytkee /SMask-ristiviitteen automaattisesti, jotta jokainen pikseli voi sisältää täyden kanavakohtaisen läpinäkyvyyden perinteisen /ImageMask-polun binaarisen päällä/pois-rajoituksen sijaan. Kätevä ylikuormitettu metodi THotPDF.AddImageWithSMask32(Bitmap32) hakee RGB- ja alfatasoja 32-bittisestä BGRA-tyyppisestä TBitmap-objektista PNG-kuvan ja alfan upottamiseksi yhdellä kutsulla. Molemmat kutsupisteet menevät ehdon RequirePDFVersion(pdf14) kautta, jotta tiukan tilan 1.3-tuloste pysyy yhteensopivana. Saatavilla versiosta HotPDF v2.42.0 alkaen
- Värittömän laatoituskuvion maalaus (PDF 1.7 ISO 32000-1 8.6.6.1):
THotPDF.RegisterTilingPattern on tuottanut sekä arvon /PaintType 1 (värillinen) että /PaintType 2 (väritön) versiosta v2.19.0 alkaen, mutta vastaava sivunpuoleinen operaattorisarja oli oikein vain värilliselle versiolle. Kuusi uutta THPDFPage-metodia - SetFillPatternRGB / SetStrokePatternRGB / SetFillPatternGray / SetStrokePatternGray / SetFillPatternCMYK / SetStrokePatternCMYK - ohjaavat nyt väritöntä polkua rekisteröimällä automaattisesti vastaavan [/Pattern /BaseCS]-sävytysväriavaruuden sivun Resources/ColorSpace-sanakirjaan ja tuottamalla määrityksen vaatiman tint_components /Pn scn -sarjan. Käytä alkuperäisiä SetFillPattern / SetStrokePattern -metodeja värilliselle versiolle, jossa laatta sisältää oman värinsä. Saatavilla versiosta HotPDF v2.43.0 alkaen
- CIELab-väriavaruus (PDF 1.3+ ISO 32000-1 8.6.5.3):
THotPDF.RegisterLabColorSpace(Xw, Yw, Zw, aMin, aMax, bMin, bMax) rakentaa upotetun [/Lab << /WhitePoint /BlackPoint /Range >>] -väriavaruustaulukon, tallentaa sen automaattisesti luodulla nimellä (Lab1, Lab2, ...) ja palauttaa kyseisen nimen käytettäväksi tavallisessa THPDFPage.SetFillColorSpace / SetStrokeColorSpace + SetFillColor([L, a, b]) / SetStrokeColor([L, a, b]) -putkessa. Lisää D50-valonlähde [0.9505, 1.0, 1.089] ICC-tulostustyönkulkuja varten tai D65-valonlähde [0.95047, 1.0, 1.08883] sRGB-vastaavaa näyttöä varten, ja piirrä sitten L*-arvolla välillä [0..100] ja a*-, b*-arvoilla valitulla alueella (yleensä [-128..127]). Saatavilla versiosta HotPDF v2.44.0 lähtien
- Erotusväriavaruus lisäväreille (PDF 1.3+ ISO 32000-1 8.6.6.4):
THotPDF.RegisterSeparation(ColorantName, AlternateCS, TintC1) määrittää yksikomponenttisen lisävärin, jonka ainoa sävyoperandi välillä [0..1] ohjaa sisäisesti luotua lineaarista Function Type 2 -sävymuunnosta. Käytä palautettua nimeä (Sep1, Sep2, ...) tavallisen SetFillColorSpace / SetStrokeColorSpace + SetFillColor([tint]) / SetStrokeColor([tint]) -putken kanssa. AlternateCS hyväksyy arvot DeviceGray, DeviceRGB tai DeviceCMYK; TintC1 määrittää vaihtoehtoisen väriavaruuden komponentit, kun sävy = 1.0. Pantone- ja muut värien nimet, joissa on välilyöntejä, hyväksytään suoraan - HotPDF korvaa ne koodilla #20 PDF 1.7 kohdan 7.3.5 mukaisesti kirjoittaessaan väriavaruuden nimeä. Saatavilla versiosta HotPDF v2.45.0 alkaen
- AcroFormin moniriviset ja comb-tekstin ulkoasuvirrat (PDF 1.7 ISO 32000-1 12.7.4.3): kun
THotPDF.AutoFormAppearances on päällä, tekstikentät, joiden Flags sisältää arvon ffMultiline, saavat rivitetyn /AP /N Form XObject -objektin (Td + T* + /TL -riviväliasettelu, joka kunnioittaa CR- / LF- / CRLF-erottimia ja katkaisee näkyvän rivimäärän kohdalta). Kentät, joiden Flags sisältää arvon ffComb yhdessä positiivisen MaxLen-arvon kanssa, renderöivät jokaisen merkin omaan tasalevyiseen soluunsa käyttäen absoluuttista Tm-matriisia per glyyfi. Versiosta v2.28.0 peräisin oleva yksirivinen asettelu säilyy tavulleen identtisenä kentille, joilla ei ole tällaisia lippuja. Alkuperäisen arvon kansainväliset merkit siirtyvät edelleen katseluohjelman /NeedAppearances-uudelleenlaskentapolulle – täydellinen upotetun CID-fontin ulkoasun luominen jää tulevaksi työksi. Saatavilla versiosta HotPDF v2.46.0 lähtien
- AcroForm /AP Unicode -fontti (PDF 1.7 ISO 32000-1 12.7.2 + 12.7.4.3):
THotPDF.SetFormUnicodeFontDict(LogicalName, FontDict) rekisteröi kutsujan toimittaman tyypin 0 / CIDFontType2 + Identity-H yhdistelmäfontin AcroFormin oletusresurssihakemistoon /DR/Font. Rekisteröinnin jälkeen AcroForm-tason /DA, jokaisen Tx-widgetin /DA ja AutoFormAppearances-toiminnon tuottama /AP /N -virta ei-ASCII-muotoisille Tx-alkuarvoille vaihtavat kaikki loogiseen nimeen; Form XObject -objektin alihakemisto /Resources/Font viittaa myös samaan epäsuoraan fonttiin, jotta AP on itsenäinen ilman riippuvuutta /DR-ratkaisusta renderöintiaikana. Kumppaniapuohjelma THotPDF.CreateIndirectFontDict palauttaa uuden tyhjän THPDFDictionaryObject-objektin, joka on rekisteröity epäsuoraksi PDF-objektiksi, jotta kutsujat voivat rakentaa mukautettuja fonttisanakirjoja (tai mitä tahansa muuta sanakirjaa, joka vaatii "N G R" epäsuoraa serialisointia) koskematta sisäisiin apuohjelmiin. Välitä tyhjä LogicalName ja nil FontDict palataksesi versioon v2.46.0 ASCII-only /Helv -käyttäytymiseen. ASCII Tx -kentät käyttävät edelleen /Helv-fonttia tavulleen identtisellä tulosteella versioihin v2.46.0 / v2.55.0 verrattuna. Moniriviset + comb-tyyppiset ei-ASCII-muotoiset /AP- ja RTL-bidi-muotoilut (UAX #9 + arabian kontekstuaalinen liitos) jäävät tulevaan työhön. Saatavilla versiosta HotPDF v2.56.0 lähtien; ffMultiline ei-ASCII /AP -tuki (rivikohtainen UTF-16BE heksa Tj, jossa on Td / T* / /TL -rivivälit ja CJK-tietoinen sanarivitys) versiosta v2.57.0 lähtien; ffComb ei-ASCII /AP -tuki (CID-kohtaiset tasalevyiset absoluuttiset Tm-solut + yksittäinen solu Tj koodipistettä kohden UTF-16 surrogate-pair -käsittelyllä) versiosta v2.58.0 lähtien; THotPDF.FormUnicodeRTL-ominaisuus oikealta vasemmalle -suunnalle (kääntää UTF-16-järjestyksen /AP Tj -heksassa säilyttäen samalla /V-arvon loogisessa järjestyksessä; kutsuja esimuotoilee arabiankieliset merkit Unicode-esitysmuodoiksi U+FB50..U+FDFF + U+FE70..U+FEFF; täysi UAX #9 + automaattinen GSUB-muotoilu vireillä) versiosta v2.59.0 lähtien
- AcroForm-rikastekstin Tx-widgetti (PDF 1.5+ ISO 32000-1 12.7.4.3 + Liite L):
THPDFPage.AddRichTextField(FieldName, InitialValue, RichValue, DefaultStyle, Rectangle, [MaxLen], [Flags]) luo teksti-widgetin, jossa on /RV (rikastekstinen XHTML-runko), /DS (CSS-tyyppinen oletustyyli), ffRichText /Ff -bitin 26 lippu automaattisesti OR-yhdistettynä, sekä pelkkää tekstiä sisältävä /V + /DV -vararatkaisu katseluohjelmille, jotka eivät tulkitse /RV-tietuetta. Acrobat ja Foxit renderöivät suoraan /RV-tietueesta, kun RichText-bitti on päällä, ottaen fonttivararatkaisut katseluohjelman asennetuista Unicode-fonteista – joten monitavuinen sisältö (CJK / kyrillinen / arabia / aksentoitu latina) näkyy oikein ilman, että HotPDF upottaa CID-fonttia /DR Resources -resursseihin. Sekä /V että /RV havaitsevat automaattisesti monitavuisen syötteen ja siirtyvät tarvittaessa UTF-16BE heksamerkkijono-koodaukseen (FE FF BOM + big-endian-koodiyksiköt). CID-fontin ulkoasuvirran luominen HotPDF:n omalle /AP-polulle jää tulevaksi työksi; rikastekstitietoiset katseluohjelmat eivät tarvitse sitä. Saatavilla versiosta HotPDF v2.55.0 lähtien
- DeviceN-väriavaruus monivärisille spot-väritöille (PDF 1.3+ ISO 32000-1 8.6.6.5):
THotPDF.RegisterDeviceN(ColorantNames, AlternateCS, TintC1Matrix) yleistää metodin RegisterSeparation yhdestä spot-väristä N-väriin. Sävymuunnos on PostScript-laskimen Function Type 4, joka tuottaa lineaarisen painotetun sekoituksen annetun N x M -matriisin yli (rivi n sarake m on väriaineen n osuus kanavaan AlternateCS kanavassa m, kun väriaine n on yksin 1.0). Palauttaa väriavaruuden nimen (DevN1, DevN2, ...), joka ohjaa tavallista SetFillColorSpace + SetFillColor([t0, t1, ..., t_{N-1}]) -putkea. AlternateCS hyväksyy arvot DeviceGray, DeviceRGB tai DeviceCMYK; värinimet välilyönneillä koodataan muotoon #20 PDF 1.7 7.3.5; erityinen nimi None merkitsee käyttämätöntä väriainepaikkaa. Saatavilla versiosta HotPDF v2.47.0 alkaen
- Vapaamuotoinen Gouraud-varjostettu kolmioverkko (PDF 1.3+ ISO 32000-1 8.7.4.5.4):
THotPDF.RegisterFreeFormGouraudShading(XMin, YMin, XMax, YMax, NumComponents, Vertices) määrittää /ShadingType 4 -virran arvoilla /BitsPerCoordinate 16 + /BitsPerComponent 8 + /BitsPerFlag 8, käärii sen sivun Resources/Pattern-sanakirjan sisäiseen Pattern Type 2 -tietueeseen ja palauttaa automaattisesti luodun kuvion nimen (Sh1, Sh2, ...) tavallista SetFillPattern / SetStrokePattern -putkea varten. Jokainen kärkipiste on pakattu 1 lipputavuna (aina 0 itsenäisille kolmioille) + 2 big-endian X-tavuna + 2 big-endian Y-tavuna + NumComponents 8-bittisenä värikomponenttina. Argumentti NumComponents hyväksyy arvot 1 (DeviceGray), 3 (DeviceRGB) tai 4 (DeviceCMYK); jokainen kärkipiste tuottaa 2 + NumComponents laajennettua arvoa taulukkoon Vertices järjestyksessä (X, Y, c1...cN); kärkipisteiden määrän on oltava 3:lla jaollinen. /Decode kuvaa 16-bittiset koordinaatit takaisin alueelle [XMin, XMax] x [YMin, YMax] ja värikomponentit alueelle [0, 1]. Tyypin 5 (hila), tyypin 6 (Coons-laikku) ja tyypin 7 (tensoritulo) varjostusverkot jäävät tulevaan kehitykseen. Saatavilla versiosta HotPDF v2.48.0 alkaen
- Hila-muotoinen Gouraud-varjostettu kolmioverkko (PDF 1.3+ ISO 32000-1 8.7.4.5.5):
THotPDF.RegisterLatticeFormGouraudShading(XMin, YMin, XMax, YMax, NumComponents, VerticesPerRow, Vertices) ilmoittaa /ShadingType 5 -virran, joka järjestää kärkipisteet M-rivi x N-sarake -hilaan ja antaa renderöijän kolmiooida automaattisesti jokaisen vierekkäisen riviparin kolmionauhaksi. Toisin kuin RegisterFreeFormGouraudShading (Tyyppi 4), kärkipistekohtaista lipputavua ei ole; /BitsPerFlag puuttuu varjostussanakirjasta ja kukin kärkipiste vie vain 4 + NumComponents tavua (2 big-endian X + 2 big-endian Y + N värikomponenttia). Sen sijaan varjostussanakirjassa on vaadittu /VerticesPerRow N -tieto. Käytä sitä lähdeaineistoon, joka on jo valmiiksi säännöllisessä näyteruudukossa (maasto, FEA-tulokset, tieteelliset lämpökartat) - sovellus toimittaa kärkipisteet rivijärjestyksessä ja renderöintiputki muodostaa kolmionauhageometrian automaattisesti. VerticesPerRow arvon on oltava vähintään 2 ja kärkipisteiden kokonaismäärän on oltava VerticesPerRow:n monikerta vähintään kahdella rivillä. Saatavilla versiosta HotPDF v2.49.0 alkaen
- Coons-laikkuverkkohahmonnus (PDF 1.3+ ISO 32000-1 8.7.4.5.6):
THotPDF.RegisterCoonsPatchMesh(XMin, YMin, XMax, YMax, NumComponents, Patches) määrittää /ShadingType 6 -virran Coons-laikkuja, joista jokaista rajoittaa neljä kuutiollista Bezier-käyrää ja joissa on yksi väri kulmaa kohti. Hahmontaja sovittaa Coons-pinnan neljän reunan väliin, mikä tuottaa mielivaltaisesti kaarevan väriä kantavan nelikulmion - hyödyllinen folio- ja metalligradienteissa taivutetuilla poluilla, SVG-pohjaisissa gradienttiverkoissa ja kaikissa kaarevareunaisissa nelikulmioissa, joiden approksimoimiseen muuten tarvittaisiin monia pieniä kolmioita. Jokainen laikku tuottaa 12 ohjauspistettä (24 laajennettua X+Y-arvoa, järjestettynä myötäpäivään reunan ympäri c1..c12 siten, että c1 / c4 / c7 / c10 ovat neljässä kulmassa ja loput 8 sisäisinä Bezier-kahvoina) ja sen jälkeen 4 kulmaväriä (4 * NumComponents laajennettua arvoa), joten Patches-askellus on 24 + 4 * NumComponents. Varjostussanakirja kantaa samaa /BitsPerCoordinate 16 + /BitsPerComponent 8 + /BitsPerFlag 8 kuin Type 4 (ja toisin kuin tyypissä 5, /VerticesPerRow puuttuu). Jokainen lähetetty laikku kantaa lippua flag = 0 (itsenäinen laikku); jatkolippuja 1 / 2 / 3 (reunan jakaminen) ei tuoda esiin tässä mukavuusylikuormituksessa. Saatavilla versiosta HotPDF v2.50.0 alkaen
- Erotusväriavaruus näytteistetyn LUT-sävymuunnoksen kanssa (PDF 1.3+ ISO 32000-1 8.6.6.4 + 7.10.2):
THotPDF.RegisterSeparationLUT(ColorantName, AlternateCS, Samples) paketoi metodin RegisterSampledFunction, jotta kutsujat voivat ilmaista täyden epälineaarisen sävyn ja vaihtoehtoisen väriavaruuden välisen käyrän 8-bittisten (M-monikko) näytteiden tasaisena tavuvirtana ilman Function Type 0 -sanakirjan manuaalista rakentamista. Käytä LUT-versiota, kun värin siirtymä on epälineaarinen - PANTONE Hexachrome -tyyliset sävyrampit, gamma-korjatut tiheyskäyrät, painokoneen karakterisointia vastaavat käsin piirretyt sävykäyrät, sRGB-lisävärikäännöksen ICC-LUT-taulukot ilman täyttä ICC-profiilikoneistoa; version v2.45.0 RegisterSeparation -aloituspiste kattaa edelleen lineaarisen yhden päätepisteen tapauksen. AlternateCS hyväksyy arvot DeviceGray, DeviceRGB tai DeviceCMYK; parametrin Samples pituuden on oltava positiivinen luvun M kerrannainen ja vähintään 2 * M tavua, jotta funktiolla on interpoloitava alue, ja hilapisteiden määrä S päätellään kaavasta Length(Samples) / M. Lineaarinen interpolointi on oletusarvo PDF 1.7 /Order 1 -määrityksen mukaan. Palauttaa rekisteröidyn väriavaruuden nimen (Sep1, Sep2, ...) käytettäväksi tavallisen SetFillColorSpace + SetFillColor([tint]) -putken kanssa. Saatavilla versiosta HotPDF v2.53.0 alkaen
- Function Type 0 (näytteistetty) -rekisteröinti (PDF 1.3+ ISO 32000-1 7.10.2):
THotPDF.RegisterSampledFunction(Domain, Range, Size, BitsPerSample, Samples, [Order]) määrittää epäsuoran /FunctionType 0 -virran, joka ilmaisee mielivaltaisen syötteestä tulokseen -kuvauksen säännöllisenä N-ulotteisena M-ulotteisten tulosnäytteiden hilana, interpoloituina hilapisteiden välillä. Käytä sitä silloin, kun ICC-profiilikoneisto on liikaa, mutta halutaan käsin säädetty väri-LUT - sävykäyrät kohteelle /TransferFunction (ExtGState /TR), näytteistetyt sävymuunnokset kohteille /Separation / /DeviceN lineaaristen Type 2- / aritmeettisten Type 4 -polkujen ulkopuolella, rasterointikynnyskäyrät tai mikä tahansa muu PDF-rakenne, joka ottaa Function-sanakirjan. Domain on 2N-tietuetta (yksi [min, max] -pari syöteulottuvuutta kohti); Range on 2M-tietuetta (yksi pari tulosulottuvuutta kohti); Size on N hilapisteiden määrää; BitsPerSample hyväksyy arvot 1, 2, 4, 8, 12, 16, 24 tai 32 PDF 1.7 -taulukon 38 mukaisesti; Samples on raaka bittipakattu näytevirta (MSB-ensimmäisenä kussakin näytteessä, ei täytettä näytteiden välillä viimeisen tavun nollatäytön lisäksi, syötteen 0 vaihdellessa nopeimmin määrittelyn näytejärjestyssääntöjen mukaan); Order on oletuksena 1 (lineaarinen) ja hyväksyy arvon 3 (kuutiollinen spline-interpolointi, versiosta v2.54.0 alkaen) PDF 1.7 -taulukon 38 mukaisesti. HotPDF vahvistaa näytetavujen määrän suhteessa kaavaan ceil(GridPoints * M * BitsPerSample / 8). Palauttaa epäsuoran THPDFStreamObject-objektin, jotta kutsujat voivat liittää sen minne tahansa, missä Function-sanakirjaa odotetaan. Saatavilla versiosta HotPDF v2.52.0 alkaen; kuutiollinen /Order 3 + päästä päähän -monisyöte- / monituloskattavuus versiosta v2.54.0 alkaen
- Tensoritulotilkkupinnan varjostus (PDF 1.3+ ISO 32000-1 8.7.4.5.7):
THotPDF.RegisterTensorProductPatchMesh(XMin, YMin, XMax, YMax, NumComponents, Patches) määrittää /ShadingType 7 -virran tensoritulotilkuista, joista jokaisen määrittelee täysi 4 x 4 -ruudukko bikubisia Bezier-ohjauspisteitä p[i][j] sekä yksi väri kulmaa kohti. Laajentaa metodia RegisterCoonsPatchMesh (tyyppi 6) lisäämällä 4 eksplisiittistä sisäistä ohjauspistettä (p[1][1], p[1][2], p[2][2], p[2][1]) 12 reunapisteen lisäksi, mikä tarjoaa tarkemman tilkun sisäosan hallinnan kuin mitä Coons-sekoitettu sovitus voi ilmaista. Hyödyllinen SVG-verkkoliukuvärien muunnoksissa ja kaikissa taideteoksissa, jotka tarvitsevat tensorituloisen Bezier-pinnan. Jokainen tilkku tuottaa 16 ohjauspistettä (32 X+Y Extended-arvoa, järjestettynä spetifikaation taulukon 88 virran järjestyksen mukaan: p[0][0..3], p[1][3], p[2][3], p[3][3], p[3][2..0], p[2][0], p[1][0], sitten 4 sisäistä pistettä p[1][1], p[1][2], p[2][2], p[2][1]) ja näitä seuraa 4 kulmaväriä (4 * NumComponents Extended-arvoa kohdissa p[0][0] / p[0][3] / p[3][3] / p[3][0]), joten parametrin Patches askellusväli on 32 + 4 * NumComponents. Jokainen luotu tilkku sisältää lipun flag = 0 (itsenäinen tilkku). Tämän julkaisun myötä koko ISO 32000-1 8.7.4.5 verkkovarjostusperhe (tyypit 4 / 5 / 6 / 7) on nyt kattavasti tuettu. Saatavilla versiosta HotPDF v2.51.0 alkaen
- Annotaation reunaviivan tyyli ja Popup-linkitys (PDF 1.7 12.5.4 / 12.5.6.14):
THPDFPage.SetAnnotationBorderStyle(Annot, Width, Style, DashPattern) liittää /BS-sanakirjan valitulla THPDFAnnotBorderStyle-tyylillä (absSolid / absDashed / absBeveled / absInset / absUnderline). THPDFPage.AddPopupAnnotationFor(ParentAnnot, Rect, Open) luo /Popup-annotaation, joka on yhdistetty molempiin suuntiin (isäntä /Popup -> popup, popup /Parent -> isäntä), jotta katseluohjelma voi renderöidä puhekuplaliittimen. Uusi THPDFPage.LastAnnotation-ominaisuus syöttää kumpaakin apuohjelmaa muuttamatta olemassa olevien Add*Annotation-menetelmien allekirjoitusta. Saatavilla versiosta HotPDF v2.34.0 lähtien
- Julkisen avaimen tietoturvakäsittelijä (Public-Key Security Handler) (PDF 1.7 7.6.5):
THotPDF.EnablePubKeyEncryption(seed, KeyType, EncryptMetadata) + THotPDF.AddPubKeyRecipient(envelope) luovat /Filter /Adobe.PubSec -salaussanakirjan (/SubFilter /adbe.pkcs7.s4 versiolle V=1 RC4-40 / /adbe.pkcs7.s5 versiolle V=2 RC4-128 / V=4 AESV2). Kutsuja toimittaa 20-tavuisen satunnaisen siemenarvon (seed) ja yhden PKCS#7 envelopedData -binaarilohkon vastaanottajaa kohden (rakennettu ulkoisesti Windows CryptoAPI:lla, OpenSSL:llä tai pycryptodomella). HotPDF johtaa tiedoston salausavaimen algoritmilla 9 (siemenen SHA-1 yhdistettynä kunkin kirjekuoren kanssa) ja käyttää uudelleen standardia objektikohtaista avaimen johtamista AES-128 / RC4 -virroille. Saatavilla versiosta HotPDF v2.33.0 alkaen
See Also
|