|
PDF Filter Support
نظرة عامة
تحدد تدفقات PDF والصور المضمنة ترميزها عبر أسماء filters. يعمل HotPDF أساسًا مع عائلات filters التالية عند توليد المستندات أو فك ترميز المحتوى الخارجي
Common Filters
- FlateDecode: filter الضغط الرئيس للتدفقات المولدة ومسار فك الضغط الأساسي المعتمد على zlib
- LZWDecode: مدعوم لسيناريوهات التوافق والملفات القديمة عبر HPDFLZW.pas
- DCTDecode: يستخدم لبيانات صور JPEG القياسية التي تعالجها مسارات تحميل الصور في HotPDF
- CCITTFaxDecode: شائع في بيانات TIFF أحادية اللون وبيانات الصور ذات نمط fax
- ASCIIHexDecode / ASCII85Decode / RunLengthDecode: مساعدات ترميز مكشوفة في HPDFTypes.pas (
_ASCIIHexEncode, _ASCII85Encode, _RunLengthEncode) منذ HotPDF v2.4.0. تفيد عند تغليف محتوى ثنائي عشوائي لقنوات 7-bit أو لدعم round-trip صريح وفق PDF 1.7 7.4
- JBIG2Decode / JPXDecode: أسماء filters معرفة في PDF 1.7 7.4.7 / 7.4.9. مساعدات JBIG2 وJPEG 2000 المرفقة في HotPDF هي stubs تبلغ أن الدعم غير متاح (ترجع
False) إلى أن يتم ربط backend حقيقي لـ OpenJPEG / JBIG2. كانت الإصدارات الأقدم تعيد نجاحًا وهميًا 100×100 ينتج صورًا غير قابلة للقراءة، وقد تم تصحيح ذلك
ملاحظات عملية
- لا يتم كشف كل filter عبر API عام واحد؛ فبعضها يصل إليه عبر وحدات مساعدة مخصصة للصور أو التدفقات
- بالنسبة إلى محتوى PDF المولد تبقى THotPDF.Compression الإعداد المركزي الموجه للمستخدم
- عند تحميل بيانات خارجية يعتمد filter المطبق على تنسيق ملف المصدر والفئة المساعدة المستخدمة
- تجمع ملفات PDF المشفرة هذه filters مع security handler؛ راجع CryptKeyLength لخيارات AES‑128 (V=4 R=4 / CFM=AESV2) وRC4 (V=1/V=2) المدعومة
- تصدر حقول النماذج التفاعلية كتعليقات Widget يرسمها العارض؛ راجع AcroForm Support
- تعليقات text-markup مثل Highlight وUnderline وSquiggly وStrikeOut وروابط الانتقال داخل المستند (
GoTo, GoToR, Launch) مكشوفة كطرق THPDFPage.Add*Annotation / AddGoToLink / AddGoToRLink / AddLaunchLink منذ HotPDF v2.6.0
- يتوفر إخراج DeviceCMYK عبر
THPDFPage.SetCMYKColor / SetCMYKFillColor / SetCMYKStrokeColor؛ وتسجل colour spaces التي يديرها ICC عبر THotPDF.RegisterICCProfile وتطبق بواسطة SetFillColorSpace / SetStrokeColorSpace + SetFillColor / SetStrokeColor منذ HotPDF v2.7.0
- اضبط
THotPDF.UseXRefStream على true قبل الحفظ لإصدار تدفق cross-reference واحد مضغوط بـ FlateDecode من النوع /Type /XRef بدل تسلسل xref / trailer / startxref النصي (PDF 1.7 7.5.8)؛ متاح منذ HotPDF v2.8.0
- اضبط
THotPDF.EnableXMPMetadata على true لإرفاق تدفق XMP /Type /Metadata /Subtype /XML بالـ Catalog (PDF 1.7 14.3.2)؛ يبنى تلقائيًا من حقول Info dict أو يمكن تمرير packet مخصص عبر CustomXMP. متاح منذ HotPDF v2.9.0
- بوابات إصدار PDF لكل طريقة (منذ HotPDF v2.24.0). كل طريقة ميزة مضافة في v2.4.0+ تستشير
RequirePDFVersion قبل الإصدار؛ مع StrictVersionLock=false تتم ترقية Version تلقائيًا إلى الحد الأدنى المطلوب، ومع StrictVersionLock=true يرفض الاستدعاء حتى يظل الملف المحفوظ مطابقًا بدقة لمواصفة 1.3 / 1.4 / 1.5 / 1.6 / 1.7 المختارة
- مرمزات PNG وTIFF predictor لبيانات الصور المضغوطة بـ FlateDecode (PDF 1.7 7.4.4.4): يطبق
_PNGPredictorEncode heuristic الحد الأدنى للفروق المطلقة من libpng (Predictor=15)، ويطبق _TIFFPredictor2Encode الفروق الأفقية (Predictor=2). متاح منذ HotPDF v2.10.0
- نقاط دخول Tagged PDF (PDF 1.7 14.7-14.8): يملأ
THotPDF.Lang خانة /Lang في Catalog، ويصدر EnableTaggedPDF /MarkInfo <</Marked true>> وstub /StructTreeRoot، وتكتب طرق THPDFPage.BeginMarkedContent / BeginMarkedContentMCID / EndMarkedContent operators BMC / BDC / EMC في content-stream. متاح منذ HotPDF v2.11.0
- التدرجات axial وradial (PDF 1.7 7.10 / 8.7): تبني
THotPDF.RegisterAxialGradient / RegisterRadialGradient مكدس Function Type 2 / Shading Type 2-3 / Pattern Type 2 كاملًا وتعيد اسم pattern ثابتًا؛ وتثبته THPDFPage.SetFillPattern / SetStrokePattern على الصفحة. يختار عدد مكونات لون البداية/النهاية DeviceGray أو DeviceRGB أو DeviceCMYK. متاح منذ HotPDF v2.13.0؛ وتدرجات axial متعددة الوقفات عبر Function Type 3 مكشوفة من خلال RegisterMultiStopAxialGradient منذ v2.18.0
- الصور inline (PDF 1.7 8.9.7) عبر
THPDFPage.DrawInlineImage؛ تغلف البايتات الخام تلقائيًا بـ ASCIIHex عند عدم توفير Filter حتى يبقى content stream نظيفًا لـ 7-bit. متاح منذ HotPDF v2.18.0
- OutputIntents (PDF 1.7 14.11) عبر
THotPDF.AddOutputIntent؛ يضيف كل استدعاء قاموس /Type /OutputIntent إلى Catalog مع /DestOutputProfile اختياري يشير إلى ICC profile مسجل. متاح منذ HotPDF v2.18.0
- توليد appearance-stream تلقائيًا لـ AcroForm (PDF 1.7 12.5.5 / 12.7.3.3 / 8.10): اضبط
THotPDF.AutoFormAppearances على true قبل إضافة حقول النموذج التفاعلية، وسيبني HotPDF مسبقًا Form XObject /Subtype /Form لكل مدخل /AP /N خاص بالـ widget، ويملأ موارد AcroForm الافتراضية /DR بقواميس خطوط Helvetica / ZapfDingbats غير المباشرة، ويحول /NeedAppearances إلى false حتى تحترم العارضات التدفقات المضمنة. متاح منذ HotPDF v2.28.0
- أصبحت ViewerPreferences /ViewArea و/ViewClip (PDF 1.4 12.2 Table 152) مكشوفة عبر خصائص
THotPDF.ViewArea / THotPDF.ViewClip مع أعضاء المجموعة vpViewArea / vpViewClip. تقبل القيم THPDFPageBoundary وتكمل تغطية HotPDF لتفضيلات حدود الصفحة الأربعة في PDF 1.4. متاح منذ HotPDF v2.29.0
- انتقالات الصفحات (PDF 1.1 / 1.5 12.4.4): تكتب
THPDFPage.SetPageTransition قاموس /Trans على الصفحة كي تحرك عارضات PDF التنقل في /PageMode /FullScreen. تعرض THPDFTransitionStyle أنماط PDF 1.1 وPDF 1.5 وتعرض أيضًا خيارات /Dm و/M و/Di. تكتب THPDFPage.SetPageDuration تأخير التقدم التلقائي /Dur بالثواني. متاح منذ HotPDF v2.30.0
- مجموعة شفافية على مستوى الصفحة (PDF 1.4 11.6.6 / 7.5.5): تربط
THPDFPage.SetTransparencyGroup قاموس /Group حتى يركب العارض المحتوى ذي alpha بشكل متوقع. اختر device colour space عبر THPDFGroupColorSpace أو استخدم THPDFPage.SetTransparencyGroupICC مع اسم ICC profile مسجل سابقًا. تتحكم علامتا /I و/K الاختياريتان في compositor، وتزيل THPDFPage.ClearTransparencyGroup المدخل السابق. متاح منذ HotPDF v2.32.0
- التحديث التزايدي (PDF 1.7 ISO 32000-1 7.5.6): يحمل
THotPDF.BeginIncrementalUpdate(SourceFile) ملف PDF موجودًا في وضع append-only؛ وتعلّم استدعاءات CreateIndirect* اللاحقة الكائنات الجديدة dirty تلقائيًا، بينما يعلّم THotPDF.MarkDirty(Obj) الكائنات المحملة القديمة لإعادة إصدارها. يكتب THotPDF.SaveIncrementalUpdate(TargetFile) بايتات المصدر كما هي ثم يضيف فقط الكائنات dirty بأرقامها، وينهي بمقطع xref جديد وtrailer يحمل /Prev. اجمعه مع مسار التوقيع الحالي لإضافة توقيعات لاحقة من دون إبطال التوقيعات السابقة. متاح منذ HotPDF v2.35.0
- تطبيع أسماء خطوط TrueType المضمنة: يقرأ HotPDF جدول أسماء TrueType المضمن ويطابق
/BaseFont و/FontDescriptor /FontName و/FontFamily وأسماء descendant CID مع اسم PostScript في برنامج الخط، مما يتجنب فشل Adobe Acrobat Font Capture الناتج عن عدم التطابق. متاح منذ HotPDF v2.35.1
- تقسيم خط TrueType فرعيًا (PDF 1.7 ISO 32000-1 9.6.4 / 9.8.2): اضبط
THotPDF.EnableFontSubsetting على true قبل BeginDoc، وسيعيد HotPDF بناء حمولة TrueType المضمنة لتحتوي فقط على glyphs المستخدمة فعليًا، مع تتبع composite glyphs وحفظ GID numbering وإضافة بادئة six-letter+ المطلوبة إلى /BaseFont. متاح منذ HotPDF v2.36.0
- مقسم Compact Font Format (CFF) الفرعي (PDF 1.7 ISO 32000-1 9.7.4 / 9.9): مرافق لمقسم TrueType لـ OpenType-CFF (.otf, sfntVersion
OTTO) وخطوط Type 1 / Type 1C. تعيد الدالة HPDFSubsetCFF(CFFBytes, KeepGlyph) بناء CharStrings INDEX مع استبدال glyphs غير المحتفظ بها بـ stub endchar صغير مع حفظ GID numbering. متاح منذ HotPDF v2.37.0
- مسار تضمين OpenType-CFF (.otf) موصول في
StoreFont (PDF 1.6+ 9.7.4 Table 117). عندما يكون خط GDI المحمل حاوية sfnt OTTO، يقسم HotPDF جدول 'CFF ' المضمن عبر HPDFSubsetOTFContainer، ويصدر برنامج الخط عبر /FontFile3 /Subtype /OpenType، ويكتب قاموس descendant font مع /Subtype /CIDFontType0 بدل /CIDFontType2. تبقى TrueType fonts على مسار /FontFile2 + /CIDFontType2. متاح منذ HotPDF v2.38.0
- تقسيم CFF subroutines من البداية إلى النهاية (PDF 1.7 9.7.4 §6 / Adobe Tech Note #5177 §3.1): يزيل المقسم الإدخالات غير المستخدمة من Global Subr INDEX وLocal Subr INDEX، ويتبع سلاسل
callsubr وcallgsubr عابرًا حتى يغطي الاعتمادات. تستبدل كل entry غير مستخدمة بـ stub return من بايت واحد ويعاد كتابة INDEX في مكانه. هذا السلوك مكشوف عبر HPDFSubsetCFF وHPDFSubsetOTFContainer. متاح منذ HotPDF v2.39.0
- تقسيم CFF ذي CID-keyed (PDF 1.7 ISO 32000-1 9.7.4 / Adobe Tech Note #5176 §18-19): يتعرف المقسم على عامل Top DICT
ROS ويجتاز FDArray لكل Font DICT مع Private DICT وLocal Subr INDEX الخاص به، ويحفظ FDSelect كما هو. تتبع عملية closure سياق FD لكل CharString محتفظ به، وتدخل خطوط CJK / Indic / Arabic OTF في مسار التقسيم الكامل بدل تضمينها كما هي. متاح منذ HotPDF v2.40.0
- Object Streams (PDF 1.5 ISO 32000-1 7.5.7): اضبط
THotPDF.UseObjectStreams على true مع UseXRefStream، وستحزم SaveToStream الكائنات indirect المؤهلة في تدفقات /Type /ObjStm. يشير xref stream إلى الكائنات المحزومة عبر type-2 entries، مما يخفض حجم الملفات التي تضم قواميس صغيرة كثيرة. يعود الخيار إلى false عندما يكون UseXRefStream متوقفًا أو عندما تكون Version أقل من PDF 1.5. متاح منذ HotPDF v2.41.0
- صورة soft-mask / SMask (PDF 1.4 ISO 32000-1 8.9.5.4): يصدر
THotPDF.AddImageWithSMask(Width, Height, RGB, Alpha) صورة colour XObject مع صورة soft-mask DeviceGray بعمق 8-bit ويربط /SMask تلقائيًا، بحيث يحمل كل pixel شفافية كاملة لكل قناة بدل حد on/off في مسار /ImageMask. يوفر THotPDF.AddImageWithSMask32(Bitmap32) تضمين PNG-with-alpha باستدعاء واحد. متاح منذ HotPDF v2.42.0
- رسم Uncoloured Tiling Pattern (PDF 1.7 ISO 32000-1 8.6.6.1): تضيف طرق THPDFPage الست الجديدة SetFillPatternRGB / SetStrokePatternRGB / SetFillPatternGray / SetStrokePatternGray / SetFillPatternCMYK / SetStrokePatternCMYK مسار التلوين غير الملون عبر تسجيل colour space مطابق في Resources/ColorSpace وإصدار تسلسل scn المطلوب في المواصفة. استخدم SetFillPattern / SetStrokePattern للنوع الملون. متاح منذ HotPDF v2.43.0
- CIELab colour space (PDF 1.3+ ISO 32000-1 8.6.5.3): يبني
THotPDF.RegisterLabColorSpace مصفوفة colour space [/Lab << /WhitePoint /BlackPoint /Range >>] ويحفظها باسم تلقائي مثل Lab1 لاستخدامها مع مسار SetFillColorSpace / SetStrokeColorSpace. استخدم D50 للطباعة أو D65 للعرض، ثم ارسم بقيم L* وa* وb*. متاح منذ HotPDF v2.44.0
- Separation colour space للألوان الموضعية (PDF 1.3+ ISO 32000-1 8.6.6.4): يعلن
THotPDF.RegisterSeparation حبر spot أحادي المكون، ويعيد اسمًا مثل Sep1 لمسار SetFillColorSpace / SetStrokeColorSpace + SetFillColor([tint]) / SetStrokeColor([tint]). يقبل AlternateCS DeviceGray أو DeviceRGB أو DeviceCMYK، وتقبل أسماء Pantone ذات المسافات حيث يهربها HotPDF إلى #20. متاح منذ HotPDF v2.45.0
- تدفقات مظهر AcroForm للنص متعدد الأسطر وcomb (PDF 1.7 ISO 32000-1 12.7.4.3): عند تفعيل
THotPDF.AutoFormAppearances تحصل حقول النص ذات ffMultiline على Form XObject مع التفاف كلمات وتخطيط leading، وتحصل الحقول ذات ffComb وMaxLen موجب على خلية متساوية العرض لكل حرف. تبقى الأحرف الدولية في القيمة الأولية على مسار إعادة حساب /NeedAppearances في العارض. متاح منذ 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) registers a caller-supplied Type 0 / CIDFontType2 + Identity-H composite font in the AcroForm /DR/Font default-resources dict. Once registered, the AcroForm-level /DA, every Tx widget's /DA, and the /AP /N stream produced by AutoFormAppearances for non-ASCII Tx initial values all switch to the logical name; the Form XObject's /Resources/Font sub-dict also references the same indirect font so the AP is self-contained without depending on /DR resolution at render time. The companion helper THotPDF.CreateIndirectFontDict returns a fresh empty THPDFDictionaryObject registered as an indirect PDF object so callers can build custom font dicts (or any other dict requiring "N G R" indirect serialisation) without touching internal helpers. Pass empty LogicalName and nil FontDict to revert to the v2.46.0 ASCII-only /Helv behaviour. ASCII Tx fields continue to use /Helv with byte-identical output to v2.46.0 / v2.55.0. Multi-line + comb non-ASCII /AP and RTL bidi shaping (UAX #9 + Arabic contextual joining) remain future work. Available since HotPDF v2.56.0; ffMultiline non-ASCII /AP support (per-line UTF-16BE hex Tj with Td / T* / /TL leading and CJK-aware word-wrap) since v2.57.0; ffComb non-ASCII /AP support (per-CID equal-width absolute Tm cells + single-cell Tj per code point with UTF-16 surrogate-pair handling) since v2.58.0; THotPDF.FormUnicodeRTL property for right-to-left direction (reverses UTF-16 order in /AP Tj hex while keeping /V in logical order; caller pre-shapes Arabic to Unicode presentation forms U+FB50..U+FDFF + U+FE70..U+FEFF; full UAX #9 + automatic GSUB shaping pending) since v2.59.0.
- AcroForm rich-text Tx widget (PDF 1.5+ ISO 32000-1 12.7.4.3 + Annex L): تصدر
THPDFPage.AddRichTextField widget نصيًا مع /RV و/DS وعلم ffRichText وبديل /V + /DV. يعرض Acrobat وFoxit مباشرة من /RV عند تفعيل RichText، وتتحول المدخلات متعددة البايتات تلقائيًا إلى UTF-16BE hex-string عند الحاجة. متاح منذ HotPDF v2.55.0
- DeviceN colour space for multi-colorant spot-ink workflows (PDF 1.3+ ISO 32000-1 8.6.6.5):
THotPDF.RegisterDeviceN(ColorantNames, AlternateCS, TintC1Matrix) generalises RegisterSeparation from a single spot ink to N. The tint transform is a PostScript-calculator Function Type 4 emitting a linear weighted-blend over the supplied N x M matrix (row n column m is colorant n's contribution to AlternateCS channel m when colorant n is 1.0 alone). Returns a colour-space name (DevN1, DevN2, ...) that drives the regular SetFillColorSpace + SetFillColor([t0, t1, ..., t_{N-1}]) pipeline. AlternateCS accepts DeviceGray, DeviceRGB or DeviceCMYK; ink names with spaces are escaped to #20 per PDF 1.7 7.3.5; the special name None marks an unused colorant slot. Available since HotPDF v2.47.0.
- Free-form Gouraud-shaded triangle mesh (PDF 1.3+ ISO 32000-1 8.7.4.5.4):
THotPDF.RegisterFreeFormGouraudShading(XMin, YMin, XMax, YMax, NumComponents, Vertices) declares a /ShadingType 4 stream with /BitsPerCoordinate 16 + /BitsPerComponent 8 + /BitsPerFlag 8, wraps it in an inline Pattern Type 2 entry on the page Resources/Pattern dict, and returns the auto-generated pattern name (Sh1, Sh2, ...) for the regular SetFillPattern / SetStrokePattern pipeline. Each vertex is packed as 1 flag byte (always 0 for independent triangles) + 2 big-endian X bytes + 2 big-endian Y bytes + NumComponents 8-bit colour components. The NumComponents argument accepts 1 (DeviceGray), 3 (DeviceRGB) or 4 (DeviceCMYK); each vertex contributes 2 + NumComponents Extended values to Vertices in (X, Y, c1...cN) order; vertex count must be a multiple of 3. /Decode maps the 16-bit coordinates back to [XMin, XMax] x [YMin, YMax] and the colour components to [0, 1]. Type 5 (lattice), Type 6 (Coons patch) and Type 7 (tensor product) mesh shadings remain future work. Available since HotPDF v2.48.0.
- Lattice-form Gouraud-shaded triangle mesh (PDF 1.3+ ISO 32000-1 8.7.4.5.5): يعلن
THotPDF.RegisterLatticeFormGouraudShading تدفق /ShadingType 5 يرتب الرؤوس في شبكة M-row x N-column ويدع renderer يكوّن triangle strip تلقائيًا بين الصفوف. لا توجد flag byte لكل رأس، ويحمل القاموس /VerticesPerRow. مناسب للبيانات الشبكية المنتظمة مثل terrain وheatmaps. متاح منذ HotPDF v2.49.0
- Coons patch mesh shading (PDF 1.3+ ISO 32000-1 8.7.4.5.6): يعلن
THotPDF.RegisterCoonsPatchMesh تدفق /ShadingType 6 من Coons patches، كل patch محدد بأربع منحنيات cubic Bezier ويحمل لونًا في كل زاوية. يناسب التدرجات المعدنية وSVG mesh gradients وأي quad بحواف منحنية. متاح منذ HotPDF v2.50.0
- Separation colour space with sampled LUT tint transform (PDF 1.3+ ISO 32000-1 8.6.6.4 + 7.10.2):
THotPDF.RegisterSeparationLUT(ColorantName, AlternateCS, Samples) wraps RegisterSampledFunction so callers can express a full non-linear tint -> alt-CS curve as a flat byte stream of 8-bit (M-tuple) samples without manually constructing a Function Type 0 dictionary. Use the LUT variant when the colour transition is non-linear - PANTONE Hexachrome-style tint ramps, gamma-corrected density curves, hand-drawn tone curves matching a press characterisation, sRGB-to-spot conversion ICC LUTs without the full ICC profile machinery; the v2.45.0 RegisterSeparation entry point still covers the linear single-endpoint case. AlternateCS accepts DeviceGray, DeviceRGB or DeviceCMYK; Samples length must be a positive multiple of M with at least 2 * M bytes so the function has interpolable range, and the grid-point count S is inferred from Length(Samples) / M. Linear interpolation is the default per PDF 1.7 /Order 1. Returns the registered colour-space name (Sep1, Sep2, ...) for use with the regular SetFillColorSpace + SetFillColor([tint]) pipeline. Available since HotPDF v2.53.0.
- Function Type 0 (Sampled) registration (PDF 1.3+ ISO 32000-1 7.10.2):
THotPDF.RegisterSampledFunction(Domain, Range, Size, BitsPerSample, Samples, [Order]) declares an indirect /FunctionType 0 stream that expresses an arbitrary input-to-output mapping as a regular N-dimensional grid of M-dimensional output samples, interpolated between grid points. Use it where ICC profile machinery is overkill but a hand-tuned colour LUT is desired - tone curves for /TransferFunction (ExtGState /TR), sampled tint transforms for /Separation / /DeviceN beyond the linear Type 2 / arithmetic Type 4 paths, halftone threshold curves, or any other PDF construct that takes a Function dictionary. Domain is 2N entries (one [min, max] pair per input dimension); Range is 2M entries (one pair per output dimension); Size is N grid-point counts; BitsPerSample accepts 1, 2, 4, 8, 12, 16, 24, or 32 per PDF 1.7 Table 38; Samples is the raw bit-packed sample stream (MSB-first within each sample, no padding between samples beyond the final-byte zero-fill, with input 0 varying fastest per spec sample-order rules); Order defaults to 1 (linear) and accepts 3 (cubic-spline interpolation, since v2.54.0) per PDF 1.7 Table 38. HotPDF validates the sample-byte count against ceil(GridPoints * M * BitsPerSample / 8). Returns the indirect THPDFStreamObject so callers can attach it wherever a Function dictionary is expected. Available since HotPDF v2.52.0; cubic /Order 3 + end-to-end multi-input / multi-output coverage since v2.54.0.
- Tensor product patch mesh shading (PDF 1.3+ ISO 32000-1 8.7.4.5.7): يعلن
THotPDF.RegisterTensorProductPatchMesh تدفق /ShadingType 7 من patches معرفة بشبكة 4 x 4 كاملة من نقاط تحكم bicubic Bezier مع لون في كل زاوية. يمد RegisterCoonsPatchMesh بتحكم أدق في داخل patch، وبذلك تكتمل عائلة mesh shading في ISO 32000-1 8.7.4.5. متاح منذ HotPDF v2.51.0
- Annotation border style and Popup linkage (PDF 1.7 12.5.4 / 12.5.6.14):
THPDFPage.SetAnnotationBorderStyle(Annot, Width, Style, DashPattern) attaches a /BS dictionary with the chosen THPDFAnnotBorderStyle (absSolid / absDashed / absBeveled / absInset / absUnderline). THPDFPage.AddPopupAnnotationFor(ParentAnnot, Rect, Open) emits a /Popup annotation that is wired in both directions (parent /Popup -> popup, popup /Parent -> parent) so the viewer can render the speech-balloon connector. The new THPDFPage.LastAnnotation property feeds either helper without changing the signature of the existing Add*Annotation procedures. Available since HotPDF v2.34.0
- Public-Key Security Handler (PDF 1.7 7.6.5): يصدر
THotPDF.EnablePubKeyEncryption + THotPDF.AddPubKeyRecipient قاموس تشفير /Filter /Adobe.PubSec. يوفر المستدعي seed عشوائيًا بطول 20 بايت وblob PKCS#7 envelopedData لكل مستلم، ويبني HotPDF مفتاح تشفير الملف عبر algorithm 9 ويعيد استخدام اشتقاق المفاتيح القياسي لكل كائن لتدفقات AES-128 / RC4. متاح منذ HotPDF v2.33.0
انظر أيضا
|