Adattamento nativo a RAD Studio
Utilizza progetti, pacchetti, stream, moduli e modelli di disegno Delphi e C++Builder familiari invece di racchiudere un motore PDF separato
HotPDF 2.200.2 per Delphi e C++Builder
HotPDF consente alle applicazioni VCL di creare, modificare, proteggere, firmare, ottimizzare, importare, comprimere e salvare documenti PDF direttamente dal codice Delphi o C++Builder, senza distribuire un runtime PDF esterno
HotPDF è una libreria di componenti PDF a livello di codice sorgente per Delphi e C++Builder; è progettata per software desktop che richiedono un output PDF deterministico, disegno diretto sulla pagina, forte integrazione con RAD Studio e una distribuzione compatta
Il componente copre la generazione quotidiana di PDF, l'assemblaggio avanzato di documenti, la modifica di PDF, l'output ricco di immagini, moduli, annotazioni, crittografia, flussi di lavoro di firma, ottimizzazione dei font e flussi di lavoro basati su stream da una singola superficie API nativa
Le recenti versioni della libreria hanno esteso HotPDF da un classico scrittore PDF a un toolkit PDF nativo più ampio che copre il controllo delle funzionalità specifiche per le versioni PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7, la crittografia PDF 2.0 selezionata, la conformità agli standard PDF/A-1 / -2 / -3 + PDF/X-1a / -3 / -4 + PDF/UA-1, le firme digitali PAdES baseline / estese / con validazione a lungo termine, una pipeline di firma PFX / PKCS#12 in-process che non dipende da OpenSSL o binari nativi esterni, il salvataggio di aggiornamenti incrementali, il subsetting dei font CFF / OpenType / CID-keyed CFF e gli adattatori di esportazione PDF per FastReport, QuickReport, ReportBuilder e DevExpress ExpressPrinting che instradano i loro report esistenti attraverso HotPDF come un unico backend PDF; una Direct File API elabora PDF da molti gigabyte e milioni di oggetti da file a file (conteggio delle pagine, copie, riscritture delle informazioni del documento e crittografia o decrittografia AES-256) in pochi secondi, e il caricatore ora recupera anche documenti racchiusi in contenitori di trasporto con offset obsoleti e file aggiornati in modo incrementale con oggetti orfani o sostituiti
Il ciclo v2.119.32-51 ha aggiunto la modellazione sul lato produttore per arabo / persiano / urdu (legatura obbligatoria LAM-ALEF, 9 lettere di Arabic Presentation Forms-A), un motore di sostituzione OpenType GSUB completo che copre ogni LookupType 1-8 con selezione Script / LangSys e chiusura del subsetter TTF per i glifi sostitutivi, il supporto per contenitori XFA (XML Forms Architecture) (AddXFAPacket / ClearXFAPackets / XFAPacketCount), una famiglia di trigger per campi modulo AcroForm /AA /K + /F + /V + /C, la registrazione di font multi-Unicode /DR tramite RegisterAcroFormFont, i setter per gli attributi di accessibilità degli elementi strutturali (/Lang / /E / /T) con un enum di tipi di struttura standard della Tabella 333 e l'overload tipizzato AddStructureElement, e le proprietà delle sequenze di contenuti contrassegnati su BeginTaggedContent
Il ciclo v2.119.52-68 ha completato la pipeline di modellazione automatica della Fase 8 e ha ampliato la copertura degli script; Arabic Extended-A (inclusi U+0750-077F Arabic Supplement e U+08A0-08FF Arabic Extended-A) e Persian / Urdu Form-B sono stati estesi alla tabella completa delle classi di giunzione U+0672-06D5 più 26 nuovi mapping Forms-A, con piegatura post-passaggio per LAM-ALEF, coppie YEH-HAMZA + vocale (8 legature in U+FBEA-FBFB), la legatura standalone Allah (U+FDF2) e la frase Bismillah a 22 codepoint (U+FDFD); la nuova proprietà opt-in ShapingFeatures + l'enum THPDFShapingFeature (sfArabicGSUB / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) fa sì che il produttore emetta automaticamente le sostituzioni rlig / liga / clig / rclt specifiche del font basate su GSUB, con le legature standard latine (ff / fi / fl / ffi / ffl / ſt / st tramite U+FB00-FB06) e il riordino delle sillabe Indic Devanagari (Repha + pre-base I-matra) che si uniscono alla stessa pipeline; i nuovi metodi per le capacità di modellazione per il siriaco (GetSyriacJoiningClass / GetSyriacPosition), il mongolo (GetMongolianJoiningClass / GetMongolianPosition) e il devanagari (GetDevanagariCategory / ApplyDevanagariReorder) consentono ai chiamanti di pilotare script complessi non arabi attraverso lo stesso motore GSUB; GetCodepointAdvance espone la frazione em /W memorizzata nella cache per i calcoli di a capo, e AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID consentono al produttore di emettere qualsiasi GID sostitutivo GSUB (forme di cluster Devanagari, varianti stilistiche, sequenze di variazione CJK) tramite codepoint Private-Use-Area con integrazione completa /CIDToGIDMap + /ToUnicode + /W; la CMap ToUnicode cumulativa include ora 35 voci di mappatura inversa delle legature (8 LAM-ALEF + 18 della famiglia YEH-HAMZA + 1 Allah + 1 Bismillah + 7 latine) in modo che il copia/incolla del lettore-consumatore produca i codepoints sorgente; gli scheletri della documentazione per ChangeLog sono ora forniti in 11 lingue (EN / CN / AR / DE / ES / FR / IT / JA / KO / PT / RU) con una interfaccia utente di selezione della lingua; il limite di conservazione del ChangeLog è stato elevato da 250 a 500 sezioni di versione
Il ciclo v2.152-v2.190 ha integrato un motore di posizionamento OpenType GPOS completo e ha ampliato la copertura degli script complessi; le opzioni di modellazione opt-in ora applicano il kerning proprio del font (a coppie, contestuale e da destra a sinistra), il posizionamento dei contrassegni combinati (mark-to-base, mark-to-mark e mark-to-ligature per componente), le ancora di connessione corsiva e il kerning verticale per il testo verticale, il tutto scritto come operatori di testo PDF standard in modo che qualsiasi lettore esegua il rendering dello stesso risultato; la modellazione lato produttore ora copre l'arabo (compresi i blocchi Supplement, Extended-A ed Extended-B), il siriaco, il mongolo, l'N'Ko, l'Adlam, l'Hanifi Rohingya, l'impilamento delle consonanti tibetane, il devanagari e gli altri script Indic attraverso la catena di funzionalità Indic del font, il giavanese, l'ordinamento dei contrassegni tailandesi e lao, l'ordinamento dei punti vocalici ebraici, il khmer, il myanmar, il tai viet e il meetei mayek; una famiglia di funzionalità tipografiche OpenType opzionali (legature standard, discrezionali e storiche, maiuscolette, cifre oldstyle / lining / proporzionali / tabulari, esponenti, pedici, ordinali, frazioni, inferiori scientifici, numeratori, denominatori, varianti stilistiche e contestuali, forme localizzate, forme sensibili al maiuscolo/minuscolo, zero barrato e varianti verticali) può essere applicata automaticamente durante l'output del testo; copia, incolla e ricerca di testo recuperano i caratteri originali in tutti gli output modellati, comprese le legature e le sostituzioni di funzionalità concatenate; anche l'output dei font è diventato più piccolo: i programmi dei font incorporati sono sempre compressi con Flate, un font utilizzato su più pagine viene incorporato una sola volta per documento, i tag dei subset sono derivati in modo deterministico per un output riproducibile e una modalità compatta opzionale scrive testo plain-ASCII con font standard come testo WinAnsi non incorporato
HotPDF include il supporto specifico per versione per le funzionalità pratiche di creazione PDF 1.3, PDF 1.4, PDF 1.5, PDF 1.6 e PDF 1.7 utilizzate dalle applicazioni aziendali, di imaging, di editoria e di automazione dei documenti; le API pubbliche vengono verificate rispetto alla versione PDF selezionata in modo che i file generati evitino voci più recenti quando è richiesta una compatibilità rigorosa
La matrice attuale copre filtri e predittori, stream XRef, catene di aggiornamento incrementale, crittografia AES, sicurezza a chiave pubblica, colori DeviceCMYK e ICCBased, pattern di piastrellatura, sfumature assiali/radiali/multi-stop, immagini incorporate, livelli, gruppi di trasparenza, transizioni di pagina, annotazioni, widget AcroForm, hook di firma esterni, metadati XMP, alberi strutturali PDF con tag, OutputIntents, box di pagina di produzione, ViewerPreferences, UserUnit, ordine Tabs e incorporamento/subsetting dei font per font TrueType, Type 3, CFF, OpenType-CFF e CID-keyed CFF
Si tratta di una ampia copertura consapevole degli standard per la superficie di creazione supportata da HotPDF, non di una dichiarazione generale secondo cui ogni caso limite della norma ISO 32000-1 è implementato
Utilizza progetti, pacchetti, stream, moduli e modelli di disegno Delphi e C++Builder familiari invece di racchiudere un motore PDF separato
Crea PDF con moduli, annotazioni, livelli, trasparenza, transizioni di pagina, struttura con tag, crittografia, segnaposto di firma e aggiornamenti incrementali
Riduci le dimensioni del PDF con la compressione zlib-ng, l'imaging libjpeg-turbo, il subsetting TrueType, il subsetting OpenType-CFF e il supporto CID-keyed CFF per font CJK di grandi dimensioni
Le funzionalità seguenti rappresentano netti elementi di differenziazione tecnica per HotPDF rispetto ai tipici componenti PDF Delphi; la maggior parte dei componenti commerciali concorrenti manca completamente di queste funzionalità o è materialmente più debole in produzione; ciascuna riga corrisponde a un'implementazione verificabile e a una superficie API pubblica all'interno della libreria
Un motore di sostituzione GSUB completo che copre ogni LookupType 1-8 (Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual), abbinato a un motore di posizionamento GPOS che copre tutti i 9 LookupTypes (kerning di coppia / singolo / contestuale, mark-to-base, mark-to-mark, mark-to-ligature per componente di legatura, attacco corsivo, distanza, vkrn/vpal verticale); tutto il posizionamento viene emesso con operatori di testo PDF standard, in modo che ogni lettore esegua il rendering in modo identico
Oltre 20 script modellati sul lato produttore, guidati dalla catena di funzionalità GSUB del font stesso: arabo (inclusi Supplement / Extended-A / Extended-B), siriaco, mongolo, N'Ko, Adlam, Hanifi Rohingya, impilamento tibetano, devanagari e la famiglia Indic, giavanese, ordinamento dei contrassegni tailandesi / lao, ordinamento delle vocali ebraiche, khmer, myanmar, tai viet, meetei mayek; l'output include una mappatura inversa /ToUnicode completa in modo che il copia / incolla recuperi i codepoints originali
ASN.1, RSA, AES, lo spacchettamento PKCS#12 e CMS SignedData (RFC 5652) sono tutti implementati all'interno di HotPDF; SignPDFWithPFX firma un PDF segnaposto in una singola chiamata senza runtime OpenSSL e senza provider crittografico di piattaforma: l'intera catena di firma risiede nel proprio processo, è riproducibile, verificabile e non richiede la distribuzione di alcun binario nativo
I flussi di lavoro PAdES B-B, B-T, B-LT e B-LTA sono completamente coperti: timestamp RFC 3161, dizionari di validazione a lungo termine DSS / VRI, firme di timestamp del documento, vincoli Seed Value e XAdES-in-PDF; questo rappresenta il requisito rigoroso per le firme elettroniche conformi a eIDAS dell'UE, laddove la maggior parte dei componenti concorrenti si ferma alla firma CMS di base
Controllo simultaneo e indipendente dei profili per PDF/A-1/-2/-3, PDF/X-1a/-3/-4 e PDF/UA-1: le chiamate non conformi sollevano eccezioni diagnostiche invece di scrivere silenziosamente PDF non conformi; CreatePreflightReport emette report in formato testo / JSON / HTML / CSV con profili INI, preset integrati, aggregazione in batch e incorporamento delle prove XMP, validati end-to-end rispetto a veraPDF
Opera sul PDF su disco senza compilare il grafo degli oggetti in memoria; su un documento di 2 GB con 1.67 milioni di oggetti: crittografia AES-256 ~14 s, decrittografia ~16 s, riscrittura completa ~6 s; la lettura del numero di pagine di un documento da 1.25 GB richiede millisecondi; le tabelle xref classiche, gli stream XRef, i file di riferimento ibridi e i documenti aggiornati in modo incrementale rimangono tutti sul percorso diretto
I font TrueType, OpenType-CFF e CID-keyed CFF sono tutti idonei al subsetting preservando i GID per il testo Type0 / Identity-H; i documenti CJK che in precedenza incorporavano programmi CFF CID-keyed da 14 MB ora vengono distribuiti con dimensioni comprese tra 500 KB e 2 MB senza alcuna perdita di rendering dei glifi; i programmi dei font incorporati sono sempre compressi con Flate, i font multipagina sono incorporati una sola volta per documento e i tag di subsetting sono deterministici per un output riproducibile
THPDFLogger + il HPDFLog globale forniscono una facciata diagnostica attivabile a runtime: filtraggio della gravità Error / Warning / Info / Debug, destinazioni simultanee su file + OutputDebugString + console, thread-safe, rollover di backup singolo da 10 MB, percorso rapido disabilitato a sovraccarico zero; LoadFromFile, i report di preflight e il percorso di fallback degli stream di oggetti sono già cablati con diagnostica strutturata che può essere attivata a runtime senza ricompilazione, una capacità operativa che manca completamente alla maggior parte dei componenti concorrenti
Backend PDF pronti all'uso per FastReport (TfrxHotPDFExport), QuickReport (TQRHotPDFExportFilter), ReportBuilder (TppHotPDFDevice) e DevExpress ExpressPrinting (che coprono cxGrid / cxRichEdit / cxScheduler / cxPivotGrid); i layout dei report esistenti continuano a funzionare: viene sostituito solo l'emettitore PDF
Queste sono funzionalità fornite, non promesse future; ogni elemento sopra menzionato è implementato nella libreria corrente, si compila correttamente e supera i test DUnitX oltre alla validazione end-to-end veraPDF; quando si valutano componenti concorrenti, si consiglia di richiedere la prova della copertura completa dei LookupType GSUB/GPOS, di una catena PAdES B-LTA in-process e della velocità di crittografia misurata su documenti da molti gigabyte
StrictVersionLockLa famiglia DAOpenFileReadOnly / DACopyFile / DASetDocumentInfo / DASaveAsFile e le chiamate da file a file EncryptFile / DecryptFile operano direttamente sul file PDF invece di compilare il grafo degli oggetti in memoria; su un documento di benchmark da 2 GB con 1.67 milioni di oggetti, la crittografia AES-256 richiede circa 14 secondi, la decrittografia circa 16 secondi e una riscrittura completa circa 6 secondi; l'apertura di un documento da 1.25 GB per il conteggio delle pagine richiede millisecondi; le tabelle classiche, gli stream di riferimento incrociato, i file di riferimento ibridi e i documenti aggiornati in modo incrementale rimangono tutti sul percorso diretto
CreatePreflightReport e CreatePreflightReportWithProfile controllano un PDF rispetto alle verifiche PDF/A, PDF/X e PDF/UA supportate ed emettono report in formato testo, JSON, HTML o CSV, con profili in stile INI per sopprimere i risultati accettati: pronti per gate di integrazione continua (CI) e acquisizione di documenti in batch; la demo PreflightCLI aggiunge esecuzioni ricorsive su cartelle e dashboard aggregate
HasFormFields e FormFieldExists rispondono alle domande sui moduli relative a un PDF caricato prima di modificarlo, i valori dei campi possono essere letti e scritti per indice o nome, e FlattenFormFields imprime i campi interattivi AcroForm nel contenuto della pagina e segnala quanti campi ha appiattito, insieme all'appiattimento da XFA ad AcroForm che mantiene i moduli XFA utilizzabili in qualsiasi visualizzatore
THotPDF.SignPDFWithPFX(InputPDF, OutputPDF, PFXFile, Password) firma un PDF segnaposto esistente in una singola chiamata; l'intero stack ASN.1, RSA, AES, PKCS#12 e CMS SignedData è implementato all'interno di HotPDF, pertanto non è richiesto alcun runtime OpenSSL o provider crittografico di piattaforma
I flussi di lavoro PAdES B-B, B-T, B-LT e B-LTA sono coperti end-to-end: creazione della firma con timestamp RFC 3161, dizionari di validazione a lungo termine DSS / VRI, firme di timestamp del documento e vincoli Seed Value; l'integrazione di XAdES-in-PDF e l'applicazione del Seed Value della firma fanno parte della stessa superficie
HotPDF controlla i metodi delle funzionalità rispetto ai profili PDF/A-1 / -2 / -3, PDF/X-1a / -3 / -4 e PDF/UA-1; le chiamate che violerebbero il profilo selezionato (trasparenza in PDF/A-1, JavaScript in PDF/A, annotazioni esterne in PDF/X, struttura senza tag in PDF/UA) sollevano eccezioni diagnostiche invece di produrre silenziosamente PDF non conformi
Backend PDF pronti all'uso per i quali i quattro motori di report Delphi più comuni: TfrxHotPDFExport (FastReport 4 / FastReport VCL), TQRHotPDFExportFilter (QuickReport), TppHotPDFDevice (ReportBuilder) e dxHotPDFExportReportLinkToFile/Stream (DevExpress ExpressPrinting System che copre cxGrid / cxRichEdit / cxScheduler / cxPivotGrid); i report esistenti continuano a funzionare: viene sostituito solo l'emettitore PDF
Posizionamento del testo opt-in guidato dai dati GPOS propri del font: kerning di coppia e contestuale per testo da sinistra a destra e da destra a sinistra, mark-to-base, mark-to-mark e posizionamento dei contrassegni per componente di legatura, allineamento di entrata/uscita corsiva, posizionamento a distanza e kerning verticale per font verticali; il posizionamento viene emesso con operatori di testo PDF standard, in modo che ogni visualizzatore PDF esegua il rendering dello stesso risultato
La modellazione sul lato produttore esegue il rendering del testo correttamente congiunto e riordinato per arabo (compresi i blocchi Supplement, Extended-A ed Extended-B), siriaco, mongolo, N'Ko, Adlam, Hanifi Rohingya, tibetano, devanagari e gli altri script Indic, giavanese, tailandese, lao, ebraico, khmer, myanmar, tai viet e meetei mayek senza fare affidamento su un modellatore sul lato visualizzatore; ciascuno script è un interruttore opt-in, pertanto l'output esistente rimane identico a livello di byte fino a quando non viene abilitato, e il copia/incolla recupera i caratteri originali
Gli interruttori di modellazione opzionali applicano automaticamente le legature standard, discrezionali e storiche del font, le maiuscolette, le cifre oldstyle / lining / proporzionali / tabulari, gli esponenti, i pedici, gli ordinali, le frazioni, gli inferiori scientifici, i numeratori, i denominatori, le varianti stilistiche e contestuali, le forme localizzate, le forme sensibili al maiuscolo/minuscolo, lo zero barrato e le varianti verticali durante l'output del testo, con l'estrazione del testo rimappata ai caratteri originali
I programmi dei font incorporati sono sempre compressi con Flate, un font utilizzato su più pagine viene incorporato una sola volta per l'intero documento e i tag dei subset sono derivati in modo deterministico dai glifi effettivamente utilizzati in modo che esecuzioni ripetute producano un output identico; una modalità opzionale scrive testo plain-ASCII con font standard come testo WinAnsi compatto non incorporato, riducendo una pagina di testo semplice da centinaia di kilobyte a pochi kilobyte
La modellazione sul lato produttore piega le sequenze di input Unicode nelle loro Presentation Forms prima dell'emissione del testo PDF; l'arabo copre la tabella completa delle classi di giunzione U+0672-06D5 più oltre 40 mapping Forms-A, con passaggio successivo automatico per le legature LAM-ALEF, YEH-HAMZA + vocali (U+FBEA-FBFB), Allah (U+FDF2) e Bismillah (U+FDFD); le superfici di capacità per il siriaco (GetSyriacJoiningClass), il mongolo (GetMongolianJoiningClass) e il devanagari (GetDevanagariCategory / ApplyDevanagariReorder) consentono ai chiamanti di guidare script complessi non arabi attraverso lo stesso motore GSUB
La proprietà opt-in ShapingFeatures + l'enum THPDFShapingFeature (sfArabicGSUB / sfCursiveAttachment / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) elevano i motori OpenType GSUB e GPOS in una pipeline automatica sul lato produttore; i processi nativi per l'arabo init / medi / fina / isol, rlig, calt, rclt, l'attacco corsivo GPOS, liga / clig latini e il riordino Indic Devanagari avvengono durante l'emissione del testo, con mappatura inversa /ToUnicode completa per la correttezza del copia / incolla
Le legature standard latine (ff / fi / fl / ffi / ffl / ſt / st tramite U+FB00-FB06) vengono emesse automaticamente tramite ApplyLatinLigatureRefinement quando sfStandardLigatures è abilitato; per i GID sostitutivi GSUB privi di un codepoint Unicode naturale (forme di cluster Devanagari, varianti stilistiche, sequenze di variazione ideografica CJK), il metodo AssignSyntheticCodepointForGID alloca un codepoint Private-Use-Area (U+E000-F8FF) con integrazione speculare di /CIDToGIDMap + /W + /ToUnicode
Ogni LookupType 1-8 OpenType GSUB (Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual) è implementato come una superficie di interrogazione di sola capacità (GetSingleSubstituteGlyph, ApplyLigatureSubstitution, ApplyContextualSubst, ApplyReverseChainedContextualSubst e gli helper per Multiple / Alternate / Script / LangSys / Feature); MarkUnicodeGlyphUsed inserisce ogni glifo sostitutivo nel subsetter TTF in modo che i subset di font incorporati rimangano autonomi
/DRI pacchetti del contenitore XFA PDF 1.7 §12.7.6 / §12.7.8 si affiancano (o si sostituiscono) a /Fields statici tramite AddXFAPacket; la famiglia completa di trigger per campi modulo AcroForm (/AA /K Keystroke, /F Format, /V Validate, /C Calculate) è esposta come metodi wrapper, e RegisterAcroFormFont associa più font Unicode a un singolo dizionario di risorse /DR AcroForm per widget di moduli multilingue
THotPDF.EnableFontSubsetting esegue il subsetting di font TrueType, OpenType-CFF e CID-keyed CFF preservando i GID per il testo Type0 / Identity-H; i PDF CJK che in precedenza incorporavano programmi CFF CID-keyed da 14 MB ora vengono distribuiti con dimensioni comprese tra 500 KB e 2 MB senza perdere alcun glifo di cui è stato eseguito il rendering
BeginIncrementalUpdate, SaveIncrementalUpdate, MarkDirty e le API dei segnaposto di firma supportano gli aggiornamenti PDF in modalità append-only e i flussi di lavoro multi-firma senza riscrivere gli intervalli di byte firmati in precedenza
GetSyriacJoiningClass / GetSyriacPosition), mongolo (GetMongolianJoiningClass / GetMongolianPosition), devanagari (GetDevanagariCategory / ApplyDevanagariReorder); pilotano lo stesso motore GSUB per script complessi non arabiShapingFeatures: sfArabicGSUB applica i processi nativi arabi init / medi / fina / isol oltre a rlig / calt / rclt per emettere GID contestuali specifici del font, sfCursiveAttachment applica le ancora corsive GPOS, sfStandardLigatures / sfContextualLigatures emettono liga / clig latini (FB00-FB06: ff / fi / fl / ffi / ffl / ſt / st) e sfIndicShaping riordina i cluster Devanagari (Repha + pre-base I-matra) prima dell'emissioneMarkUnicodeGlyphUsed), copertura SMP del formato Cmap 12, parsing GDEF, auto-emissione CMap ToUnicode con 35 voci di mappatura inversa delle legature e una ricerca GetUnicodeGlyphForCodepoint per i chiamanti che guidano l'emissione glifo per glifoAssignSyntheticCodepointForGID / GetSyntheticCodepointForGID) consente ai produttori di emettere qualsiasi GID sostitutivo GSUB (forme di cluster Devanagari, varianti stilistiche, sequenze di variazione ideografica CJK) tramite l'area ad uso privato U+E000-F8FF con integrazione speculare di /CIDToGIDMap + /W; GetCodepointAdvance espone la frazione em /W memorizzata nella cache per i calcoli di a capovkrn / vpal applicato all'output di testo verticaleliga / clig / dlig / hlig, maiuscolette smcp / c2sc, stili di cifre onum / lnum / pnum / tnum, sups / subs / ordn / frac / sinf / numr / dnom, varianti stilistiche salt, varianti contestuali calt / rclt, forme localizzate locl, forme case, zero barrato zero e varianti verticali vert / vrt2, con sostituzioni concatenate risolte nel testo sorgente nella CMap ToUnicode/AA /K Keystroke, /F Format, /V Validate, /C Calculate) con un metodo wrapper per trigger; registrazione di font multi-Unicode /DR tramite RegisterAcroFormFont; supporto per contenitori XFA (XML Forms Architecture) (PDF 1.7 §12.7.6 / §12.7.8) con AddXFAPacket / ClearXFAPackets / XFAPacketCount e gate di conformità PDF/A + PDF/X, oltre all'appiattimento da XFA ad AcroForm (ApplyXFAAsAcroForm per byte XDP grezzi, FlattenLoadedXFA per un modulo incorporato di un PDF caricato) che trasforma XFA statico in campi AcroForm nativi, stile e grafica della pagina in modo che il modulo rimanga visibile e compilabile nei lettori senza un motore XFABeginTaggedContent (/Lang / /Alt / /ActualText / /E), setter di attributi degli elementi strutturali (/Lang / /E / /T), enum dei tipi di struttura standard della Tabella 333 (THPDFStandardStructureType) più un overload tipizzato AddStructureElementLe build correnti di HotPDF utilizzano zlib-ng in modalità compatibile con zlib per il backend Flate integrato; gli stream di pagina, gli stream di font incorporati, le CMap ToUnicode, gli stream di immagini Flate, l'output correlato a TIFF e gli helper FlateDecode sono instradati attraverso lo strato zlib di HotPDF
Le build zlib-ng di diagnostica MSVC Win64 e Win64x includono il dispatch CPU a runtime per i percorsi SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ e AVX2 mantenendo i fallback generici; Win32 rimane sul set di oggetti OMF zlib-ng generico tramite bcc32c, mentre gli oggetti Win32 JPEG e TIFF continuano a utilizzare il percorso OMF classico bcc32
I flussi di lavoro JPEG standard utilizzano il set di oggetti libjpeg-turbo 3.1.90 integrato tramite l'API compatibile con libjpeg esposta da HPDFJpeg.pas; le build native Win32, Win64 e Win64x ora includono i relativi set di oggetti NASM SIMD, e lo stesso backend JPEG nativo è disponibile per il livello di integrazione TIFF per la gestione di TIFF compressi con JPEG
Il bridge di runtime C in HPDFCLibs.pas ora risolve malloc, free, realloc, calloc, memcpy, memmove e memset tramite uno strato rivolto verso Pascal, con allocazione allineata a 32 byte per buffer nativi ottimizzati per SIMD
Il repository include script di build di oggetti riproducibili: Lib\thirdparty\build-bcc32.bat, Lib\thirdparty\build-bcc64x.bat e Lib\thirdparty\build-vc64.bat per il set completo di librerie C native, oltre a script dedicati solo a zlib-ng per ricostruzioni mirate della compressione
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: unità sorgente HotPDF, progetti di pacchetti, file oggetto statici e integrazione di librerie di terze parti in bundleDemo\Delphi: esempi Delphi per generazione di documenti, disegno, immagini, impostazione di pagina, crittografia, flussi di lavoro di unione/modifica e altroDemo\C++Builder: esempi C++Builder allineati con i flussi di lavoro principali della demo DelphiHtmlHelp: guida al prodotto e contenuti di riferimento per lo sviluppatore