Nativní integrace s RAD Studio
Používejte známé projekty, balíčky, streamy, formuláře a kreslicí vzory Delphi a C++Builder namísto obalování samostatného PDF enginu
HotPDF 2.200.2 pro Delphi a C++Builder
HotPDF umožňuje VCL aplikacím vytvářet, upravovat, zabezpečovat, podepisovat, optimalizovat, importovat, komprimovat a ukládat PDF dokumenty přímo z kódu Delphi nebo C++Builder bez nutnosti nasazení externího PDF runtime
HotPDF je knihovna PDF komponent na úrovni zdrojového kódu pro Delphi a C++Builder; je navržena pro desktopový software, který vyžaduje deterministický PDF výstup, přímé kreslení na stránku, silnou integraci s RAD Studio a kompaktní nasazení
Tato komponenta pokrývá běžné generování PDF, pokročilé sestavování dokumentů, úpravy PDF, výstup s vysokým podílem obrázků, formuláře, anotace, šifrování, podepisování, optimalizaci písem a streamované pracovní postupy z jediného nativního API rozhraní
Nedávná vydání knihovny rozšířila HotPDF z klasického nástroje pro zápis PDF na širší nativní sadu nástrojů pro PDF, která pokrývá filtrování funkcí specifických pro verze PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7, vybrané šifrování PDF 2.0, shodu se standardy PDF/A-1 / -2 / -3 + PDF/X-1a / -3 / -4 + PDF/UA-1, digitální podpisy PAdES baseline / extended / long-term-validation, in-process PFX / PKCS#12 podepisování, které nezávisí na OpenSSL ani na externích nativních binárních souborech, ukládání přírůstkových aktualizací, subsetting písem CFF / OpenType / CID-keyed CFF a adaptéry pro export PDF pro FastReport, QuickReport, ReportBuilder a DevExpress ExpressPrinting, které směrují své stávající sestavy přes HotPDF jako jediný PDF backend; rozhraní Direct File API zpracovává vícesouborové PDF s miliony objektů o velikosti několika gigabajtů stylů file-to-file - počty stránek, kopie, přepisy informací o dokumentu a AES-256 šifrování nebo dešifrování - během několika sekund a zavaděč nyní také obnovuje dokumenty zabalené v přepravních kontejnerech s neplatnými offsety a přírůstkově aktualizované soubory s osiřelými nebo nahrazenými objekty
Cyklus v2.119.32-51 přidal tvarování arabštiny / perštiny / urdštiny na straně producenta (povinná ligatura LAM-ALEF, arabské prezentační formy-A o 9 písmenech), plně funkční OpenType GSUB substituční engine pokrývající každý LookupType 1-8 s výběrem Script / LangSys a uzavřením TTF subsetteru pro náhradní glyfy, podporu kontejneru XFA (XML Forms Architecture) (AddXFAPacket / ClearXFAPackets / XFAPacketCount), rodinu spouštěčů formulářových polí AcroForm /AA /K + /F + /V + /C, registraci písem s více Unicode /DR přes RegisterAcroFormFont, settery atributů přístupnosti strukturních prvků (/Lang / /E / /T) s výčtem standardních typů struktur Table 333 a typovaným přetížením AddStructureElement a vlastnosti sekvence označeného obsahu na BeginTaggedContent
Cyklus v2.119.52-68 dokončil automatickou pipeline tvarování Phase 8 a rozšířil pokrytí písem: Arabic Extended-A (včetně U+0750-077F Arabic Supplement a U+08A0-08FF Arabic Extended-A) a Persian / Urdu Form-B byly rozšířeny do plné tabulky spojovacích tříd U+0672-06D5 plus 26 nových mapování Forms-A s post-pass skládáním pro LAM-ALEF, dvojice YEH-HAMZA + samohláska (8 ligatur v U+FBEA-FBFB), samostatnou ligaturu Alláh (U+FDF2) a 22-kódovou frázi Bismillah (U+FDFD); nová volitelná vlastnost ShapingFeatures + výčet THPDFShapingFeature (sfArabicGSUB / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) způsobuje, že producent automaticky emituje substituce rlig / liga / clig / rclt specifické pro písmo na základě GSUB, přičemž do stejné pipeline se zapojují latinské standardní ligatury (ff / fi / fl / ffi / ffl / ſt / st přes U+FB00-FB06) and změna pořadí slabik dévanágarí (Repha + pre-base I-matra); nové metody schopnosti tvarování pro syrštinu (GetSyriacJoiningClass / GetSyriacPosition), mongolštinu (GetMongolianJoiningClass / GetMongolianPosition) a dévanágarí (GetDevanagariCategory / ApplyDevanagariReorder) umožňují volajícím řídit nearabská složitá písma přes stejný GSUB engine; GetCodepointAdvance vystavuje nacachovanou em-frakci /W pro výpočty zalamování a AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID umožňují producentovi emitovat jakýkoli náhradní GID z GSUB (tvary klastrů dévanágarí, stylistické alternace, sekvence variací CJK) přes kódové body Private-Use-Area s plnou integrací /CIDToGIDMap + /ToUnicode + /W; kumulativní ToUnicode CMap nyní obsahuje 35 reverzních mapovacích položek ligatur (8 LAM-ALEF + 18 rodiny YEH-HAMZA + 1 Alláh + 1 Bismillah + 7 latinských), takže kopírování/vkládání v klientské čtečce produkuje zdrojové kódové body; kostry dokumentace pro ChangeLog jsou nyní dodávány v 11 jazycích (EN / CN / AR / DE / ES / FR / IT / JA / KO / PT / RU) s uživatelským rozhraním pro výběr jazyka; limit pro uchovávání ChangeLog byl zvýšen ze 250 na 500 verzí
Cyklus v2.152-v2.190 vybudoval kompletní OpenType GPOS pozicovací engine a rozšířil pokrytí složitých písem; volitelné možnosti tvarování nyní aplikují vlastní kerning písma (párový, kontextový a zprava doleva), umisťování kombinačních značek (značka-k-základně, značka-ke-značce a značka-k-ligatuře pro jednotlivé komponenty), kotevní body kurzivního spojení a vertikální kerning pro vertikální text, vše zapsané jako standardní PDF textové operátory, takže jakákoli čtečka vykreslí stejný výsledek; tvarování na straně producenta nyní pokrývá arabštinu (včetně bloků Supplement, Extended-A a Extended-B), syrštinu, mongolštinu, N'Ko, adlam, hanifi rohingya, skládání tibetských souhlásek, dévanágarí a další indická písma prostřednictvím sady indických funkcí písma, javánštinu, řazení značek v thajštině a laoštině, řazení hebrejských vokálových bodů, khmerštinu, myanmarštinu, tai viet a meetei mayek; rodina volitelných typografických funkcí OpenType - standardní, diskreční a historické ligatury, kapitálky, starodávné / verzálkové / proporcionální / tabulkové číslice, horní indexy, dolní indexy, ordinály, zlomky, vědecké dolní indexy, čitatele, jmenovatele, stylistické a kontextové alternace, lokalizované formy, formy citlivé na velikost písmen, přeškrtnutá nula a vertikální alternace - může být automaticky aplikována během výstupu textu; kopírování, vkládání a vyhledávání textu obnovuje původní znaky ve veškerém tvarovaném výstupu, včetně ligatur a zřetězených substitučních funkcí; výstup písem se také zmenšil: vložené programy písem jsou vždy komprimovány metodou Flate, písmo použité na více stránkách se vloží do dokumentu pouze jednou, tagy podmnožin jsou odvozeny deterministicky pro reprodukovatelný výstup a volitelný kompaktní režim zapisuje čistý ASCII text se standardními písmy jako nevložený WinAnsi text
HotPDF obsahuje podporu specifickou pro verze pro praktické funkce vytváření PDF 1.3, PDF 1.4, PDF 1.5, PDF 1.6 a PDF 1.7 používané v podnikových aplikacích, zpracování obrazu, publikování a automatizaci dokumentů; veřejná API jsou kontrolována vůči vybrané verzi PDF, takže generované soubory se vyhýbají novějším položkám, když je vyžadována přísná kompatibilita
Současná matice pokrývá filtry a prediktory, streamy XRef, řetězce přírůstkových aktualizací, šifrování AES, zabezpečení veřejným klíčem, barvy DeviceCMYK a ICCBased, vzory dlaždicování, axiální/radiální/vícestupňové stínování, vložené obrázky, vrstvy, skupiny průhlednosti, přechody stránek, anotace, prvky AcroForm, externí háčky pro podepisování, metadata XMP, stromy tagovaných PDF struktur, OutputIntents, produkční boxy stránek, ViewerPreferences, UserUnit, pořadí karet a vkládání/subsetting písem pro TrueType, Type 3, CFF, OpenType-CFF a CFF s klíčem CID
Jedná se o široké pokrytí podporovaného rozhraní pro tvorbu v HotPDF v souladu se standardy, nikoli o paušální tvrzení, že je implementován každý hraniční případ v ISO 32000-1
Používejte známé projekty, balíčky, streamy, formuláře a kreslicí vzory Delphi a C++Builder namísto obalování samostatného PDF enginu
Vytvářejte PDF s formuláři, anotacemi, vrstvami, průhledností, přechody stránek, tagovanou strukturou, šifrováním, zástupnými symboly pro podpisy a přírůstkovými aktualizacemi
Zmenšete velikost PDF pomocí komprese zlib-ng, zpracování obrázků libjpeg-turbo, subsettingu TrueType, subsettingu OpenType-CFF a podpory CFF s klíčem CID pro velká písma CJK
Níže uvedené schopnosti představují zásadní technické odlišnosti HotPDF oproti typickým PDF komponentám pro Delphi; většina konkurenčních komerčních komponent tyto funkce buď zcela postrádá, nebo jsou v produkčním nasazení výrazně slabší; každý řádek odpovídá ověřitelné implementaci a veřejnému API rozhraní uvnitř knihovny
Kompletní substituční engine GSUB pokrývající každý LookupType 1-8 (Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual), spárovaný s pozicovacím enginem GPOS pokrývajícím všech 9 typů LookupType (párový / samostatný / kontextový kerning, značka-k-základně, značka-ke-značce, značka-k-ligatuře pro jednotlivé komponenty, kurzivní připojení, vzdálenost, vertikální vkrn/vpal); veškeré pozicování je emitováno pomocí standardních textových operátorů PDF, takže se vykresluje identicky v každé čtečce
Více než 20 písem tvarovaných na straně producenta, řízených vlastním řetězcem funkcí GSUB písma: arabština (včetně Supplement / Extended-A / Extended-B), syrština, mongolština, N'Ko, adlam, hanifi rohingya, skládání tibetských souhlásek, dévanágarí a rodina indických písem, javánština, řazení značek v thajštině / laoštině, řazení hebrejských vokálů, khmerština, myanmarština, tai viet, meetei mayek; výstup nese plné reverzní mapování /ToUnicode, takže kopírování/vkládání obnovuje původní kódové body
ASN.1, RSA, AES, rozbalování PKCS#12 a CMS SignedData (RFC 5652) jsou plně implementovány uvnitř HotPDF; SignPDFWithPFX podepisuje zástupné PDF jedním voláním bez OpenSSL runtime a bez systémového poskytovatele kryptografie - celý řetězec podepisování běží ve vašem procesu, je reprodukovatelný, auditovatelný a nevyžaduje nasazení žádných nativních binárních souborů
Pracovní postupy PAdES B-B, B-T, B-LT a B-LTA jsou plně pokryty: časová razítka RFC 3161, slovníky dlouhodobého ověřování DSS / VRI, podpisy časových razítek dokumentů, omezení Seed Value a XAdES-v-PDF; toto je přísný požadavek na elektronické podpisy splňující nařízení EU eIDAS, kde většina konkurenčních komponent končí u základního podepisování CMS
Nezávislé filtrování profilů pro PDF/A-1/-2/-3, PDF/X-1a/-3/-4 a PDF/UA-1 současně - nekompatibilní volání vyvolávají diagnostické výjimky namísto tichého zápisu nevyhovujících PDF; CreatePreflightReport generuje textové / JSON / HTML / CSV sestavy s profily INI, vestavěnými předvolbami, dávkovou agregací a vložením důkazů XMP, vše ověřeno end-to-end proti veraPDF
Pracuje s PDF na disku bez sestavování grafu objektů v paměti; na dokumentu o velikosti 2 GB s 1,67 miliony objektů: šifrování AES-256 trvá ~14 s, dešifrování ~16 s, plný přepis ~6 s; přečtení počtu stránek 1,25 GB dokumentu trvá milisekundy; klasické tabulky xref, streamy XRef, hybridní referenční soubory a přírůstkově aktualizované dokumenty zůstávají na přímé cestě
Písma TrueType, OpenType-CFF a CFF s klíčem CID jsou plně subsetovatelná při zachování ID glyfů pro text Type0 / Identity-H; dokumenty CJK, které dříve vkládaly 14 MB programy písem CFF s klíčem CID, nyní odcházejí s velikostí 500 KB - 2 MB bez ztráty vykreslených glyfů; vložené programy písem jsou vždy komprimovány metodou Flate, vícestránková písma se vkládají jednou na dokument a tagy podmnožin jsou deterministické pro reprodukovatelný výstup
THPDFLogger + globální HPDFLog poskytují za běhu přepínatelnou diagnostickou fasádu: filtrování závažnosti Error / Warning / Info / Debug, současný zápis do souboru + OutputDebugString + konzole, vláknově bezpečné, 10 MB rotace s jednou zálohou, rychlá cesta s nulovou režií při vypnutí; LoadFromFile, preflight sestavy a záložní cesta objektových streamů jsou již propojeny se strukturovanou diagnostikou, kterou lze přepínat za běhu bez opětovného sestavení - provozní schopnost, kterou většina konkurenčních komponent zcela postrádá
Snadno vyměnitelné PDF backendy pro FastReport (TfrxHotPDFExport), QuickReport (TQRHotPDFExportFilter), ReportBuilder (TppHotPDFDevice) a DevExpress ExpressPrinting (pokrývající cxGrid / cxRichEdit / cxScheduler / cxPivotGrid); stávající rozvržení sestav fungují dál - mění se pouze emitor PDF
Jedná se o dodané schopnosti, nikoli o sliby z plánu vývoje. Každá výše uvedená položka je implementována v aktuální knihovně, čistě se kompiluje a úspěšně prochází testy DUnitX a end-to-end validací veraPDF; při hodnocení konkurenčních komponent požadujte důkaz o plném pokrytí GSUB/GPOS LookupType, in-process řetězci PAdES B-LTA a měřené propustnosti šifrování pro vícesouborové dokumenty o velikosti několika gigabajtů
StrictVersionLockRodina DAOpenFileReadOnly / DACopyFile / DASetDocumentInfo / DASaveAsFile a volání EncryptFile / DecryptFile pracují přímo se souborem PDF namísto sestavování objektového grafu v paměti; na benchmarkovém dokumentu o velikosti 2 GB s 1,67 miliony objektů trvá šifrování AES-256 přibližně 14 sekund, dešifrování přibližně 16 sekund a úplný přepis přibližně 6 sekund; otevření dokumentu o velikosti 1,25 GB pro zjištění počtu stránek trvá milisekundy; klasické tabulky, streamy křížových odkazů, hybridní referenční soubory a přírůstkově aktualizované dokumenty zůstávají na přímé cestě
CreatePreflightReport a CreatePreflightReportWithProfile auditují PDF vůči podporovaným kontrolám PDF/A, PDF/X a PDF/UA a generují sestavy v textu, JSON, HTML nebo CSV, s profily ve stylu INI pro potlačení akceptovaných nálezů - připraveno pro CI a dávkový příjem dokumentů; demo PreflightCLI přidává rekurzivní spouštění složek a agregované řídicí panely
HasFormFields a FormFieldExists odpovídají na otázky týkající se formulářů v načteném PDF před manipulací s ním, hodnoty polí lze číst a zapisovat podle indexu nebo názvu a FlattenFormFields zažehluje interaktivní pole AcroForm do obsahu stránek a hlásí, kolik polí zploštil - společně se zploštěním XFA-na-AcroForm, které udržuje formuláře XFA použitelné v jakékoli čtečce
THotPDF.SignPDFWithPFX(InputPDF, OutputPDF, PFXFile, Password) podepisuje stávající zástupné PDF v jediném volání; celý zásobník ASN.1, RSA, AES, PKCS#12 a CMS SignedData (RFC 5652) je implementován uvnitř HotPDF, takže není vyžadován žádný OpenSSL runtime ani systémový poskytovatel kryptografie
Pracovní postupy PAdES B-B, B-T, B-LT a B-LTA jsou pokryty end-to-end: vytváření podpisů s časovými razítky RFC 3161, slovníky dlouhodobého ověřování DSS / VRI, podpisy časových razítek dokumentů a omezení Seed Value; XAdES-v-PDF a vynucování hodnot seed podpisu jsou součástí stejného rozhraní
HotPDF filtruje metody funkcí vůči profilům PDF/A-1 / -2 / -3, PDF/X-1a / -3 / -4 a PDF/UA-1; volání, která by narušila vybraný profil (průhlednost v PDF/A-1, JavaScript v PDF/A, externí anotace v PDF/X, netagovaná struktura v PDF/UA), vyvolávají diagnostické výjimky namísto tichého vytváření nevyhovujících PDF
Snadno vyměnitelné PDF backendy pro čtyři nejběžnější tiskové enginy pro Delphi: TfrxHotPDFExport (FastReport 4 / FastReport VCL), TQRHotPDFExportFilter (QuickReport), TppHotPDFDevice (ReportBuilder) a dxHotPDFExportReportLinkToFile/Stream (DevExpress ExpressPrinting System pokrývající cxGrid / cxRichEdit / cxScheduler / cxPivotGrid); stávající sestavy fungují dál - mění se pouze emitor PDF
Volitelné pozicování textu řízené vlastními daty GPOS písma: párový a kontextový kerning pro text zleva doprava a zprava doleva, umisťování značka-k-základně, značka-ke-značce a značka pro jednotlivé komponenty ligatur, kurzivní zarovnání vstupu/výstupu, pozicování vzdálenosti a vertikální kerning pro vertikální písma; pozicování je emitováno pomocí standardních textových operátorů PDF, takže každá čtečka PDF vykresluje stejný výsledek
Tvarování na straně producenta vykresluje správně spojený a přeuspořádaný text pro arabštinu (včetně bloků Supplement, Extended-A a Extended-B), syrštinu, mongolštinu, N'Ko, adlam, hanifi rohingya, tibetštinu, dévanágarí a další indická písma, javánštinu, thajštinu, laoštinu, hebrejštinu, khmerštinu, myanmarštinu, tai viet a meetei mayek bez spoléhání se na shaper na straně prohlížeče; každé písmo je volitelný přepínač, takže stávající výstup zůstává bajtově identický, dokud není povolen, a kopírování/vkládání obnovuje původní znaky
Volitelné přepínače tvarování automaticky aplikují standardní, diskreční a historické ligatury písma, kapitálky, starodávné / verzálkové / proporcionální / tabulkové číslice, horní indexy, dolní indexy, ordinály, zlomky, vědecké dolní indexy, čitatele, jmenovatele, stylistické a kontextové alternace, lokalizované formy, formy citlivé na velikost písmen, přeškrtnutou nulu a vertikální alternace během výstupu textu, přičemž extrakce textu je zpětně mapována na zdrojové znaky
Vložené programy písem jsou vždy komprimovány metodou Flate, písmo použité na více stránkách se vloží jednou pro celý dokument a tagy podmnožin jsou odvozeny deterministicky z reálně použitých glyfů, takže opakovaná spuštění produkují identický výstup; volitelný režim zapisuje čistý ASCII text se standardními písmy jako kompaktní nevložený WinAnsi text, čímž zmenší stránku čistého textu ze stovek kilobajtů na několik kilobajtů
Tvarování na straně producenta skládá Unicode vstupy do jejich prezentačních forem před emisí textu PDF; arabština pokrývá plnou tabulku spojovacích tříd U+0672-06D5 plus více než 40 mapování Forms-A, s automatickým post-passem ligatur pro LAM-ALEF, YEH-HAMZA + samohlásky (U+FBEA-FBFB), Alláh (U+FDF2) a Bismillah (U+FDFD); rozhraní funkcí pro syrštinu (GetSyriacJoiningClass), mongolštinu (GetMongolianJoiningClass) a dévanágarí (GetDevanagariCategory / ApplyDevanagariReorder) umožňují volajícím řídit nearabská složitá písma přes stejný GSUB engine
Volitelná vlastnost ShapingFeatures + výčet THPDFShapingFeature (sfArabicGSUB / sfCursiveAttachment / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) povyšuje enginy OpenType GSUB a GPOS na automatickou pipeline na straně producenta; nativní arabština init / medi / fina / isol, rlig, calt, rclt, GPOS kurzivní připojení, latinská liga / clig a reorientace slabik dévanágarí probíhají při emisi textu s plným reverzním mapováním /ToUnicode pro správnost kopírování/vkládání
Latinské standardní ligatury (ff / fi / fl / ffi / ffl / ſt / st přes U+FB00-FB06) jsou emitovány automaticky přes ApplyLatinLigatureRefinement, pokud je povoleno sfStandardLigatures; pro náhradní GID z GSUB bez přirozeného kódového bodu Unicode - tvary klastrů dévanágarí, stylistické alternace, CJK ideografické variační sekvence - alokuje AssignSyntheticCodepointForGID kódový bod Private-Use-Area (U+E000-F8FF) s zrcadlenou integrací /CIDToGIDMap + /W + /ToUnicode
Každý OpenType GSUB LookupType 1-8 (Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual) is implemented as a capability-only query surface (GetSingleSubstituteGlyph, ApplyLigatureSubstitution, ApplyContextualSubst, ApplyReverseChainedContextualSubst, and the Multiple / Alternate / Script / LangSys / Feature helpers); MarkUnicodeGlyphUsed stahuje každý náhradní glyf do TTF subsetteru, takže vložené podmnožiny písem zůstávají soběstačné
/DRKontejnerové pakety XFA podle PDF 1.7 §12.7.6 / §12.7.8 jsou přenášeny vedle (nebo místo) statických /Fields pomocí AddXFAPacket; celá rodina spouštěčů polí formuláře AcroForm (/AA /K stisk klávesy, /F formát, /V validace, /C výpočet) je vystavena jako obalovací metody a RegisterAcroFormFont váže více písem Unicode k jedinému slovníku prostředků AcroForm /DR pro vícejazyčné formulářové prvky
THotPDF.EnableFontSubsetting provádí subsetting písem TrueType, OpenType-CFF a CFF s klíčem CID při zachování ID glyfů pro text Type0 / Identity-H; PDF v jazycích CJK, která dříve vkládala 14 MB programy písem CFF s klíčem CID, nyní odcházejí s velikostí 500 KB - 2 MB bez ztráty jakýchkoli vykreslených glyfů
API BeginIncrementalUpdate, SaveIncrementalUpdate, MarkDirty a zástupné symboly podpisů podporují aktualizace PDF pouze pro připojení (append-only) a pracovní postupy s více podpisy bez přepisování dříve podepsaných rozsahů bajtů
GetSyriacJoiningClass / GetSyriacPosition), mongolštinu (GetMongolianJoiningClass / GetMongolianPosition), dévanágarí (GetDevanagariCategory / ApplyDevanagariReorder) - řídí stejný GSUB engine pro složitá nearabská písmaShapingFeatures: sfArabicGSUB aplikuje nativní arabské init / medi / fina / isol plus rlig / calt / rclt pro emisi kontextových ID glyfů specifických pro písmo, sfCursiveAttachment aplikuje kurzivní kotvy GPOS, sfStandardLigatures / sfContextualLigatures emitují latinské liga / clig (FB00-FB06: ff / fi / fl / ffi / ffl / ſt / st) a sfIndicShaping mění pořadí klastrů dévanágarí (Repha + pre-base I-matra) před emisíMarkUnicodeGlyphUsed), pokrytím Cmap format 12 SMP, parsováním GDEF, automatickou emisí ToUnicode CMap s 35 položkami reverzního mapování ligatur a vyhledáváním GetUnicodeGlyphForCodepoint pro volající, kteří řídí emisi glyf po glyfuAssignSyntheticCodepointForGID / GetSyntheticCodepointForGID) umožňuje producentům emitovat jakýkoli náhradní GID z GSUB (tvary klastrů dévanágarí, stylistické alternace, CJK ideografické variační sekvence) přes Private Use Area U+E000-F8FF se zrcadlenou integrací /CIDToGIDMap + /W; GetCodepointAdvance vystavuje nacachovanou em-frakci /W pro výpočty zalamovánívkrn / vpal aplikovaný na vertikální výstup textuliga / clig / dlig / hlig, kapitálky smcp / c2sc, styly číslic onum / lnum / pnum / tnum, sups / subs / ordn / frac / sinf / numr / dnom, stylistické alternace salt, kontextové alternace calt / rclt, lokalizované formy locl, formy case, přeškrtnutá nula zero a vertikální alternace vert / vrt2, s řetězenými substitucemi vyřešenými zpět na zdrojový text v ToUnicode CMap/AA /K stisk klávesy, /F formát, /V validace, /C výpočet) s jednou obalovací metodou na spouštěč; registrace písem s více Unicode /DR přes RegisterAcroFormFont; podpora kontejneru XFA (XML Forms Architecture) (PDF 1.7 §12.7.6 / §12.7.8) s AddXFAPacket / ClearXFAPackets / XFAPacketCount a filtry shody s PDF/A + PDF/X, plus zploštění XFA-na-AcroForm (ApplyXFAAsAcroForm pro syrové bajty XDP, FlattenLoadedXFA pro vložený formulář načteného PDF), které převádí statické XFA na nativní pole AcroForm, stylování a grafiku stránek, takže formulář zůstává viditelný a vyplnitelný ve čtečkách bez XFA enginuBeginTaggedContent (/Lang / /Alt / /ActualText / /E), settery atributů strukturních prvků (/Lang / /E / /T), výčet standardních typů struktur Table 333 (THPDFStandardStructureType) plus typované přetížení AddStructureElementAktuální sestavení HotPDF používají zlib-ng v režimu kompatibilním se zlib pro přibalený Flate backend; streamy stránek, streamy vložených písem, mapy ToUnicode CMaps, streamy Flate obrázků, výstupy související s TIFF a pomocné funkce FlateDecode jsou směrovány přes zlib vrstvu HotPDF
Sestavení zlib-ng pro Win64x a diagnostické MSVC Win64 obsahují běhové přidělování CPU pro instrukční sady SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ a AVX2 s ponecháním obecných záloh; Win32 zůstává na obecné sadě OMF objektů zlib-ng přes bcc32c, zatímco JPEG a TIFF objekty pro Win32 nadále používají klasickou cestu OMF bcc32
Standardní pracovní postupy JPEG používají přibalenou sadu objektů libjpeg-turbo 3.1.90 prostřednictvím rozhraní API kompatibilního s libjpeg vystaveného v HPDFJpeg.pas; nativní sestavení pro Win32, Win64 a Win64x nyní obsahují příslušné sady objektů NASM SIMD a stejný nativní JPEG backend je k dispozici pro integrační vrstvu TIFF pro zpracování JPEG komprimovaných TIFF
C runtime most v HPDFCLibs.pas nyní překládá malloc, free, realloc, calloc, memcpy, memmove a memset přes jednu vrstvu orientovanou na Pascal, s 32bajtovým zarovnáním alokace pro nativní vyrovnávací paměti podporující SIMD
Repozitář obsahuje reprodukovatelné skripty pro sestavení objektů: Lib\thirdparty\build-bcc32.bat, Lib\thirdparty\build-bcc64x.bat a Lib\thirdparty\build-vc64.bat pro celou sadu nativních C knihoven, plus skripty pouze pro zlib-ng pro zaměřené nové sestavení komprese
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: zdrojové jednotky HotPDF, projekty balíčků, statické soubory objektů a přibalená integrace knihoven třetích stranDemo\Delphi: příklady v Delphi pro generování dokumentů, kreslení, obrázky, nastavení stránek, šifrování, sloučení/úpravy a dalšíDemo\C++Builder: příklady v C++Builder sladěné s hlavními pracovními postupy dem DelphiHtmlHelp: nápověda k produktu a referenční obsah pro vývojáře