Собствено съответствие с RAD Studio
Използвайте познати Delphi и C++Builder проекти, пакети, потоци, формуляри и шаблони за чертане, вместо да обвивате отделен PDF двигател
HotPDF 2.200.2 за Delphi и C++Builder
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 за базова линия / разширени / дългосрочно валидиране, конвейер за подписване 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, 9 букви от арабските Presentation Forms-A), напълно функционален двигател за замяна OpenType GSUB, покриващ всеки LookupType 1-8 с избор на Script / LangSys и затваряне на TTF подмножество за заместващи глифове, поддръжка на контейнери XFA (XML Forms Architecture) (AddXFAPacket / ClearXFAPackets / XFAPacketCount), фамилия тригери за полета на формуляри AcroForm /AA /K + /F + /V + /C, регистрация на шрифтове с множество Unicode /DR чрез RegisterAcroFormFont, сетери на атрибути за достъпност на структурни елементи (/Lang / /E / /T) с enum за стандартен структурен тип от Table 333 и типизирано претоварване на AddStructureElement, както и свойства на маркирани последователности от съдържание в BeginTaggedContent
Цикълът v2.119.52-68 завърши автоматичния конвейер за оформяне Phase 8 и разшири обхвата на писменостите: арабски Extended-A (включително арабските Supplement U+0750-077F и арабските Extended-A U+08A0-08FF) и персийски / урду Form-B бяха разширени до пълната таблица на класове за свързване U+0672-06D5 плюс 26 нови съпоставяния на Forms-A, с последващо сгъване за LAM-ALEF, YEH-HAMZA + гласни двойки (8 лигатури в U+FBEA-FBFB), самостоятелната лигатура за Allah (U+FDF2) and фразата Bismillah от 22 кодови точки (U+FDFD), като новото незадължително свойство ShapingFeatures + enum THPDFShapingFeature (sfArabicGSUB / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) кара производителя да излъчва автоматично управлявани от GSUB специфични за шрифта замени rlig / liga / clig / rclt, като латинските стандартни лигатури (ff / fi / fl / ffi / ffl / ſt / st чрез U+FB00-FB06) и пренареждането на деванагари индийски срички (Repha + пред-основна I-matra) се присъединяват към същия конвейер, докато нови методи за оформяне на сирийски (GetSyriacJoiningClass / GetSyriacPosition), монголски (GetMongolianJoiningClass / GetMongolianPosition) и деванагари (GetDevanagariCategory / ApplyDevanagariReorder) позволяват на викащите да управляват неарабски сложни скриптове чрез същия GSUB двигател, GetCodepointAdvance разкрива кешираната em-фракция /W за изчисления на обвиване, а AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID позволяват на производителя да излъчва всеки заместващ GID на GSUB (форми на клъстери деванагари, стилистични алтернативи, вариационни последователности CJK) чрез кодови точки от Private-Use-Area с пълна интеграция /CIDToGIDMap + /ToUnicode + /W, като кумулативната ToUnicode CMap сега включва 35 записа за обратно съпоставяне на лигатури (8 от семейството LAM-ALEF + 18 от YEH-HAMZA + 1 Allah + 1 Bismillah + 7 латински), така че копирането/поставянето от страна на потребителя да възстановява изходните кодови точки, а скелетите на документацията за ChangeLog вече се доставят на 11 езика (EN / CN / AR / DE / ES / FR / IT / JA / KO / PT / RU) с потребителски интерфейс за избор на език, като лимитът за запазване на ChangeLog беше увеличен от 250 на 500 версии
Цикълът v2.152-v2.190 изгради завършен двигател за позициониране OpenType GPOS и разшири обхвата на сложни скриптове, като опциите за оформяне вече прилагат собствения кърнинг на шрифта (по двойки, контекстен и отдясно наляво), разполагане на комбиниращи маркировки (маркировка към основа, маркировка към маркировка и маркировка към лигатура за отделен компонент), анкери за курсивна връзка и вертикален кърнинг за вертикален текст, като всичко това е записано като стандартни PDF текстови оператори, така че всеки четец да възпроизвежда същия резултат, а оформянето от страна на производителя вече покрива арабски (включително блоковете Supplement, Extended-A и Extended-B), сирийски, монголски, нко, адлам, ханифи рохинга, тибетско натрупване на съгласни, деванагари и другите индийски писмености чрез веригата от функции Indic на шрифта, явански, подредба на маркировки за тайландски и лаоски, подредба на гласни за иврит, кхмерски, мианмарски, тай виет и мейтей майек, като фамилия от незадължителни типографски функции OpenType - стандартни, дискреционни и исторически лигатури, малки главни букви, цифри в стар стил / еднаква височина / пропорционални / таблични, горни индекси, долни индекси, ординали, дроби, научни долни индекси, числители, знаменатели, стилистични и контекстни алтернативи, локализирани форми, чувствителни към регистъра форми, зачертана нула и вертикални алтернативи - могат да се прилагат автоматично по време на текстовия изход, докато копирането, поставянето и текстовото търсене възстановяват оригиналните знаци в целия оформен изход, включително лигатури и верижни замени на функции, като изходът на шрифта също стана по-малък: вградените шрифтови програми винаги са компресирани с Flate, шрифт, използван на няколко страници, се вгражда веднъж на документ, етикетите на подмножествата се извеждат детерминирано за възпроизводим изход, а незадължителен компактен режим записва чист ASCII текст със стандартни шрифтове как невграден WinAnsi текст
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, ред на разделителите Tabs и вграждане/подмножества от шрифтове за TrueType, Type 3, CFF, OpenType-CFF и CID-keyed CFF шрифтове
Това е широк обхват с поддръжка на стандарти за поддържаната повърхност за създаване на HotPDF, а не общо твърдение, че всеки граничен случай в ISO 32000-1 е внедрен
Използвайте познати Delphi и C++Builder проекти, пакети, потоци, формуляри и шаблони за чертане, вместо да обвивате отделен PDF двигател
Създавайте PDF файлове с формуляри, анотации, слоеве, прозрачност, преходи на страници, маркирана структура, шифриране, контейнери за подписване и инкрементални актуализации
Намалете размера на PDF с компресия zlib-ng, изображения libjpeg-turbo, подмножества от TrueType, подмножества от OpenType-CFF и поддръжка на CID-keyed CFF за големи CJK шрифтове
Възможностите по-долу са ясни технически разграничители за HotPDF в сравнение с типичните Delphi PDF компоненти, като повечето конкурентни търговски компоненти или напълно липсват тези функции, или са значително по-слаби в производствени условия, а всеки ред съответства на проверимо внедряване и публична API повърхност в рамките на библиотеката
Напълно функционален двигател за замяна GSUB, покриващ всеки LookupType 1-8 (Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual), съчетан с двигател за позициониране GPOS, покриващ всички 9 LookupTypes (кърнинг по двойки / единичен / контекстен, маркировка към основа, маркировка към маркировка, маркировка към лигатура за отделен компонент на лигатура, курсивно прикачване, разстояние, вертикален vkrn/vpal), като цялото позициониране се излъчва със стандартни PDF текстови оператори, така че всеки четец да възпроизвежда съдържанието идентично
Над 20 скрипта се оформят от страна на производителя, управлявани от собствената верига от функции GSUB на шрифта: арабски (вкл. Supplement / Extended-A / Extended-B), сирийски, монголски, нко, адлам, ханифи рохинга, тибетско натрупване, деванагари и индийското семейство, явански, подредба на маркировки за тайландски / лаоски, подредба на гласни за иврит, кхмерски, мианмарски, тай виет, мейтей майек, като изходът съдържа пълно обратно съпоставяне /ToUnicode, така че копирането / поставянето да възстановява оригиналните кодови точки
ASN.1, RSA, AES, PKCS#12 разопаковане и CMS SignedData (RFC 5652) са внедрени изцяло в HotPDF, като SignPDFWithPFX подписва контейнерния PDF с едно повикване без среда за изпълнение на OpenSSL и без крипто доставчик на платформата - цялата верига за подписване живее във вашия процес, като е възпроизводима, подлежи на одит и има нула собствени двоични файлове за внедряване
Работните процеси PAdES B-B, B-T, B-LT и B-LTA са напълно покрити: времеви клейма RFC 3161, речници за дългосрочно валидиране DSS / VRI, подписи на времеви клейма за документи, ограничения на стойностите за семена (Seed Value) и XAdES-в-PDF, което е строгото изискване за съвместими с ЕС eIDAS електронни подписи, където повечето конкурентни компоненти спират до базово CMS подписване
Независимо ограничаване на профили за PDF/A-1/-2/-3, PDF/X-1a/-3/-4 и PDF/UA-1 едновременно - несъответстващите повиквания предизвикват диагностични изключения, вместо мълчаливо да записват несъвместими PDF файлове, като CreatePreflightReport излъчва отчети в текстов / JSON / HTML / CSV формат с INI профили, вградени предварителни настройки, групово агрегиране и вграждане на доказателства XMP, валидирани от край до край спрямо veraPDF
Работи върху PDF файла на диска, без да изгражда граф на обектите в паметта, като при документ от 2 GB с 1.67 милиона обекта: шифрирането с AES-256 отнема ~14 сек, дешифрирането ~16 сек, пълното пренаписване ~6 сек, а четенето на броя страници на документ от 1.25 GB отнема милисекунди, докато класическите xref таблици, XRef потоците, хибридните референтни файлове и инкрементално актуализираните документи остават на директния път
Шрифтовете TrueType, OpenType-CFF и CID-keyed CFF поддържат създаване на подмножества, като същевременно запазват идентификаторите на глифовете за текст Type0 / Identity-H, като CJK документите, които преди са вграждали 14 MB CID-keyed CFF програми, сега се доставят с размер от 500 KB до 2 MB без загуба на изобразени глифове, като вградените шрифтови програми винаги са компресирани с Flate, многостраничните шрифтове се вграждат веднъж на документ, а етикетите на подмножествата са детерминирани за възпроизводим изход
THPDFLogger + глобалният HPDFLog предоставят диагностична фасада, превключваема по време на изпълнение: филтриране по важност на Error / Warning / Info / Debug, едновременни цели за файлове + OutputDebugString + конзола, безопасни за нишки, единичен ролоувър на архив от 10 MB, бърз път за изключване без допълнително натоварване, като LoadFromFile, отчетите за предварителна проверка и пътят за откат към потока от обекти вече са свързани със структурирана диагностика, която може да се превключва по време на изпълнение без повторно компилиране - оперативно предимство, което повечето конкурентни компоненти напълно липсват
PDF бекенди за директна замяна за FastReport (TfrxHotPDFExport), QuickReport (TQRHotPDFExportFilter), ReportBuilder (TppHotPDFDevice) и DevExpress ExpressPrinting (покриващ cxGrid / cxRichEdit / cxScheduler / cxPivotGrid), при което съществуващите оформления на отчети продължават да работят - сменя се само PDF излъчвателят
Това са доставени възможности, а не обещания за бъдещи планове. Всеки елемент по-горе е внедрен в текущата библиотека, компилира се чисто и преминава DUnitX тестове плюс проверка от край до край с veraPDF, като при оценката на конкурентни компоненти изисквайте доказателства за пълно покритие на GSUB/GPOS LookupType, верига PAdES B-LTA в процеса и измерена пропускателна способност при шифриране на мултигигабайтови файлове
StrictVersionLockФамилията повиквания DAOpenFileReadOnly / DACopyFile / DASetDocumentInfo / DASaveAsFile и повикванията от файл към файл EncryptFile / DecryptFile работят директно върху PDF файла, вместо да изграждат граф на обектите в паметта, като при бенчмарк документ от 2 GB с 1.67 милиона обекта, шифрирането с AES-256 отнема около 14 секунди, дешифрирането около 16 секунди, а пълното пренаписване около 6 секунди, докато отварянето на документ с размер 1.25 GB за проверка на броя страници отнема милисекунди, като класическите таблици, потоците за кръстосани препратки, хибридните референтни файлове и инкрементално актуализираните документи остават на директния път
CreatePreflightReport и CreatePreflightReportWithProfile извършват одит на PDF файл спрямо поддържаните проверки за PDF/A, PDF/X и PDF/UA и излъчват отчети в текстов, JSON, HTML или CSV формат, с профили в стил INI за потискане на приети констатации - готови за CI прегради и групово приемане на документи, като демонстрацията PreflightCLI добавя рекурсивно изпълнение по папки и обобщени дашбордове
HasFormFields и FormFieldExists отговарят на въпроси относно формуляри в зареден PDF преди модифицирането му, като стойностите на полетата могат да се четат и записват по индекс или име, а FlattenFormFields вгражда интерактивните полета AcroForm в съдържанието на страницата и отчита колко полета са изравнени - наред с изравняването на XFA-към-AcroForm, което запазва възможността за използване на XFA формуляри във всеки четец
THotPDF.SignPDFWithPFX(InputPDF, OutputPDF, PFXFile, Password) подписва съществуващ контейнерен PDF с едно повикване, като пълният стек ASN.1, RSA, AES, PKCS#12 и CMS SignedData (RFC 5652) е внедрен изцяло в HotPDF, поради което не се изисква среда за изпълнение на OpenSSL или крипто доставчик на платформата
Работните процеси PAdES B-B, B-T, B-LT и B-LTA са покрити от край до край: създаване на подписи с времеви клейма RFC 3161, речници за дългосрочно валидиране DSS / VRI, подписи с времеви клейма на документи и ограничения на стойностите за семена (Seed Value), като XAdES-в-PDF и налагането на ограничения върху стойностите за семена на подписа са част от същата повърхност
HotPDF ограничава методите за функции спрямо профилите PDF/A-1 / -2 / -3, PDF/X-1a / -3 / -4 и PDF/UA-1, като повикванията, които биха нарушили избрания профил (прозрачност в PDF/A-1, JavaScript в PDF/A, външни анотации в PDF/X, немаркирана структура в PDF/UA) предизвикват диагностични изключения, вместо тихо да създават несъответстващи PDF файлове
PDF бекенди за директна замяна за четирите най-често срещани Delphi генератори на отчети: TfrxHotPDFExport (FastReport 4 / FastReport VCL), TQRHotPDFExportFilter (QuickReport), TppHotPDFDevice (ReportBuilder) и dxHotPDFExportReportLinkToFile/Stream (DevExpress ExpressPrinting System, покриваща cxGrid / cxRichEdit / cxScheduler / cxPivotGrid), при което съществуващите дефиниции на отчети работят без пренаписване на оформлението - сменя се само PDF излъчвателят
Незадължително позициониране на текст, управлявано от собствените GPOS данни на шрифта: кърнинг по двойки и контекстен за текст отляво наляво и отдясно наляво, позициониране маркировка към основа, маркировка към маркировка и за всеки компонент на лигатура, подравняване при влизане/излизане на курсив, позициониране по разстояние и вертикален кърнинг за вертикални шрифтове, като позиционирането се излъчва със стандартни PDF текстови оператори, така че всеки PDF четец да възпроизвежда същия резултат
Оформянето от страна на производителя изобразява правилно съединен и пренареден текст за арабски (включително блоковете Supplement, Extended-A и Extended-B), сирийски, монголски, нко, адлам, ханифи рохинга, тибетски, деванагари и останалите индийски писмености, явански, тайландски, лаоски, иврит, кхмерски, мианмарски, тай виет и мейтей майек, без да се разчита на модул за оформяне от страна на четеца, като всеки скрипт е незадължителен превключвател, така че съществуващият изход остава идентичен по байтове, докато не бъде активиран, а копирането/поставянето възстановява оригиналните знаци
Незадължителни превключватели за оформяне прилагат автоматично стандартни, дискреционни и исторически лигатури на шрифта, малки главни букви, цифри в стар стил / еднаква височина / пропорционални / таблични, горни индекси, долни индекси, ординали, дроби, научни долни индекси, числители, знаменатели, стилистични и контекстни алтернативи, локализирани форми, чувствителни към регистъра форми, зачертана нула и вертикални алтернативи по време на текстовия изход, като извличането на текст се съпоставя обратно към изходните знаци
Вградените шрифтови програми винаги са Flate компресирани, шрифт, използван на няколко страници, се вгражда веднъж за целия документ, а етикетите на подмножествата се извличат детерминистично от действително използваните глифове, така че повтарящите се изпълнения да произвеждат идентичен изход, докато незадължителен режим записва чист ASCII текст със стандартни шрифтове като компактен невграден WinAnsi текст, свивайки страница с обикновен текст от стотици килобайти до няколко килобайта
Оформянето от страна на производителя преобразува Unicode входните последователности в техните Presentation Forms преди излъчването на PDF текст, като арабският обхваща пълната таблица на съединителните класове U+0672-06D5 плюс над 40 съпоставяния на Forms-A, с автоматичен последващ пропуск за лигатури LAM-ALEF, YEH-HAMZA + гласни (U+FBEA-FBFB), Allah (U+FDF2) и Bismillah (U+FDFD), докато повърхностите с възможности за сирийски (GetSyriacJoiningClass), монголски (GetMongolianJoiningClass) и деванагари (GetDevanagariCategory / ApplyDevanagariReorder) позволяват на викащите програми да управляват сложни неарабски скриптове през същия GSUB двигател
Незадължителното свойство ShapingFeatures + enum THPDFShapingFeature (sfArabicGSUB / sfCursiveAttachment / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) издига двигателите OpenType GSUB и GPOS в автоматичен конвейер от страна на производителя, като собствените арабски init / medi / fina / isol, rlig, calt, rclt, GPOS курсивното прикачване, латинските liga / clig и индийското пренареждане на деванагари се извършват при излъчването на текста, с пълно обратно съпоставяне /ToUnicode за коректност при копиране / поставяне
Латинските стандартни лигатури (ff / fi / fl / ffi / ffl / ſt / st чрез U+FB00-FB06) се излъчват автоматично чрез ApplyLatinLigatureRefinement, когато е активирана опцията sfStandardLigatures, а за заместващи GIDs в GSUB без естествена Unicode кодова точка - клъстерни форми на деванагари, стилистични алтернативи, вариационни последователности CJK - методът AssignSyntheticCodepointForGID разпределя кодова точка от Private-Use-Area (U+E000-F8FF) с огледална интеграция /CIDToGIDMap + /W + /ToUnicode
Всеки OpenType GSUB LookupType 1-8 (Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual) е внедрен като повърхност за заявки само с възможности (GetSingleSubstituteGlyph, ApplyLigatureSubstitution, ApplyContextualSubst, ApplyReverseChainedContextualSubst и помощните модули Multiple / Alternate / Script / LangSys / Feature), като MarkUnicodeGlyphUsed издърпва всеки заместващ глиф в TTF подмножителя, така че вградените подмножества от шрифтове да останат самодостатъчни
/DRПакетните контейнери XFA според PDF 1.7 §12.7.6 / §12.7.8 се пренасят заедно със (или вместо) статичните /Fields чрез AddXFAPacket, като пълната фамилия тригери за полета на формуляри AcroForm (/AA /K Keystroke, /F Format, /V Validate, /C Calculate) е изложена като методи-обвивки, а RegisterAcroFormFont свързва множество Unicode шрифтове към единичен речник на ресурси /DR на AcroForm за многоезични компоненти на формуляри
THotPDF.EnableFontSubsetting създава подмножества за TrueType, OpenType-CFF и CID-keyed CFF шрифтове, като същевременно запазва идентификаторите на глифовете за текст Type0 / Identity-H, като CJK PDF файловете, които преди са вграждали 14 MB CID-keyed CFF програми, сега се доставят с размер от 500 KB до 2 MB, без да губят изобразени глифове
BeginIncrementalUpdate, SaveIncrementalUpdate, MarkDirty и API интерфейсите за контейнери за подписи поддържат инкрементални PDF актуализации само с добавяне и работни процеси с множество подписи, без да пренаписват по-рано подписани диапазони от байтове
GetSyriacJoiningClass / GetSyriacPosition), монголски (GetMongolianJoiningClass / GetMongolianPosition), деванагари (GetDevanagariCategory / ApplyDevanagariReorder) - управляват същия двигател GSUB за сложни неарабски писменостиShapingFeatures: sfArabicGSUB прилага собствени арабски init / medi / fina / isol плюс rlig / calt / rclt за излъчване на специфични за шрифта контекстни глифови IDs, sfCursiveAttachment прилага GPOS курсивни анкери, sfStandardLigatures / sfContextualLigatures излъчват латински liga / clig (FB00-FB06: ff / fi / fl / ffi / ffl / ſt / st), а sfIndicShaping пренарежда клъстерите деванагари (Repha + пред-основна I-matra) преди излъчванеMarkUnicodeGlyphUsed), покритие на Cmap формат 12 SMP, парсване на GDEF, автоматично излъчване на ToUnicode CMap с 35 записа за обратно съпоставяне на лигатури и търсене GetUnicodeGlyphForCodepoint за викащи програми, управляващи излъчването глиф по глифAssignSyntheticCodepointForGID / GetSyntheticCodepointForGID) позволява на производителите да излъчват всеки заместващ GID на GSUB (клъстерни форми на деванагари, стилистични алтернативи, вариационни последователности CJK) чрез Private Use Area U+E000-F8FF с огледална интеграция /CIDToGIDMap + /W, като GetCodepointAdvance излага кешираната em-фракция /W за изчисления на пренасянеvkrn / vpal, приложен към изхода на вертикален текст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/AA /K Keystroke, /F Format, /V Validate, /C Calculate) с един метод-обвивка на тригер, регистрация на шрифтове с множество Unicode /DR чрез RegisterAcroFormFont, поддръжка на XFA (XML Forms Architecture) контейнери (PDF 1.7 §12.7.6 / §12.7.8) с AddXFAPacket / ClearXFAPackets / XFAPacketCount and прегради за съответствие с PDF/A + PDF/X, плюс изравняване на XFA-към-AcroForm (ApplyXFAAsAcroForm за сурови XDP байтове, FlattenLoadedXFA за вграден формуляр в зареден PDF), което превръща статичния XFA в собствени полета AcroForm, стилове и графики на страници, така че формулярът да остане видим и попълваем в четци без двигател за XFABeginTaggedContent (/Lang / /Alt / /ActualText / /E), сетери на атрибути за структурни елементи (/Lang / /E / /T), enum за стандартен структурен тип от Table 333 (THPDFStandardStructureType) плюс типизирано претоварване на AddStructureElementТекущите версии на HotPDF използват zlib-ng в zlib-съвместим режим за включения Flate бекенд, като потоците на страници, потоците на вградени шрифтове, ToUnicode CMaps, Flate потоците от изображения, изходите, свързани с TIFF, и помощните модули FlateDecode се насочват през HotPDF zlib слоя
Компилациите за Win64x и диагностичните MSVC Win64 zlib-ng компилации включват диспечиране на процесора по време на изпълнение за пътеки 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 API, предоставено от HPDFJpeg.pas, като собствените компилации за Win32, Win64 и Win64x вече включват съответните NASM SIMD набори от обекти, а същият собствен JPEG бекенд е наличен за интеграционния слой на TIFF за работа с JPEG-компресиран TIFF
Мостът към средата за изпълнение на C в HPDFCLibs.pas вече насочва повикванията за malloc, free, realloc, calloc, memcpy, memmove и memset през слой, обърнат към Pascal, с 32-байтово подравнено разпределение за съвместими със SIMD собствени буфери
Хранилището съдържа скриптове за възпроизводимо изграждане на обекти: Lib\thirdparty\build-bcc32.bat, Lib\thirdparty\build-bcc64x.bat и Lib\thirdparty\build-vc64.bat за пълния набор от собствени C библиотеки, плюс скриптове само за zlib-ng за фокусирано преизграждане на компресията
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.
Lib: изходни единици на HotPDF, проекти за пакети, статични файлове с обекти и вградена интеграция на библиотеки на трети страниDemo\Delphi: Delphi примери за генериране на документи, чертане, изображения, настройка на страници, шифриране, работни процеси за сливане/редактиране и другиDemo\C++Builder: C++Builder примери, съгласувани с основните демонстрационни работни процеси на DelphiHtmlHelp: помощ за продукта и справочно съдържание за разработчици