|
PDF Filter – podpora
Přehled
PDF streamy a vložené obrázky označují své kódování názvy filtrů
HotPDF při generování dokumentů nebo dekódování externího obsahu pracuje hlavně s následujícími rodinami filtrů
Běžné filtry
- FlateDecode: Hlavní kompresní filtr pro generované streamy a primární dekompresní cesta založená na zlib
- LZWDecode: Podporováno pro starší a kompatibilní scénáře prostřednictvím HPDFLZW.pas
- DCTDecode: Používá se pro standardní obrazová data JPEG zpracovávaná cestami načítání obrázků v HotPDF
- CCITTFaxDecode: Běžný filtr pro monochromatická data TIFF a obrazová data faxového typu
- ASCIIHexDecode / ASCII85Decode / RunLengthDecode: Pomocné enkodéry vystavené v HPDFTypes.pas (
_ASCIIHexEncode, _ASCII85Encode, _RunLengthEncode) od HotPDF v2.4.0, užitečné při balení libovolného binárního obsahu pro 7bitové kanály nebo pro explicitní podporu round-trip podle PDF 1.7 7.4
- JBIG2Decode / JPXDecode: Názvy filtrů definované v PDF 1.7 7.4.7 / 7.4.9; přibalené pomocníky JBIG2 a JPEG 2000 v HotPDF jsou stuby, které hlásí nepodporováno (vrací
False), dokud není přilinkován skutečný backend OpenJPEG / JBIG2; dřívější sestavení vracela falešný úspěch 100×100, který vytvářel nečitelný obraz, což je nyní opraveno
Praktické poznámky
- Ne každý filtr je vystaven přes jedno obecné API; některé jsou dostupné přes vyhrazené jednotky pomocníků pro obrázky nebo streamy
- Pro generovaný obsah PDF zůstává THotPDF.Compression hlavním uživatelským nastavením
- Při načítání externích dat závisí použitý filtr na formátu zdrojového souboru a na použité pomocné třídě
- Šifrované PDF soubory kombinují tyto filtry se security handlerem; podporované volby AES‑128 (V=4 R=4 / CFM=AESV2) a RC4 (V=1/V=2) najdete v CryptKeyLength
- Interaktivní pole formulářů se emitují jako anotace Widget, které vykresluje prohlížeč; viz Podpora AcroForm
- Anotace textových značek (Highlight, Underline, Squiggly, StrikeOut) a skokové odkazy uvnitř dokumentu (
GoTo, GoToR, Launch) jsou od HotPDF v2.6.0 vystaveny jako nové metody THPDFPage.Add*Annotation / AddGoToLink / AddGoToRLink / AddLaunchLink
- Výstup DeviceCMYK je dostupný přes
THPDFPage.SetCMYKColor / SetCMYKFillColor / SetCMYKStrokeColor; barevné prostory řízené ICC se registrují pomocí THotPDF.RegisterICCProfile a používají přes SetFillColorSpace / SetStrokeColorSpace + SetFillColor / SetStrokeColor od HotPDF v2.7.0
- Před uložením nastavte
THotPDF.UseXRefStream na true, aby se místo textové sekvence xref / trailer / startxref emitoval jeden FlateDecode-komprimovaný stream křížových odkazů /Type /XRef (PDF 1.7 7.5.8); dostupné od HotPDF v2.8.0
- Nastavte
THotPDF.EnableXMPMetadata na true, chcete-li ke Catalog připojit XMP stream /Type /Metadata /Subtype /XML (PDF 1.7 14.3.2); balíček se automaticky sestaví z polí Info dict, nebo jej lze dodat ručně přes CustomXMP; dostupné od HotPDF v2.9.0
- Řízení verze PDF po metodách (od HotPDF v2.24.0): každá metoda funkce zavedená ve v2.4.0+ před emitováním konzultuje
RequirePDFVersion; při StrictVersionLock=false (výchozí) se dokument Version tiše zvýší na minimum požadované funkcí, zatímco při StrictVersionLock=true je volání odmítnuto, aby uložený soubor striktně odpovídal zvolené referenční specifikaci 1.3 / 1.4 / 1.5 / 1.6 / 1.7
- Prediktorové enkodéry PNG a TIFF pro obrazová data komprimovaná FlateDecode (PDF 1.7 7.4.4.4):
_PNGPredictorEncode používá heuristiku libpng minimum-absolute-difference (Predictor=15), _TIFFPredictor2Encode používá horizontální rozdíly (Predictor=2); dostupné od HotPDF v2.10.0
- Vstupní body Tagged PDF (PDF 1.7 14.7-14.8):
THotPDF.Lang vyplní /Lang v Catalog, EnableTaggedPDF emituje /MarkInfo <</Marked true>> a stub /StructTreeRoot a nové metody THPDFPage.BeginMarkedContent / BeginMarkedContentMCID / EndMarkedContent zapisují operátory BMC / BDC / EMC do content streamu; dostupné od HotPDF v2.11.0
- Axiální a radiální gradienty (PDF 1.7 7.10 / 8.7):
THotPDF.RegisterAxialGradient / RegisterRadialGradient sestaví celý stack Function Type 2 / Shading Type 2-3 / Pattern Type 2 a vrátí stabilní název vzoru; THPDFPage.SetFillPattern / SetStrokePattern jej nainstalují na stránku; počet složek počáteční a koncové barvy vybírá DeviceGray (1) / DeviceRGB (3) / DeviceCMYK (4); dostupné od HotPDF v2.13.0, vícekrokové axiální gradienty přes Function Type 3 jsou vystaveny pomocí RegisterMultiStopAxialGradient od v2.18.0
- Inline obrázky (PDF 1.7 8.9.7) přes
THPDFPage.DrawInlineImage; nezpracované bajty se automaticky zabalí pomocí ASCIIHex, pokud není dodán Filter, takže content stream zůstane 7bitově čistý; dostupné od HotPDF v2.18.0
- OutputIntents (PDF 1.7 14.11) přes
THotPDF.AddOutputIntent; každé volání připojí do Catalog slovník /Type /OutputIntent s volitelným /DestOutputProfile odkazujícím na registrovaný ICC profil; dostupné od HotPDF v2.18.0
- Automatické generování appearance streamů AcroForm (PDF 1.7 12.5.5 / 12.7.3.3 / 8.10): před přidáním interaktivních polí nastavte
THotPDF.AutoFormAppearances na true a HotPDF předem vytvoří Form XObject /Subtype /Form pro položku /AP /N každého widgetu (Yes / Off sub-dicts pro tlačítka), vyplní výchozí zdroje AcroForm /DR nepřímými slovníky písem Helvetica / ZapfDingbats a přepne /NeedAppearances na false, aby renderery respektovaly vložené streamy; dostupné od HotPDF v2.28.0
- ViewerPreferences /ViewArea a /ViewClip (PDF 1.4 12.2 Table 152) jsou nyní vystaveny přes vlastnosti
THotPDF.ViewArea / THotPDF.ViewClip (s odpovídajícími členy množiny vpViewArea / vpViewClip); obě přijímají hodnoty THPDFPageBoundary (MediaBox / CropBox / BleedBox / TrimBox / ArtBox) a doplňují pokrytí všech čtyř PDF 1.4 page-boundary ViewerPreferences v HotPDF; dostupné od HotPDF v2.29.0
- Přechody stránek (PDF 1.1 / 1.5 12.4.4):
THPDFPage.SetPageTransition zapisuje na stránku slovník /Trans, aby PDF čtečky v /PageMode /FullScreen animovaly navigaci; styly PDF 1.1 (Split, Blinds, Box, Wipe, Dissolve, Glitter, R) a PDF 1.5 (Fly, Push, Cover, Uncover, Fade) jsou vystaveny výčtem THPDFTransitionStyle; dostupné jsou také doprovodné volby /Dm, /M a /Di; THPDFPage.SetPageDuration zapisuje zpoždění automatického posunu /Dur v sekundách; dostupné od HotPDF v2.30.0
- Skupina průhlednosti na úrovni stránky (PDF 1.4 11.6.6 / 7.5.5):
THPDFPage.SetTransparencyGroup připojí slovník /Group (/Type /Group /S /Transparency), aby renderery předvídatelně skládaly obsah s alfa kanálem; barevný prostor zařízení zvolte výčtem THPDFGroupColorSpace (DeviceGray / DeviceRGB / DeviceCMYK nebo vynechat), případně volejte THPDFPage.SetTransparencyGroupICC s názvem ICC profilu dříve registrovaného přes THotPDF.RegisterICCProfile; volitelné příznaky /I (Isolated) a /K (Knockout) řídí kompozitor; THPDFPage.ClearTransparencyGroup odebere dříve připojenou položku; dostupné od HotPDF v2.32.0
- Inkrementální aktualizace (PDF 1.7 ISO 32000-1 7.5.6):
THotPDF.BeginIncrementalUpdate(SourceFile) načte existující PDF v append-only režimu; následná volání CreateIndirect* automaticky označí nové objekty jako dirty a THotPDF.MarkDirty(Obj) označí dříve načtené objekty k opětovnému emitování; THotPDF.SaveIncrementalUpdate(TargetFile) zapíše původní zdrojové bajty beze změny, připojí pouze dirty objekty se zachovanými čísly objektů, emituje novou xref podsekci a skončí trailerem s /Prev ukazujícím na předchozí xref; v kombinaci s pipeline AddSignedSignatureField + PreparePDFForSigning + InsertSignatureHex lze přidávat další podpisová pole do již podepsaného dokumentu bez zneplatnění předchozích podpisů; dostupné od HotPDF v2.35.0
- Normalizace názvu vloženého písma TrueType: HotPDF čte tabulku názvů vloženého TrueType a sladí
/BaseFont, /FontDescriptor /FontName, /FontFamily a názvy následných CID písem s PostScript názvem programu písma; tím se zabrání selháním Adobe Acrobat Font Capture způsobeným nesouladem mezi slovníkem písma v PDF a vloženým TTF payloadem; dostupné od HotPDF v2.35.1
- Subsetting písem TrueType (PDF 1.7 ISO 32000-1 9.6.4 / 9.8.2): nastavte
THotPDF.EnableFontSubsetting na true před BeginDoc a HotPDF přestaví vložený TrueType payload tak, aby obsahoval pouze glyphy skutečně použité v dokumentu; typické latinkové dokumenty dosahují přibližně 90% snížení velikosti vloženého písma (1 MB Arial -> ~70 KB u jedné řádky "Hello, world."); závislosti složených glyphů se sledují rekurzivně, číslování GID se zachovává a nový /BaseFont automaticky získá specifikací vyžadovaný šestimístný prefix s "+" (např. /BaseFont /AAAAAA+ArialMT); ve výchozím stavu vypnuto, zapněte explicitně pro ponechání plného vložení písem v editačních workflow; dostupné od HotPDF v2.36.0
- Subsetter Compact Font Format (CFF) (PDF 1.7 ISO 32000-1 9.7.4 / 9.9): doplněk k TrueType subsetteru pro OpenType-CFF (.otf, sfntVersion
OTTO) a písma Type 1 / Type 1C; exportovaná funkce jednotky HPDFSubsetCFF(CFFBytes, KeepGlyph) přestaví CharStrings INDEX tak, že neuchované glyphy nahradí minimálním 1bajtovým stubem endchar a zachová číslování GID bajtově shodně; dostupné od HotPDF v2.37.0
- Cesta vložení OpenType-CFF (.otf) zapojená do
StoreFont (PDF 1.6+ 9.7.4 Table 117): když binární písmo načtené přes GDI je kontejner sfnt OTTO, HotPDF subsetuje vloženou podtabulku 'CFF ' přes HPDFSubsetOTFContainer, emituje program písma přes /FontFile3 /Subtype /OpenType a zapíše slovník následného písma se /Subtype /CIDFontType0 místo /CIDFontType2; písma TrueType nadále procházejí stávající cestou /FontFile2 + /CIDFontType2 bez změny chování; dostupné od HotPDF v2.38.0
- End-to-end subsetting subrutin CFF (PDF 1.7 9.7.4 §6 / Adobe Tech Note #5177 §3.1): CFF subsetter nyní odstraňuje nepoužité položky z Global Subr INDEX i Local Subr INDEX; jeden průchod pevného bodu tranzitivně sleduje řetězce
callsubr (op 0x0A) a callgsubr (op 0x1D), takže se zachytí i CharString volající Local Subr, který volá Global Subr a další Local Subr; každá nepoužitá položka je nahrazena 1bajtovým stubem return a INDEX se přepíše na místě s nulováním zbylého prostoru; chování je vystaveno přes veřejné pomocníky HPDFSubsetCFF a HPDFSubsetOTFContainer; dostupné od HotPDF v2.39.0
- Subsetting CID-keyed CFF (PDF 1.7 ISO 32000-1 9.7.4 / Adobe Tech Note #5176 §18-19): CFF subsetter nyní rozpozná operátor Top DICT
ROS (12-30), který označuje CID-keyed OpenType-CFF písmo, projde INDEX FDArray (12-36) slovníků Font DICT a jejich soukromé Local Subr INDEXy a zachová pouze subrutiny dosažitelné z uchovaných glyphů; tím se zmenšují také velká CJK OpenType-CFF písma, nikoli jen jednoduchá latinková písma; dostupné od HotPDF v2.40.0
- Object Streams (PDF 1.5 ISO 32000-1 7.5.7): nastavte
THotPDF.UseObjectStreams na true společně s UseXRefStream a SaveToStream zabalí způsobilé nepřímé objekty (vše kromě streamů, šifrovacího slovníku a trailerem odkazovaných slovníků Catalog a Info) do /Type /ObjStm streamů komprimovaných FlateDecode; funkce je odmítnuta, pokud StrictVersionLock brání výstupu PDF 1.5; dostupné od HotPDF v2.41.0
- Obrázek se soft maskou / SMask (PDF 1.4 ISO 32000-1 8.9.5.4):
THotPDF.AddImageWithSMask(Width, Height, RGB, Alpha) emituje barevný Image XObject a 8bitový DeviceGray soft-mask Image XObject a automaticky propojí křížový odkaz /SMask, takže každý pixel může nést plnou průhlednost po kanálu místo binárního limitu starší cesty /ImageMask; pohodlné přetížení THotPDF.AddImageWithSMask32(Bitmap32) vytáhne RGB a alfa roviny z 32bitového BGRA TBitmap; obě místa volání procházejí přes RequirePDFVersion(pdf14); dostupné od HotPDF v2.42.0
- Vykreslování neobarveného Tiling Pattern (PDF 1.7 ISO 32000-1 8.6.6.1):
THotPDF.RegisterTilingPattern emituje /PaintType 1 i /PaintType 2 od v2.19.0, ale sekvence operátorů na straně stránky byla správná jen pro obarvenou variantu; šest nových metod THPDFPage - SetFillPatternRGB / SetStrokePatternRGB / SetFillPatternGray / SetStrokePatternGray / SetFillPatternCMYK / SetStrokePatternCMYK - nyní řídí neobarvenou cestu automatickou registrací odpovídajícího tónovacího barevného prostoru [/Pattern /BaseCS] v Resources/ColorSpace stránky a emitováním specifikací vyžadované sekvence tint_components /Pn scn; pro obarvenou variantu, kde dlaždice nese vlastní barvu, používejte původní SetFillPattern / SetStrokePattern; dostupné od HotPDF v2.43.0
- Barevný prostor CIELab (PDF 1.3+ ISO 32000-1 8.6.5.3):
THotPDF.RegisterLabColorSpace(Xw, Yw, Zw, aMin, aMax, bMin, bMax) sestaví inline pole barevného prostoru [/Lab << /WhitePoint /BlackPoint /Range >>], uloží je pod automaticky generovaný název (Lab1, Lab2, ...) a vrátí tento název pro běžnou pipeline THPDFPage.SetFillColorSpace / SetStrokeColorSpace + SetFillColor([L, a, b]) / SetStrokeColor([L, a, b]); pro tiskové workflow ICC vložte iluminant D50 [0.9505, 1.0, 1.089], pro zobrazení ekvivalentní sRGB iluminant D65 [0.95047, 1.0, 1.08883]; dostupné od HotPDF v2.44.0
- Barevný prostor Separation pro spotové barvy (PDF 1.3+ ISO 32000-1 8.6.6.4):
THotPDF.RegisterSeparation(ColorantName, AlternateCS, TintC1) deklaruje jednosložkový spotový inkoust, jehož jediný operand odstínu v [0..1] řídí interně vytvořenou lineární transformaci odstínu Function Type 2; vrácený název (Sep1, Sep2, ...) použijte v běžné pipeline SetFillColorSpace / SetStrokeColorSpace + SetFillColor([tint]) / SetStrokeColor([tint]); AlternateCS přijímá DeviceGray, DeviceRGB nebo DeviceCMYK; názvy inkoustů se mezerami HotPDF escapuje na #20 podle PDF 1.7 7.3.5; dostupné od HotPDF v2.45.0
- Appearance streamy AcroForm pro víceřádkový a comb text (PDF 1.7 ISO 32000-1 12.7.4.3): když je
THotPDF.AutoFormAppearances zapnuto, textová pole s Flags obsahujícími ffMultiline dostanou zalamovaný /AP /N Form XObject (Td + T* + /TL, respektující oddělovače CR / LF / CRLF a ořezávající na viditelný počet řádků); pole s ffComb a kladným MaxLen vykreslují každý znak do vlastní stejně široké buňky pomocí absolutní matice Tm; jednořádkové rozvržení z v2.28.0 zůstává bajtově zachováno; mezinárodní znaky v počáteční hodnotě stále padají na cestu přepočtu /NeedAppearances v prohlížeči; dostupné od HotPDF v2.46.0
- Unicode písmo AcroForm /AP (PDF 1.7 ISO 32000-1 12.7.2 + 12.7.4.3):
THotPDF.SetFormUnicodeFontDict(LogicalName, FontDict) registruje volajícím dodané kompozitní písmo Type 0 / CIDFontType2 + Identity-H ve výchozích zdrojích AcroForm /DR/Font; po registraci se AcroForm-level /DA, /DA každého Tx widgetu a stream /AP /N vytvořený AutoFormAppearances pro ne-ASCII počáteční hodnoty přepnou na logický název; THotPDF.CreateIndirectFontDict vrací nový prázdný THPDFDictionaryObject registrovaný jako nepřímý PDF objekt; prázdný LogicalName a nil FontDict vrátí chování /Helv; podpora ffMultiline ne-ASCII /AP je od v2.57.0, ffComb ne-ASCII /AP od v2.58.0 a vlastnost THotPDF.FormUnicodeRTL pro směr zprava doleva od v2.59.0
- Rich-text Tx widget AcroForm (PDF 1.5+ ISO 32000-1 12.7.4.3 + Annex L):
THPDFPage.AddRichTextField(FieldName, InitialValue, RichValue, DefaultStyle, Rectangle, [MaxLen], [Flags]) emituje textový widget s /RV (rich-text XHTML body), /DS (výchozí styl podobný CSS), automaticky OR nastaveným bitem 26 ffRichText v /Ff a plain-text fallbackem /V + /DV; Acrobat a Foxit vykreslují přímo z /RV, když je RichText bit zapnutý, a používají fallbacky písem z nainstalovaných Unicode písem čtečky; /V i /RV automaticky rozpoznají vícebajtový vstup a podle potřeby přepnou na UTF-16BE hex-string encoding; dostupné od HotPDF v2.55.0
- Barevný prostor DeviceN pro workflow s více spotovými inkousty (PDF 1.3+ ISO 32000-1 8.6.6.5):
THotPDF.RegisterDeviceN(ColorantNames, AlternateCS, TintC1Matrix) zobecňuje RegisterSeparation z jednoho spotového inkoustu na N; tint transform je PostScript-calculator Function Type 4 emitující lineární vážené prolnutí nad dodanou maticí N x M; vrací název barevného prostoru (DevN1, DevN2, ...) pro běžnou pipeline SetFillColorSpace + SetFillColor([t0, t1, ..., t_{N-1}]); AlternateCS přijímá DeviceGray, DeviceRGB nebo DeviceCMYK; názvy inkoustů se mezerami se escapují na #20 podle PDF 1.7 7.3.5 a zvláštní název None označuje nepoužitý slot colorantu; dostupné od HotPDF v2.47.0
- Volná trojúhelníková síť Gouraudova stínování (PDF 1.3+ ISO 32000-1 8.7.4.5.4):
THotPDF.RegisterFreeFormGouraudShading(XMin, YMin, XMax, YMax, NumComponents, Vertices) deklaruje stream /ShadingType 4 s /BitsPerCoordinate 16 + /BitsPerComponent 8 + /BitsPerFlag 8, zabalí jej jako inline položku Pattern Type 2 do slovníku Resources/Pattern stránky a vrátí automaticky generovaný název vzoru (Sh1, Sh2, ...) pro běžnou pipeline SetFillPattern / SetStrokePattern; každý vrchol je uložen jako 1 bajt příznaku, 2 big-endian bajty X, 2 big-endian bajty Y a NumComponents 8bitových barevných složek; dostupné od HotPDF v2.48.0
- Mřížková trojúhelníková síť Gouraudova stínování (PDF 1.3+ ISO 32000-1 8.7.4.5.5):
THotPDF.RegisterLatticeFormGouraudShading(XMin, YMin, XMax, YMax, NumComponents, VerticesPerRow, Vertices) deklaruje stream /ShadingType 5, který uspořádá vrcholy do mřížky M řádků x N sloupců a nechá renderer automaticky triangulovat dvojice sousedních řádků do triangle strip; na rozdíl od RegisterFreeFormGouraudShading zde není bajt příznaku pro každý vrchol a slovník stínování nese povinnou položku /VerticesPerRow N; použijte pro data již uložená na pravidelné vzorkovací mřížce; dostupné od HotPDF v2.49.0
- Coons patch mesh shading (PDF 1.3+ ISO 32000-1 8.7.4.5.6):
THotPDF.RegisterCoonsPatchMesh(XMin, YMin, XMax, YMax, NumComponents, Patches) deklaruje stream /ShadingType 6 Coonsových patchů, z nichž každý je ohraničen čtyřmi kubickými Bezierovými křivkami a nese jednu barvu na roh; renderer proloží Coonsovu plochu mezi čtyřmi hranami, což je užitečné pro fóliové a metalické gradienty na ohnutých cestách, gradient mesh odvozený ze SVG a zakřivené čtyřúhelníky, které by jinak vyžadovaly mnoho malých trojúhelníků; dostupné od HotPDF v2.50.0
- Barevný prostor Separation se vzorkovanou LUT transformací odstínu (PDF 1.3+ ISO 32000-1 8.6.6.4 + 7.10.2):
THotPDF.RegisterSeparationLUT(ColorantName, AlternateCS, Samples) obaluje RegisterSampledFunction, aby volající mohli vyjádřit plnou nelineární křivku tint -> alt-CS jako plochý bajtový stream 8bitových vzorků; variantu LUT použijte pro nelineární přechody barev, gamma-korigované hustotní křivky nebo ručně laděné tónové křivky; lineární případ s jedním koncovým bodem nadále pokrývá RegisterSeparation; dostupné od HotPDF v2.53.0
- Registrace Function Type 0 (Sampled) (PDF 1.3+ ISO 32000-1 7.10.2):
THotPDF.RegisterSampledFunction(Domain, Range, Size, BitsPerSample, Samples, [Order]) deklaruje nepřímý stream /FunctionType 0, který vyjadřuje libovolné mapování vstupu na výstup jako pravidelnou N-rozměrnou mřížku M-rozměrných výstupních vzorků interpolovaných mezi body mřížky; použijte tam, kde je mechanismus ICC profilů zbytečně těžký, ale je potřeba ručně laděná barevná LUT; BitsPerSample přijímá 1, 2, 4, 8, 12, 16, 24 nebo 32 podle PDF 1.7 Table 38; Order má výchozí hodnotu 1 a přijímá 3 pro cubic-spline interpolaci od v2.54.0; dostupné od HotPDF v2.52.0
- Tensor product patch mesh shading (PDF 1.3+ ISO 32000-1 8.7.4.5.7):
THotPDF.RegisterTensorProductPatchMesh(XMin, YMin, XMax, YMax, NumComponents, Patches) deklaruje stream /ShadingType 7 tensor-product patchů, z nichž každý je definován plnou mřížkou 4 x 4 bicubických Bezierových řídicích bodů p[i][j] a jednou barvou na roh; rozšiřuje RegisterCoonsPatchMesh (Type 6) přidáním čtyř explicitních vnitřních řídicích bodů, čímž poskytuje jemnější kontrolu vnitřku patche; touto verzí je pokryta celá rodina mesh shading ISO 32000-1 8.7.4.5 (Types 4 / 5 / 6 / 7); dostupné od HotPDF v2.51.0
- Styl rámečku anotace a propojení Popup (PDF 1.7 12.5.4 / 12.5.6.14):
THPDFPage.SetAnnotationBorderStyle(Annot, Width, Style, DashPattern) připojí slovník /BS se zvoleným THPDFAnnotBorderStyle (absSolid / absDashed / absBeveled / absInset / absUnderline); THPDFPage.AddPopupAnnotationFor(ParentAnnot, Rect, Open) emituje anotaci /Popup propojenou oběma směry, aby prohlížeč mohl vykreslit konektor bubliny; nová vlastnost THPDFPage.LastAnnotation napájí oba pomocníky beze změny signatur stávajících procedur Add*Annotation; dostupné od HotPDF v2.34.0
- Security Handler pro veřejný klíč (PDF 1.7 7.6.5):
THotPDF.EnablePubKeyEncryption(seed, KeyType, EncryptMetadata) + THotPDF.AddPubKeyRecipient(envelope) emitují šifrovací slovník /Filter /Adobe.PubSec (/SubFilter /adbe.pkcs7.s4 pro V=1 RC4-40 / /adbe.pkcs7.s5 pro V=2 RC4-128 / V=4 AESV2); volající dodává 20bajtový náhodný seed a jeden binární blob PKCS#7 envelopedData pro každého příjemce; HotPDF odvozuje šifrovací klíč souboru algoritmem 9 a znovu používá standardní odvozování klíče po objektech pro AES-128 / RC4 streamy; dostupné od HotPDF v2.33.0
Viz také
|