HotPDF 2.200.2 برای Delphi و C++Builder

تولید بومی PDF، ویرایش، امضا، خروجی منطبق بر استانداردها، بهینه‌سازی فونت و تصویربرداری برای برنامه‌های RAD Studio

HotPDF به برنامه‌های VCL اجازه می‌دهد تا اسناد PDF را مستقیماً از کد Delphi یا C++Builder بدون نیاز به استقرار زمان اجرای PDF خارجی ایجاد، اصلاح، ایمن‌سازی، امضا، بهینه‌سازی، وارد، فشرده‌سازی و ذخیره کنند

نمای کلی پروژه

HotPDF یک کتابخانه کامپوننت PDF در سطح سورس برای Delphi و C++Builder است؛ این کتابخانه برای نرم‌افزارهای دسکتاپ ساخته شده است که به خروجی PDF قطعی، ترسیم مستقیم صفحه، یکپارچه‌سازی قوی با RAD Studio و استقرار فشرده نیاز دارند

این کامپوننت تولید روزمره PDF، مونتاژ پیشرفته سند، ویرایش PDF، خروجی‌های تصویرمحور سنگین، فرم‌ها، یادداشت‌ها، رمزگذاری، گردش‌های کاری امضا، بهینه‌سازی فونت و گردش‌های کاری مبتنی بر استریم را از یک رابط بومی واحد API پوشش می‌دهد

انتشارهای اخیر کتابخانه، HotPDF را از یک نویسنده کلاسیک PDF به یک جعبه ابزار بومی و گسترده‌تر PDF توسعه داده‌اند که دروازه ویژگی‌های اختصاصی نسخه PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7، رمزگذاری‌های منتخب PDF 2.0، انطباق با استانداردهای PDF/A-1 / -2 / -3 + PDF/X-1a / -3 / -4 + PDF/UA-1، امضاهای دیجیتال PAdES baseline / extended / long-term-validation، خط لوله امضای PFX / PKCS#12 درون‌فرآیندی مستقل از OpenSSL یا فایل‌های باینری بومی خارجی، ذخیره به‌روزرسانی‌های افزایشی، زیرمجموعه‌سازی فونت CFF / OpenType / CID-keyed CFF و آداپتورهای خروجی PDF برای FastReport، QuickReport، ReportBuilder و DevExpress ExpressPrinting را شامل می‌شود که گزارش‌های موجود خود را از طریق HotPDF به عنوان یک بک‌اند واحد PDF هدایت می‌کنند؛ یک Direct File API فایل‌های PDF چند گیگابایتی با میلیون‌ها شیء را به صورت فایل‌به‌فایل پردازش می‌کند - تعداد صفحات، کپی‌ها، بازنویسی اطلاعات سند و رمزگذاری یا رمزگشایی AES-256 - در چند ثانیه، و بارگذار اکنون اسناد بسته‌بندی شده در کانتینرهای انتقال با آفست‌های قدیمی و فایل‌های به‌روزرسانی شده تدریجی با اشیاء یتیم یا جایگزین‌شده را نیز بازیابی می‌کند

چرخه v2.119.32-51 شکل‌دهی عربی / فارسی / اردو در سمت تولیدکننده (اتصال اجباری LAM-ALEF، نویسه‌های ۹‌گانه Arabic Presentation Forms-A)، موتور جایگزینی کامل OpenType GSUB برای هر LookupType 1-8 با انتخاب Script / LangSys و بستار زیرمجموعه‌ساز TTF برای گلیف‌های جایگزین، پشتیبانی از کانتینر XFA (XML Forms Architecture) با (AddXFAPacket / ClearXFAPackets / XFAPacketCount)، خانواده تریگرهای فیلد فرم AcroForm شامل /AA /K + /F + /V + /C، ثبت فونت multi-Unicode /DR از طریق RegisterAcroFormFont، تنظیم‌کننده‌های ویژگی دسترسی ساختار-عنصر (/Lang / /E / /T) با یک نمونه شمارشی نوع ساختار استاندارد Table 333 و اورلود نوع‌دار AddStructureElement، و ویژگی‌های توالی محتوای نشان‌دار در BeginTaggedContent را اضافه کرد

چرخه v2.119.52-68 خط لوله شکل‌دهی خودکار Phase 8 را تکمیل کرد و پوشش خطوط را گسترش داد: Arabic Extended-A (شامل U+0750-077F Arabic Supplement و U+08A0-08FF Arabic Extended-A) و Persian / Urdu Form-B به جدول کلاس اتصال کامل U+0672-06D5 به همراه ۲۶ نگاشت جدید Forms-A، با تاخوردگی پس‌گذر برای LAM-ALEF، زوج‌های YEH-HAMZA + واکه (۸ اتصال در U+FBEA-FBFB)، اتصال مستقل لفظ جلاله Allah (U+FDF2) و عبارت ۲۲ کدپوینتی Bismillah (U+FDFD) گسترش یافتند؛ ویژگی جدید انتخابی ShapingFeatures + نمونه شمارشی THPDFShapingFeature شامل (sfArabicGSUB / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) باعث می‌شود تا تولیدکننده جایگزین‌های rlig / liga / clig / rclt مبتنی بر GSUB و مختص فونت را به طور خودکار صادر کند، به طوری که اتصالات استاندارد لاتین Latin Standard Ligatures (ff / fi / fl / ffi / ffl / ſt / st از طریق U+FB00-FB06) و تغییر ترتیب هجاهای هندی Devanagari شامل (Repha + pre-base I-matra) به همان خط لوله می‌پیوندند؛ متدهای جدید قابلیت شکل‌دهی برای سریانی (GetSyriacJoiningClass / GetSyriacPosition)، مغولی (GetMongolianJoiningClass / GetMongolianPosition) و دوانگاری (GetDevanagariCategory / ApplyDevanagariReorder) به فراخوان‌ها اجازه می‌دهند تا متون پیچیده غیرعربی را از طریق همان موتور GSUB هدایت کنند؛ متد GetCodepointAdvance کسر em کش‌شده برای /W را برای محاسبات پیچش متن افشا می‌کند، و AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID به تولیدکننده امکان می‌دهند هر GID جایگزین GSUB (اشکال کلاستر Devanagari، جایگزین‌های سبکی، توالی‌های تنوع CJK) را از طریق کدپوینت‌های Private-Use-Area با یکپارچگی کامل /CIDToGIDMap + /ToUnicode + /W صادر کند؛ نقشه انباشته ToUnicode CMap اکنون حاوی ۳۵ ورودی نگاشت معکوس اتصالات (۸ LAM-ALEF + ۱۸ از خانواده YEH-HAMZA + ۱ Allah + ۱ Bismillah + ۷ لاتین) است تا عملیات کپی/پیست خواننده-مصرف‌کننده کدپوینت‌های سورس را تولید کند؛ اسکلت مستندات ChangeLog اکنون به ۱۱ زبان (EN / CN / AR / DE / ES / FR / IT / JA / KO / PT / RU) با یک رابط کاربری انتخابگر زبان ارائه می‌شود؛ حد نگهداری بخش‌های نسخه ChangeLog نیز از ۲۵۰ به ۵۰۰ افزایش یافته است

چرخه v2.152-v2.190 یک موتور موقعیت‌دهی کامل OpenType GPOS را پیاده‌سازی کرد و پوشش خطوط پیچیده را گسترش داد؛ گزینه‌های انتخابی شکل‌دهی اکنون کرنینگ اختصاصی فونت (جفتی، سیاقی و راست‌به‌چپ)، قرارگیری علامت‌های ترکیبی (علامت به پایه، علامت به علامت و علامت به اتصال برای هر کامپوننت)، نقاط اتصال متصل و کرنینگ عمودی برای متن عمودی را اعمال می‌کنند که همگی به عنوان عملگرهای متنی استاندارد PDF نوشته شده‌اند تا هر خواننده‌ای نتیجه یکسانی را رندر کند؛ شکل‌دهی سمت تولیدکننده اکنون زبان عربی (شامل بلوک‌های Supplement، Extended-A و Extended-B)، سریانی، مغولی، N'Ko، آدلام، هانیفی روهینگیا، انباشت صامت‌های تبتی، دوانگاری و سایر خطوط هندی را از طریق زنجیره ویژگی‌های هندی فونت، جاوه‌ای، ترتیب علامت‌های تایلندی و لائو، ترتیب نقاط واکه‌ عبری، خمر، میانمار، تای ویت و میتی مایک پوشش می‌دهد؛ مجموعه‌ای از ویژگی‌های اختیاری تایپوگرافی OpenType - اتصالات استاندارد، اختیاری و تاریخی، حروف کوچک کوچک، اعداد قدیمی / خطی / متناسب / جدولی، بالانویس‌ها، زیرنویس‌ها، اعداد ترتیبی، کسرها، زیرنویس‌های علمی، صورت‌ها، مخرج‌ها، جایگزین‌های سبکی و سیاقی، اشکال بومی‌سازی شده، اشکال حساس به حروف کوچک و بزرگ، صفر خط‌خورده و جایگزین‌های عمودی - می‌تواند به طور خودکار در طول خروجی متن اعمال شود؛ کپی، پیست و جستجوی متن، کاراکترهای اصلی را در تمام خروجی‌های شکل‌دهی شده بازیابی می‌کنند، از جمله اتصالات و جایگزین‌های ویژگی‌های زنجیره‌ای؛ خروجی فونت نیز کوچک‌تر شده است: برنامه‌های فونت تعبیه‌شده همیشه فشرده‌شده با Flate هستند، فونت استفاده شده در چندین صفحه یک بار در هر سند تعبیه می‌شود، تگ‌های زیرمجموعه به صورت قطعی برای خروجی قابل تکرار مشتق می‌شوند و یک حالت فشرده اختیاری متن plain-ASCII را با فونت‌های استاندارد به عنوان متن WinAnsi غیرتعبیه‌شده می‌نویسد

پوشش استانداردهای PDF

HotPDF شامل پشتیبانی اختصاصی نسخه از ویژگی‌های کاربردی ایجاد PDF 1.3، PDF 1.4، PDF 1.5، PDF 1.6 و PDF 1.7 مورد استفاده در برنامه‌های تجاری، تصویربرداری، انتشار و اتوماسیون اسناد است؛ رابط‌های عمومی API با نسخه انتخاب شده PDF بررسی می‌شوند تا فایل‌های تولید شده در زمان نیاز به سازگاری دقیق، از ورودی‌های جدیدتر اجتناب کنند

ماتریس فعلی فیلترها و پیش‌بین‌ها، استریم‌های XRef، زنجیره‌های به‌روزرسانی افزایشی، رمزگذاری AES، امنیت کلید عمومی، رنگ‌های DeviceCMYK و ICCBased، الگوهای کاشی‌کاری، سایه‌زنی‌های محوری/شعاعی/چندایستگاهی، تصاویر درون‌برنامه‌ای، لایه‌ها، گروه‌های شفافیت، انتقال صفحات، یادداشت‌ها، ویجت‌های AcroForm، هوک‌های امضای خارجی، متادیتای XMP، درخت‌های ساختار یافته نشان‌دار PDF، مقادیر OutputIntents، باکس‌های صفحه تولید، تنظیمات ViewerPreferences، ویژگی UserUnit، ترتیب تب‌ها و تعبیه‌سازی/زیرمجموعه‌سازی فونت را برای فونت‌های TrueType، Type 3، CFF، OpenType-CFF و CID-keyed CFF پوشش می‌دهد

این یک پوشش گسترده و آگاه از استانداردهای ایجاد سند پشتیبانی شده در HotPDF است، نه یک ادعای همه‌جانبه مبنی بر اینکه تک‌تک موارد خاص در ISO 32000-1 پیاده‌سازی شده‌اند

چرا HotPDF را انتخاب کنیم

تناسب بومی با RAD Studio

به جای بسته‌بندی یک موتور PDF مجزا، از پروژه‌ها، پکیج‌ها، استریم‌ها، فرم‌ها و الگوهای ترسیم آشنای Delphi و C++Builder استفاده کنید

ویژگی‌های مدرن PDF

سندهای PDF را همراه با فرم‌ها، یادداشت‌ها، لایه‌ها، شفافیت، انتقال صفحات، ساختار نشان‌دار، رمزگذاری، نگه‌دارنده‌های جایگاه امضا و به‌روزرسانی‌های افزایشی بسازید

خروجی فشرده و سریع

کاهش حجم PDF با فشرده‌سازی zlib-ng، تصویربرداری libjpeg-turbo، زیرمجموعه‌سازی TrueType، زیرمجموعه‌سازی OpenType-CFF و پشتیبانی از CID-keyed CFF برای فونت‌های بزرگ CJK

نقاط قوت رقابتی

قابلیت‌های زیر تمایزهای فنی و جدی HotPDF نسبت به کامپوننت‌های معمولی PDF در Delphi هستند؛ اکثر کامپوننت‌های تجاری رقیب یا فاقد این ویژگی‌ها به طور کامل هستند یا در تولید به طور ملموسی ضعیف‌تر عمل می‌کنند؛ هر ردیف به یک پیاده‌سازی قابل تایید و یک سطح عمومی API در داخل کتابخانه نگاشت می‌شود

شکل‌دهی کامل OpenType و موقعیت‌دهی

یک موتور جایگزینی کامل GSUB که هر LookupType 1-8 را پوشش می‌دهد (تکی، چندگانه، جایگزین، اتصال، سیاقی، سیاقی زنجیره‌ای، توسعه، سیاقی زنجیره‌ای معکوس)، همراه با یک موتور موقعیت‌دهی GPOS که تمام ۹ نوع LookupTypes را پوشش می‌دهد (کرنینگ جفتی / تکی / سیاقی، علامت به پایه، علامت به علامت، علامت به اتصال برای هر کامپوننت اتصال، پیوست متصل، فاصله، vkrn/vpal عمودی)؛ تمام موقعیت‌دهی‌ها با عملگرهای متنی استاندارد PDF صادر می‌شوند، بنابراین هر خواننده‌ای خروجی یکسانی را رندر می‌کند

شکل‌دهی متون پیچیده در سمت تولیدکننده

شکل‌دهی بیش از ۲۰ نوع خط در سمت تولیدکننده، هدایت شده توسط زنجیره ویژگی‌های GSUB خود فونت: عربی (شامل Supplement / Extended-A / Extended-B)، سریانی، مغولی، N'Ko، آدلام، هانیفی روهینگیا، انباشت تبتی، دوانگاری و خانواده هندی، جاوه‌ای، ترتیب علامت‌های تایلندی / لائو، ترتیب واکه‌های عبری، خمر، میانمار، تای ویت، میتی مایک؛ خروجی حامل نگاشت معکوس کامل /ToUnicode است تا عملیات کپی/پیست کدپوینت‌های اصلی را بازیابی کند

پشته امضای درون‌فرآیندی، بدون وابستگی‌های خارجی

قالب‌زدایی ASN.1، RSA، AES، PKCS#12 و CMS SignedData (RFC 5652) همگی در داخل HotPDF پیاده‌سازی شده‌اند؛ متد SignPDFWithPFX یک PDF جای‌دار را در یک فراخوانی بدون نیاز به زمان اجرای OpenSSL و بدون ارائه‌دهنده رمزنگاری پلتفرم امضا می‌کند - کل زنجیره امضا در فرآیند شما قرار دارد، قابل تکرار و حسابرسی است و نیاز به استقرار هیچ فایل باینری بومی وجود ندارد

اعتبارسنجی طولانی‌مدت PAdES، سرتاسری

گردش‌های کاری PAdES B-B، B-T، B-LT و B-LTA به طور کامل پوشش داده شده‌اند: مهرهای زمانی RFC 3161 timestamps، دیکشنری‌های اعتبارسنجی طولانی‌مدت DSS / VRI، امضاهای مهر زمانی سند، محدودیت‌های Seed Value و XAdES-in-PDF؛ این یک نیاز جدی برای امضاهای الکترونیکی منطبق با استاندارد eIDAS اتحادیه اروپا است، در حالی که اکثر کامپوننت‌های رقیب در سطح امضای پایه CMS متوقف می‌شوند

انطباق سه‌محوره + Preflight

فیلتر پروفایل مستقل برای استانداردهای PDF/A-1/-2/-3، PDF/X-1a/-3/-4 و PDF/UA-1 به صورت همزمان - فراخوانی‌های غیرمنطبق به جای نوشتن بی‌سروصدا سندهای غیرسازگار، استثناهای تشخیصی ایجاد می‌کنند؛ متد CreatePreflightReport گزارش‌های متنی / JSON / HTML / CSV را همراه با پروفایل‌های INI، پیش‌فرض‌های داخلی، تجمیع دسته‌ای و تعبیه‌سازی شواهد XMP صادر می‌کند که به صورت سرتاسری در برابر veraPDF تایید شده‌اند

رابط برنامه‌نویسی Direct File API چند گیگابایتی

کار روی فایل PDF بر روی دیسک بدون نیاز به ساخت گراف اشیاء در حافظه؛ روی یک سند ۲ گیگابایتی با ۱.۶۷ میلیون شیء: رمزگذاری AES-256 حدود ۱۴ ثانیه، رمزگشایی حدود ۱۶ ثانیه، بازنویسی کامل حدود ۶ ثانیه؛ خواندن تعداد صفحات یک سند ۱.۲۵ گیگابایتی تنها چند میلی‌ثانیه زمان می‌برد؛ جدول‌های کلاسیک xref، استریم‌های XRef، فایل‌های مرجع ترکیبی و اسناد به‌روزرسانی شده تدریجی همگی در مسیر مستقیم باقی می‌مانند

زیرمجموعه‌سازی CFF / OpenType-CFF / CID

فونت‌های TrueType، OpenType-CFF و CID-keyed CFF همگی در حین حفظ شناسه گلیف‌ها برای متن Type0 / Identity-H قابل زیرمجموعه‌سازی هستند؛ اسناد CJK که قبلاً برنامه‌های ۱۴ مگابایتی CID-keyed CFF را تعبیه می‌کردند، اکنون بدون از دست رفتن هیچ گلیف رندر شده‌ای، با حجم ۵۰۰ کیلوبایت تا ۲ مگابایت عرضه می‌شوند؛ برنامه‌های فونت تعبیه‌شده همیشه با Flate فشرده می‌شوند، فونت‌های چندصفحه‌ای یک بار در هر سند تعبیه می‌شوند و تگ‌های زیرمجموعه برای خروجی قابل تکرار، به صورت قطعی تعیین می‌شوند

نمای یکپارچه لاگ‌گیری زمان اجرا

ویژگی THPDFLogger و بخش سراسری HPDFLog یک نمای تشخیصی قابل تنظیم در زمان اجرا ارائه می‌دهند: فیلتر کردن سطح اهمیت Error / Warning / Info / Debug، مقصدهای همزمان فایل + OutputDebugString + کنسول، ایمن در برابر ترد، پشتیبان‌گیری خودکار تک‌فایله ۱۰ مگابایتی، مسیر سریع غیرفعال بدون سربار؛ متد LoadFromFile، گزارش‌های preflight و مسیر جایگزین استریم اشیاء از قبل به تشخیص‌های ساختاریافته مجهز شده‌اند که بدون نیاز به بازسازی برنامه در زمان اجرا قابل تغییر هستند - قابلیت عملیاتی که اکثر کامپوننت‌های رقیب کاملاً فاقد آن هستند

آداپتورهای چهار موتور گزارش‌گیری

بک‌اندهای آماده PDF برای FastReport با (TfrxHotPDFExport)، QuickReport با (TQRHotPDFExportFilter)، ReportBuilder با (TppHotPDFDevice) و DevExpress ExpressPrinting شامل (cxGrid / cxRichEdit / cxScheduler / cxPivotGrid)؛ طرح‌های گزارش موجود به کار خود ادامه می‌دهند - تنها صادرکننده PDF تعویض می‌شود

این‌ها قابلیت‌های ارائه شده هستند، نه وعده‌های نقشه راه؛ تمام موارد فوق در کتابخانه فعلی پیاده‌سازی شده‌اند، بدون مشکل کامپایل می‌شوند و تست‌های DUnitX به همراه تاییدیه سرتاسری veraPDF را پاس می‌کنند؛ هنگام ارزیابی کامپوننت‌های رقیب، اثبات پوشش کامل GSUB/GPOS LookupType، زنجیره درون‌فرآیندی PAdES B-LTA و نرخ انتقال اندازه‌گیری شده رمزگذاری چند گیگابایتی را درخواست کنید

مزایای توسعه‌دهنده

  • یکپارچه‌سازی مبتنی بر سورس، عیب‌یابی و استقرار را تحت کنترل شما نگه می‌دارد
  • نمونه‌های مشترک Delphi و C++Builder بررسی رفتار را در هر دو محیط زبانی آسان‌تر می‌کنند
  • یکپارچه‌سازی استاتیک کتابخانه C شخص ثالث، وابستگی‌های فشرده‌سازی و تصویربرداری را قابل بازتولید نگه می‌دارد
  • رابط‌های کمکی متمرکز API فیلترهای PDF، الگوهای FlateDecode، LZW، CCITT، ماسک‌های تصویر، بارکدها، زیرمجموعه‌سازی فونت و جریان‌های کاری محتوای صفحه را پوشش می‌دهند
  • دروازه‌های نسخه PDF می‌توانند به طور خودکار نسخه خروجی را ارتقا دهند یا انطباق دقیق با نسخه‌های PDF 1.3/1.4/1.5/1.6/1.7 را از طریق StrictVersionLock اعمال کنند
  • پروژه‌های پکیج آماده استفاده Delphi و C++Builder نسل‌های فعلی RAD Studio از جمله 13.1 Florence را پوشش می‌دهند

نکات برجسته اخیر کتابخانه

رابط برنامه‌نویسی Direct File API چند گیگابایتی

خانواده متدهای DAOpenFileReadOnly / DACopyFile / DASetDocumentInfo / DASaveAsFile و فراخوانی‌های فایل‌به‌فایل EncryptFile / DecryptFile به جای ساخت گراف اشیاء در حافظه، مستقیماً روی فایل PDF کار می‌کنند؛ در یک سند معیار ۲ گیگابایتی با ۱.۶ثانیه میلیون شیء، رمزگذاری AES-256 حدود ۱۴ ثانیه، رمزگشایی حدود ۱۶ ثانیه و بازنویسی کامل حدود ۶ ثانیه زمان می‌برد؛ باز کردن یک سند ۱.۲۵ گیگابایتی برای دریافت تعداد صفحات آن تنها چند میلی‌ثانیه طول می‌کشد؛ جدول‌های کلاسیک، استریم‌های ارجاع متقاطع، فایل‌های مرجع ترکیبی و اسناد به‌روزرسانی شده تدریجی همگی در مسیر مستقیم باقی می‌مانند

گزارش‌های Preflight

متدهای CreatePreflightReport و CreatePreflightReportWithProfile یک PDF را در برابر بررسی‌های پشتیبانی شده PDF/A، PDF/X و PDF/UA ممیزی می‌کنند و گزارش‌های متنی، JSON، HTML یا CSV را همراه با پروفایل‌های سبک INI برای نادیده گرفتن یافته‌های پذیرفته‌شده صادر می‌نمایند - آماده برای دروازه‌های CI و ورود دسته‌ای اسناد؛ دمو PreflightCLI قابلیت اجرای پوشه‌های بازگشتی و داشبوردهای تجمیعی را اضافه می‌کند

جعبه ابزار فرم اسناد بارگذاری شده

متدهای HasFormFields و FormFieldExists قبل از هرگونه تغییر، به سوالات مربوط به فرم‌های یک PDF بارگذاری شده پاسخ می‌دهند، مقادیر فیلدها را می‌توان بر اساس ایندکس یا نام خواند و نوشت، و FlattenFormFields فیلدهای تعاملی AcroForm را در محتوای صفحه ادغام کرده و تعداد فیلدهای مسطح شده را گزارش می‌دهد - در کنار مسطح‌سازی XFA-به-AcroForm که فرم‌های XFA را در هر خواننده‌ای قابل استفاده نگه می‌دارد

امضای PFX / PKCS#12 درون‌فرآیندی

فراخوانی THotPDF.SignPDFWithPFX(InputPDF, OutputPDF, PFXFile, Password) یک PDF جای‌دار موجود را در یک فراخوانی امضا می‌کند؛ پشته کامل ASN.1، RSA، AES، PKCS#12 و CMS SignedData (RFC 5652) در داخل HotPDF پیاده‌سازی شده است، بنابراین نیازی به زمان اجرای OpenSSL یا ارائه‌دهنده رمزنگاری پلتفرم وجود ندارد

اعتبارسنجی طولانی‌مدت PAdES

گردش‌های کاری PAdES B-B، B-T، B-LT و B-LTA به صورت سرتاسری پوشش داده شده‌اند: ایجاد امضا با مهرهای زمانی RFC 3161، دیکشنری‌های اعتبارسنجی طولانی‌مدت DSS / VRI، امضاهای مهر زمانی سند و محدودیت‌های Seed Value؛ پیاده‌سازی استاندارد XAdES-in-PDF و اعمال مقدار Seed Value امضا بخشی از همین سطح هستند

انطباق با استانداردهای PDF/A، PDF/X و PDF/UA

HotPDF متدهای ویژگی‌ها را در برابر پروفایل‌های PDF/A-1 / -2 / -3، PDF/X-1a / -3 / -4 و PDF/UA-1 فیلتر می‌کند؛ فراخوانی‌هایی که پروفایل انتخاب شده را نقض می‌کنند (شفافیت در PDF/A-1، جاوااسکریپت در PDF/A، یادداشت‌های خارجی در PDF/X، ساختار بدون تگ در PDF/UA) به جای تولید بی‌سروصدای فایل‌های غیرمنطبق، استثناهای تشخیصی ایجاد می‌کنند

آداپتورهای موتور گزارش‌گیری شخص ثالث

بک‌اندهای آماده PDF برای چهار موتور رایج گزارش‌گیری Delphi شامل TfrxHotPDFExport (نسخه‌های FastReport 4 / FastReport VCL)، TQRHotPDFExportFilter (مربوط به QuickReport)، TppHotPDFDevice (مربوط به ReportBuilder) و dxHotPDFExportReportLinkToFile/Stream (مربوط به سیستم DevExpress ExpressPrinting System که cxGrid / cxRichEdit / cxScheduler / cxPivotGrid را پوشش می‌دهد)؛ گزارش‌های موجود به کار خود ادامه می‌دهند - تنها صادرکننده PDF تعویض می‌شود

موتور موقعیت‌دهی OpenType GPOS

موقعیت‌دهی انتخابی متن هدایت‌شده توسط داده‌های GPOS خود فونت: کرنینگ جفتی و سیاقی برای متون چپ‌به‌راست و راست‌به‌چپ، قرارگیری علامت به پایه، علامت به علامت و قرارگیری علامت برای هر جزء اتصال، تراز ورودی/خروجی شکسته، موقعیت‌دهی فاصله و کرنینگ عمودی برای فونت‌های عمودی؛ موقعیت‌دهی با عملگرهای متنی استاندارد PDF صادر می‌شود تا هر خواننده PDF نتیجه یکسانی را رندر کند

پوشش شکل‌دهی متون پیچیده

شکل‌دهی سمت تولیدکننده متون متصل و مرتب‌شده را برای عربی (شامل بلوک‌های Supplement، Extended-A و Extended-B)، سریانی، مغولی، N'Ko، آدلام، هانیفی روهینگیا، تبتی، دوانگاری و سایر خطوط هندی، جاوه‌ای، تایلندی، لائو، عبری، خمر، میانمار، تای ویت و میتی مایک رندر می‌کند بدون اینکه به شکل‌دهنده سمت نمایشگر وابسته باشد؛ هر خط یک سوئیچ انتخابی است، بنابراین خروجی‌های موجود تا زمان فعال‌سازی به صورت بایت‌به‌بایت یکسان باقی می‌مانند و عملیات کپی/پیست کاراکترهای اصلی را بازیابی می‌کند

ویژگی‌های خودکار تایپوگرافی OpenType

سوئیچ‌های انتخابی شکل‌دهی، اتصالات استاندارد، اختیاری و تاریخی فونت، حروف کوچک کوچک، اعداد قدیمی / خطی / متناسب / جدولی، بالانویس‌ها، زیرنویس‌ها، اعداد ترتیبی، کسرها، زیرنویس‌های علمی، صورت‌ها، مخرج‌ها، جایگزین‌های سبکی و سیاقی، اشکال بومی‌سازی شده، اشکال حساس به حروف کوچک و بزرگ، صفر خط‌خورده و جایگزین‌های عمودی را به طور خودکار در حین خروجی متن اعمال می‌کنند، به طوری که استخراج متن به کاراکترهای اصلی نگاشت می‌شود

خروجی فونت فشرده

برنامه‌های فونت تعبیه‌شده همیشه با Flate فشرده می‌شوند، فونتی که در چندین صفحه استفاده می‌شود یک بار برای کل سند تعبیه می‌گردد و تگ‌های زیرمجموعه به صورت قطعی از گلیف‌های واقعی استفاده‌شده مشتق می‌شوند تا اجراهای مکرر خروجی یکسانی تولید کنند؛ یک حالت اختیاری متن plain-ASCII را با فونت‌های استاندارد به عنوان متن فشرده غیرتعبیه‌شده WinAnsi می‌نویسد که حجم یک صفحه از متن ساده را از چندصد کیلوبایت به چند کیلوبایت کاهش می‌دهد

شکل‌دهی چندخطی تولیدکننده

شکل‌دهی سمت تولیدکننده، ورودی‌های Unicode را قبل از صدور متن PDF به اشکال نمایشی Presentation Forms خود تا می‌کند؛ خط عربی جدول کامل کلاس اتصال U+0672-06D5 به همراه بیش از ۴۰ نگاشت Forms-A را با پس‌گذر اتصالات خودکار برای LAM-ALEF، زوج‌های YEH-HAMZA + واکه‌ها (U+FBEA-FBFB)، لفظ جلاله Allah (U+FDF2) و عبارت Bismillah (U+FDFD) پوشش می‌دهد؛ رابط‌های قابلیت برای سریانی (GetSyriacJoiningClass)، مغولی (GetMongolianJoiningClass) و دوانگاری (GetDevanagariCategory / ApplyDevanagariReorder) به فراخوان‌ها اجازه می‌دهند تا خطوط پیچیده غیرعربی را از طریق همان موتور GSUB هدایت کنند

خط لوله شکل‌دهی خودکار (فاز ۸)

ویژگی انتخابی ShapingFeatures + نمونه شمارشی THPDFShapingFeature شامل (sfArabicGSUB / sfCursiveAttachment / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) موتورهای OpenType GSUB و GPOS را به یک خط لوله خودکار در سمت تولیدکننده ارتقا می‌دهد؛ تبدیل‌های بومی عربی init / medi / fina / isol، عملگرهای rlig، calt، rclt، اتصال پیوسته GPOS، کدهای لاتین liga / clig و تغییر ترتیب هجاهای هندی Devanagari همزمان با صدور متن رخ می‌دهند، همراه با نگاشت معکوس کامل /ToUnicode برای صحت کپی/پیست

اتصالات استاندارد لاتین + کدپوینت مصنوعی PUA

اتصالات استاندارد لاتین (ff / fi / fl / ffi / ffl / ſt / st از طریق U+FB00-FB06) هنگام فعال بودن sfStandardLigatures به طور خودکار از طریق ApplyLatinLigatureRefinement صادر می‌شوند؛ برای GIDهای جایگزین GSUB بدون کدپوینت طبیعی Unicode - اشکال کلاستر Devanagari، جایگزین‌های سبکی، توالی‌های تنوع ایدئوگرافیک CJK - متد AssignSyntheticCodepointForGID یک کدپوینت در ناحیه استفاده خصوصی Private-Use-Area (U+E000-F8FF) را با یکپارچگی آینه‌ای /CIDToGIDMap + /W + /ToUnicode اختصاص می‌دهد

موتور جایگزینی OpenType GSUB

هر نوع OpenType GSUB LookupType 1-8 (تکی، چندگانه، جایگزین، اتصال، سیاقی، سیاقی زنجیره‌ای، توسعه، سیاقی زنجیره‌ای معکوس) به عنوان یک سطح جستجوی فقط قابلیت پیاده‌سازی شده است (شامل متدهای GetSingleSubstituteGlyph، ApplyLigatureSubstitution، ApplyContextualSubst، ApplyReverseChainedContextualSubst و بخش‌های کمکی Multiple / Alternate / Script / LangSys / Feature)؛ متد MarkUnicodeGlyphUsed هر گلیف جایگزین را به زیرمجموعه‌ساز TTF می‌کشد تا زیرمجموعه فونت‌های تعبیه‌شده خودکفا باقی بمانند

فرم‌های XFA + تریگرهای AcroForm + فونت multi-Unicode /DR

بسته‌های کانتینر XFA مطابق استاندارد PDF 1.7 §12.7.6 / §12.7.8 در کنار (یا به جای) مقادیر استاتیک /Fields از طریق AddXFAPacket منتقل می‌شوند؛ خانواده کامل تریگرهای فیلد فرم AcroForm شامل (/AA /K برای فشرده شدن کلید، /F برای فرمت، /V برای اعتبارسنجی، /C برای محاسبات) به عنوان متدهای بسته‌بندی ارائه شده‌اند، و RegisterAcroFormFont چندین فونت Unicode را به یک دیکشنری منابع AcroForm /DR برای ویجت‌های فرم چندزبانه متصل می‌کند

زیرمجموعه‌سازی فونت و فایل‌های PDF با خطوط CJK

متد THotPDF.EnableFontSubsetting فونت‌های TrueType، OpenType-CFF و CID-keyed CFF را با حفظ شناسه گلیف‌ها برای متن Type0 / Identity-H زیرمجموعه‌سازی می‌کند؛ اسناد CJK PDF که قبلاً برنامه‌های ۱۴ مگابایتی CID-keyed CFF را تعبیه می‌کردند، اکنون بدون از دست رفتن هیچ گلیف رندر شده‌ای، با حجم ۵۰۰ کیلوبایت تا ۲ مگابایت عرضه می‌شوند

ذخیره افزایشی چندامضایی

متدهای BeginIncrementalUpdate، SaveIncrementalUpdate، MarkDirty و رابط‌های برنامه‌نویسی نگهدارنده جایگاه امضا از به‌روزرسانی‌های فقط الحاقی PDF و گردش‌های کاری چندامضایی بدون نیاز به بازنویسی بایت‌های امضاشده قبلی پشتیبانی می‌کنند

پوشش ویژگی‌های پیشرفته PDF

  • دروازه‌های اختصاصی نسخه PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7 + رابط‌های برنامه‌نویسی منتخب PDF 2.0 برای Catalog، تنظیمات ViewerPreferences، یادداشت‌ها، جاوااسکریپت، فونت‌های Type0، نقشه‌های ToUnicode، شفافیت، لایه‌ها و رمزگذاری
  • دروازه‌های انطباق با PDF/A-1 / -2 / -3، PDF/X-1a / -3 / -4 و PDF/UA-1 که به جای نقض بی‌سروصدای پروفایل، درخواست ویژگی‌های غیرسازگار را رد می‌کنند
  • درخت‌های ساختار یافته نشان‌دار PDF همراه با نقشه‌های نقش، مقادیر StructParents، خروجی ParentTree و عناصر ساختاری برای گردش‌های کاری مبتنی بر دسترسی
  • ویژگی‌های OutputIntents، پروفایل‌های ICC، باکس‌های صفحه، چرخش، UserUnit، ترتیب تب‌ها، الگوهای کاشی‌کاری، مقدار آلفای ExtGState، حالت‌های آمیختگی، ترام‌ها (نوع ۱ / ۵ / ۶ / ۱۰ / ۱۶)، توابع انتقال و مراجع توابع تولید رنگ مشکی/حذف رنگ زیرین
  • تصاویر درون‌برنامه‌ای، گرادینت‌های محوری چندایستگاهی، گرادینت‌های شعاعی، مش‌های مثلثی سایه‌زنی‌شده گورو به صورت آزاد/مشبک، مش‌های پچ کوونز و پچ ضرب تنسوری، تصاویر سافت‌ماسک برای کانال آلفای پیکسل‌به‌پیکسل به سبک PNG و پرکننده‌های الگوی قابل استفاده مجدد
  • مقصدهای نام‌گذاری شده، پیش‌نمایش صفحات، استایل حاشیه سطح صفحه (رنگ، برجسته، کج)، ریجستری جاوااسکریپت نام‌گذاری شده در سطح سند و خانواده کامل فیلدهای اضافی شامل Line / PolyLine / Polygon با (زیرنویس، انتهای خط، هدف، افکت کادر)
  • شکل‌دهی خط عربی در سمت تولیدکننده، جدول کامل کلاس اتصال U+0672-06D5 به همراه بیش از ۴۰ نگاشت استاتیک Presentation Forms-A را با تاخوردگی اتصالات پس‌گذر برای LAM-ALEF، زوج‌های YEH-HAMZA + واکه (U+FBEA-FBFB)، اتصال لفظ جلاله Allah (U+FDF2) و عبارت Bismillah (U+FDFD) پوشش می‌دهد
  • سطح قابلیت شکل‌دهی چندخطی: سریانی (GetSyriacJoiningClass / GetSyriacPosition)، مغولی (GetMongolianJoiningClass / GetMongolianPosition)، دوانگاری (GetDevanagariCategory / ApplyDevanagariReorder) - هدایت همان موتور GSUB برای متون پیچیده غیرعربی
  • خط لوله شکل‌دهی خودکار فاز ۸ هدایت‌شده توسط ویژگی انتخابی ShapingFeatures: مقدار sfArabicGSUB بخش‌های بومی عربی init / medi / fina / isol به همراه rlig / calt / rclt را برای صدور شناسه‌های گلیف سیاقی و مختص فونت اعمال می‌کند، sfCursiveAttachment نقاط لنگر متصل GPOS را اعمال می‌کند، sfStandardLigatures / sfContextualLigatures اتصالات لاتین liga / clig شامل (FB00-FB06: ff / fi / fl / ffi / ffl / ſt / st) را صادر می‌کنند، و sfIndicShaping ترتیب کلاسترهای Devanagari شامل (Repha + pre-base I-matra) را قبل از صدور تغییر می‌دهد
  • موتور جایگزینی کامل OpenType GSUB برای (LookupType 1-8) همراه با انتخاب Script / LangSys، بستار زیرمجموعه‌ساز TTF با (MarkUnicodeGlyphUsed), پوشش Cmap format 12 SMP، تجزیه GDEF، صدور خودکار ToUnicode CMap با ۳۵ ورودی نگاشت معکوس اتصال، و جستجوی GetUnicodeGlyphForCodepoint برای فراخوان‌هایی که صدور گلیف‌به‌گلیف را هدایت می‌کنند
  • صدور کدپوینت مصنوعی PUA با (AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID) به تولیدکنندگان اجازه می‌دهد هر GID جایگزین GSUB (اشکال کلاستر Devanagari، جایگزین‌های سبکی، توالی‌های تنوع ایدئوگرافیک CJK) را از طریق ناحیه استفاده خصوصی U+E000-F8FF با یکپارچگی آینه‌ای /CIDToGIDMap + /W صادر کنند؛ متد GetCodepointAdvance کسر em کش‌شده برای /W را برای محاسبات پیچش متن افشا می‌کند
  • موتور موقعیت‌دهی OpenType GPOS پشت سوئیچ‌های انتخابی شکل‌دهی: کرنینگ جفتی، تکی و سیاقی (سیاقی / سیاقی زنجیره‌ای) برای متون چپ‌به‌راست و راست‌به‌چپ، قرارگیری علامت به پایه / علامت به علامت / علامت به اتصال با دقت مبتنی بر کامپوننت روی اتصالات، پیوست ورودی-خروجی متصل، موقعیت‌دهی فاصله، و کرنینگ عمودی vkrn / vpal اعمال شده در خروجی متن عمودی
  • شکل‌دهی متون پیچیده سمت تولیدکننده برای عربی Supplement / Extended-A / Extended-B، سریانی، مغولی، N'Ko، آدلام، هانیفی روهینگیا، انباشت تبتی، خانواده خطوط هندی از طریق زنجیره ویژگی‌های هندی فونت، جاوه‌ای، ترتیب علامت‌های تایلندی / لائو، ترتیب نقاط واکه‌ عبری، خمر، میانمار، تای ویت و میتی مایک، هر کدام پشت سوئیچ انتخابی خود همراه با نگاشت معکوس ToUnicode برای کپی/پیست
  • ویژگی‌های خودکار تایپوگرافی OpenType در حین خروجی متن: اتصالات liga / clig / dlig / hlig، حروف کوچک کوچک smcp / c2sc، استایل‌های عدد onum / lnum / pnum / tnum، موارد sups / subs / ordn / frac / sinf / numr / dnom، جایگزین‌های سبکی salt، جایگزین‌های سیاقی calt / rclt، اشکال بومی‌سازی شده locl، اشکال case، صفر خط‌خورده zero و جایگزین‌های عمودی vert / vrt2، همراه با جایگزینی‌های زنجیره‌ای برطرف‌شده به متن اصلی در ToUnicode CMap
  • بهینه‌سازی تعبیه‌سازی فونت: برنامه‌های فونت تعبیه‌شده همیشه فشرده، یک نسخه تعبیه‌شده در هر سند برای فونت‌های استفاده‌شده در چندین صفحه، تگ‌های زیرمجموعه قطعی برای خروجی قابل تکرار، و یک حالت اختیاری غیرتعبیه‌شده WinAnsi برای متن plain-ASCII با فونت‌های استاندارد
  • فیلدهای متنی AcroForm، لیست‌باکس‌ها، کامبوباکس‌ها، چک‌باکس‌ها، دکمه‌های رادیویی، اکشن‌های دکمه فشاری (شامل نسخه‌های گسترده Named / Hide / Show / ImportData / SubmitForm با کنترل کاربر بر روی /Flags)، فیلدهای امضا، و استریم‌های ظاهر تولید شده (چندخطی + شانه + Tx متن غنی + AP/ فونت CID)
  • خانواده تریگر فیلد فرم AcroForm شامل (/AA /K Keystroke، /F Format، /V Validate، /C Calculate) با یک متد بسته‌بندی به ازای هر تریگر؛ ثبت فونت multi-Unicode /DR از طریق RegisterAcroFormFont؛ پشتیبانی از کانتینر XFA (XML Forms Architecture) مطابق PDF 1.7 §12.7.6 / §12.7.8 با AddXFAPacket / ClearXFAPackets / XFAPacketCount و دروازه‌های انطباق PDF/A + PDF/X، به همراه مسطح‌سازی XFA-به-AcroForm شامل (ApplyXFAAsAcroForm برای بایت‌های خام XDP و FlattenLoadedXFA برای فرم تعبیه‌شده یک PDF بارگذاری شده) که XFA استاتیک را به فیلدهای بومی AcroForm، استایل‌دهی و گرافیک صفحه تبدیل می‌کند تا فرم در خواننده‌های بدون موتور XFA نیز قابل مشاهده و پر کردن باقی بماند
  • بخش دسترسی PDF نشان‌دار PDF/UA-1: ویژگی‌های توالی محتوای نشان‌دار §14.8.4 در BeginTaggedContent شامل (/Lang / /Alt / /ActualText / /E)، تنظیم‌کننده‌های ویژگی ساختار-عنصر (/Lang / /E / /T)، نمونه شمارشی استاندارد نوع ساختار Table 333 شامل (THPDFStandardStructureType) به همراه اورلود نوع‌دار AddStructureElement
  • پشتیبانی از یادداشت برای هایلایت‌ها، متن آزاد، لینک‌ها، پیوست‌های فایل، پاپ‌آپ‌ها، اصلاحات، واترمارک، رسانه‌های غنی، 3D / U3D / PRC، استایل‌های کادر، و پاپ‌آپ‌های نظرات لینک‌شده
  • امنیت رمز عبور استاندارد، هندلرهای امنیتی AES-128 / AES-256 security handlers، هشینگ PDF 2.0 R6، رمزگذاری کلید عمومی مبتنی بر گواهی گیرنده از طریق پاکت‌های PKCS#7 ارائه شده توسط فراخوان، و مدیریت امن باینری نام‌های فونت / رنگ‌های غیر ASCII
  • امضاهای دیجیتال PAdES B-B، B-T، B-LT و B-LTA همراه با مهرهای زمانی RFC 3161، دیکشنری‌های اعتبارسنجی طولانی‌مدت DSS / VRI، امضاهای مهر زمانی سند، محدودیت‌های Seed Value و XAdES-in-PDF
  • امضای PFX / PKCS#12 درون‌فرآیندی: پشته ASN.1، RSA، AES، PKCS#12 و CMS SignedData تعبیه شده در کتابخانه، یک PDF جای‌دار موجود را در یک فراخوانی بدون هیچ‌گونه وابستگی به OpenSSL یا رمزنگاری پلتفرم امضا می‌کند
  • بک‌اندهای آماده PDF برای FastReport 4 / FastReport VCL، QuickReport، ReportBuilder و سیستم DevExpress ExpressPrinting به طوری که تعاریف گزارش موجود بدون بازنویسی طرح‌های گزارش از طریق HotPDF صادر می‌شوند

پشته تصویربرداری و فشرده‌سازی با کارایی بالا

نسخه‌های فعلی HotPDF از zlib-ng در حالت سازگار با zlib برای بک‌اند تعبیه‌شده Flate استفاده می‌کنند؛ استریم‌های صفحه، استریم‌های فونت تعبیه‌شده، نقشه‌های ToUnicode CMap، استریم‌های تصویر Flate، خروجی‌های مرتبط با TIFF و بخش‌های کمکی FlateDecode از طریق لایه zlib در HotPDF هدایت می‌شوند

نسخه‌های Win64x و نسخه‌های تشخیصی MSVC Win64 zlib-ng شامل تخصیص پویای CPU در زمان اجرا برای مسیرهای SSE2، SSSE3، SSE4.1، SSE4.2، PCLMULQDQ و AVX2 همراه با حفظ مسیرهای جایگزین عمومی هستند؛ نسخه Win32 روی مجموعه اشیاء عمومی zlib-ng OMF از طریق bcc32c باقی می‌ماند، در حالی که اشیاء Win32 JPEG و TIFF همچنان از مسیر کلاسیک bcc32 OMF استفاده می‌کنند

جریان‌های کاری استاندارد JPEG از مجموعه اشیاء تعبیه‌شده libjpeg-turbo 3.1.90 از طریق رابط برنامه‌نویسی سازگار با libjpeg ارائه شده توسط HPDFJpeg.pas استفاده می‌کنند؛ نسخه‌های بومی Win32، Win64 و Win64x اکنون شامل مجموعه‌های شیء مربوطه NASM SIMD هستند و همان بک‌اند بومی JPEG برای مدیریت TIFF فشرده‌شده با JPEG در دسترس لایه یکپارچه‌ساز TIFF قرار دارد

پل زمان اجرای C در HPDFCLibs.pas اکنون توابع malloc، free، realloc، calloc، memcpy، memmove و memset را از طریق یک لایه متصل به Pascal حل می‌کند، همراه با تخصیص تراز ۳۲ بایتی برای بافرهای بومی سازگار با SIMD

مخزن شامل اسکریپت‌های ساخت شیء قابل بازتولید است: Lib\thirdparty\build-bcc32.bat، Lib\thirdparty\build-bcc64x.bat و Lib\thirdparty\build-vc64.bat برای مجموعه کامل کتابخانه بومی C، به همراه اسکریپت‌های اختصاصی zlib-ng برای بازسازی متمرکز فشرده‌سازی

مثال سریع Delphi

program HelloHotPDF;

uses
  System.SysUtils,
  HPDFDoc;

var
  PDF: THotPDF;
begin
  PDF := THotPDF.Create(nil);
  try
    PDF.AutoLaunch := False;
    PDF.FileName := 'HelloHotPDF.pdf';
    PDF.Compression := cmFlateDecode;
    PDF.EnableFontSubsetting := True;
    PDF.BeginDoc;
    PDF.CurrentPage.SetFont('Arial', [], 18);
    PDF.CurrentPage.TextOut(50, 50, 0, 'Hello HotPDF');
    PDF.EndDoc;
  finally
    PDF.Free;
  end;
end.

محتویات پکیج

موارد استفاده معمول