Native RAD Studio Integration
Verwenden Sie vertraute Delphi- und C++Builder-Projekte, Pakete, Streams, Formulare und Zeichnungsmuster, anstatt eine separate PDF-Engine einzubinden
HotPDF 2.200.2 für Delphi und C++Builder
HotPDF ermöglicht VCL-Anwendungen das Erstellen, Ändern, Schützen, Signieren, Optimieren, Importieren, Komprimieren und Speichern von PDF-Dokumenten direkt aus Delphi- oder C++Builder-Code, ohne eine externe PDF-Laufzeitumgebung bereitzustellen
HotPDF ist eine PDF-Komponentenbibliothek auf Quellcodeebene für Delphi und C++Builder; sie wurde für Desktop-Software entwickelt, die eine deterministische PDF-Ausgabe, direktes Zeichnen auf Seiten, eine starke RAD Studio-Integration und eine kompakte Bereitstellung erfordert
Die Komponente deckt die alltägliche PDF-Generierung, fortgeschrittene Dokumentenzusammenstellung, PDF-Bearbeitung, bildintensive Ausgaben, Formulare, Anmerkungen, Verschlüsselung, Signatur-Workflows, Schriftartenoptimierung und streambasierte Workflows über eine einzige native API-Oberfläche ab
Neuere Bibliotheksversionen haben HotPDF von einem klassischen PDF-Schreiber zu einem umfassenderen nativen PDF-Toolkit erweitert, das versionsspezifisches PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7 Feature-Gating, ausgewählte PDF 2.0-Verschlüsselungen, Konformität mit PDF/A-1 / -2 / -3 + PDF/X-1a / -3 / -4 + PDF/UA-1-Standards, digitale PAdES-Baseline- / erweiterte / Langzeitvalidierungs-Signaturen, eine In-Process-PFX- / PKCS#12-Signatur-Pipeline ohne Abhängigkeit von OpenSSL oder externen nativen Binärdateien, das Speichern inkrementeller Updates, CFF- / OpenType- / CID-keyed CFF-Schriftarten-Subsetting sowie PDF-Export-Adapter für FastReport, QuickReport, ReportBuilder und DevExpress ExpressPrinting umfasst, die ihre vorhandenen Berichte über HotPDF als einziges PDF-Backend leiten; eine Direct File-API verarbeitet Multi-Gigabyte-PDFs mit Millionen von Objekten Datei-zu-Datei – Seitenzahlen, Kopien, Umschreiben von Dokumenteninformationen und AES-256-Verschlüsselung oder -Entschlüsselung – in Sekundenschnelle, und das Ladeprogramm stellt nun auch Dokumente wieder her, die in Transportcontainern mit veralteten Offsets verpackt sind, sowie inkrementell aktualisierte Dateien mit verwaisten oder ersetzten Objekten
Der Zyklus v2.119.32-51 fügte erzeugerseitige Arabisch- / Persisch- / Urdu-Gestaltung (obligatorische LAM-ALEF-Ligatur, Arabische Präsentationsformen-A 9 Buchstaben), eine funktionsvollständige OpenType GSUB-Ersetzungs-Engine für alle LookupTypes 1-8 mit Script- / LangSys-Auswahl und TTF-Subsetter-Abschluss für Ersatz-Glyphen, XFA (XML Forms Architecture)-Container-Unterstützung (AddXFAPacket / ClearXFAPackets / XFAPacketCount), eine AcroForm-Formularfeld-Triggerfamilie /AA /K + /F + /V + /C, Multi-Unicode-/DR-Schriftartenregistrierung über RegisterAcroFormFont, Struktur-Element-Barrierefreiheitsattribut-Setter (/Lang / /E / /T) mit einem Table 333 Standard-Strukturtyp-Enum und der typisierten Überladung AddStructureElement sowie Eigenschaften für markierte Inhaltssequenzen bei BeginTaggedContent hinzu
Der Zyklus v2.119.52-68 schloss die Phase 8 automatische Gestaltungs-Pipeline ab und erweiterte die Skriptabdeckung: Arabisch Extended-A (einschließlich U+0750-077F Arabisches Supplement und U+08A0-08FF Arabisch Extended-A) und Persisch / Urdu Form-B wurden auf die vollständige Verbindungsklassentabelle U+0672-06D5 plus 26 neue Forms-A-Zuordnungen erweitert, mit Post-Pass-Faltung für LAM-ALEF, YEH-HAMZA + Vokalpaare (8 Ligaturen in U+FBEA-FBFB), die eigenständige Allah-Ligatur (U+FDF2) und die Bismillah-Phrase mit 22 Codepoints (U+FDFD); die neue Opt-in-Eigenschaft ShapingFeatures + THPDFShapingFeature-Enum (sfArabicGSUB / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) veranlasst den Erzeuger, GSUB-gesteuerte, schriftartenspezifische rlig / liga / clig / rclt-Ersetzungen automatisch auszugeben, wobei lateinische Standardligaturen (ff / fi / fl / ffi / ffl / ſt / st über U+FB00-FB06) und die Devanagari-Indic-Silbenumordnung (Repha + pre-base I-matra) in dieselbe Pipeline aufgenommen werden; neue Gestaltungskapazitätsmethoden für Syrisch (GetSyriacJoiningClass / GetSyriacPosition), Mongolisch (GetMongolianJoiningClass / GetMongolianPosition) und Devanagari (GetDevanagariCategory / ApplyDevanagariReorder) ermöglichen es Aufrufern, nicht-arabische komplexe Skripte über dieselbe GSUB-Engine zu steuern; GetCodepointAdvance stellt den zwischengespeicherten /W Geviertbruchteil für Zeilenumbruchberechnungen bereit, und AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID ermöglichen es dem Erzeuger, beliebige GSUB-Ersatz-GIDs (Devanagari-Clusterformen, stilistische Alternativen, CJK-Variationssequenzen) über Private-Use-Area-Codepoints mit vollständiger Integration von /CIDToGIDMap + /ToUnicode + /W auszugeben; die kumulative ToUnicode CMap liefert nun 35 Ligatur-Rückordnungs-Einträge (8 LAM-ALEF + 18 der YEH-HAMZA-Familie + 1 Allah + 1 Bismillah + 7 Lateinisch), sodass Kopieren / Einfügen im Consumer-Reader die Quell-Codepoints erzeugt; Dokumentationsgerüste für ChangeLog werden jetzt in 11 Sprachen (EN / CN / AR / DE / ES / FR / IT / JA / KO / PT / RU) mit einer Sprachauswahl-Benutzeroberfläche bereitgestellt; das Aufbewahrungslimit für ChangeLog wurde von 250 auf 500 Versionsabschnitte angehoben
Der Zyklus v2.152-v2.190 baute eine vollständige OpenType GPOS-Positionierungs-Engine auf und erweiterte die Abdeckung komplexer Skripte; Opt-in-Gestaltungsoptionen wenden nun das schriftarteneigene Kerning (Paarkerning, kontextuelles und Rechts-nach-Links-Kerning), die Platzierung kombinierender Zeichen (Zeichen-zu-Basis, Zeichen-zu-Zeichen und komponentenweise Zeichen-zu-Ligatur), kursive Verbindungsanker und vertikales Kerning für vertikalen Text an, alle als Standard-PDF-Textoperatoren geschrieben, sodass jeder Reader das gleiche Ergebnis darstellt; die erzeugerseitige Gestaltung deckt nun Arabisch (einschließlich der Blöcke Supplement, Extended-A und Extended-B), Syrisch, Mongolisch, N'Ko, Adlam, Hanifi Rohingya, tibetische Konsonantenstapelung, Devanagari und andere indische Skripte durch die Indic-Feature-Kette der Schriftart, Javanisch, Thai- und Lao-Zeichenanordnung, hebräische Vokalzeichenanordnung, Khmer, Myanmar, Tai Viet und Meetei Mayek ab; eine Familie optionaler OpenType-Typografiefunktionen – Standard-, diskretionäre und historische Ligaturen, Kapitälchen, Mediäval- / Versal- / proportionale / Tabellenziffern, hochgestellte, tiefgestellte Zeichen, Ordinalzahlen, Brüche, wissenschaftliche Indizes, Zähler, Nenner, stilistische und kontextuelle Alternativen, lokalisierte Formen, fallsensitive Formen, durchgestrichene Null und vertikale Alternativen – kann bei der Textausgabe automatisch angewendet werden; Kopieren, Einfügen und Textsuche stellen die ursprünglichen Zeichen über alle gestalteten Ausgaben hinweg wieder her, einschließlich Ligaturen und verketteter Feature-Ersetzungen; die Schriftartenausgabe wurde zudem kleiner: Eingebettete Schriftprogrammdateien sind immer Flate-komprimiert, eine auf mehreren Seiten verwendete Schriftart wird einmal pro Dokument eingebettet, Subsetting-Tags werden deterministisch für eine reproduzierbare Ausgabe abgeleitet, und ein optionaler kompakter Modus schreibt Plain-ASCII-Text mit Standardschriftarten als nicht eingebetteten WinAnsi-Text
HotPDF enthält versionsspezifische Unterstützung für die praktischen PDF 1.3-, PDF 1.4-, PDF 1.5-, PDF 1.6- und PDF 1.7-Erstellungsfunktionen, die von Geschäfts-, Bildverarbeitungs-, Verlags- und Dokumentenautomatisierungsanwendungen verwendet werden; öffentliche APIs werden mit der ausgewählten PDF-Version abgeglichen, sodass generierte Dateien neuere Einträge vermeiden, wenn eine strikte Kompatibilität erforderlich ist
Die aktuelle Matrix deckt Filter und Prädiktoren, XRef-Streams, inkrementelle Aktualisierungsketten, AES-Verschlüsselung, Public-Key-Sicherheit, DeviceCMYK- und ICCBased-Farben, Kachelmuster, axiale/radiale/Multi-Stop-Schattierungen, Inline-Bilder, Ebenen, Transparenzgruppen, Seitenübergänge, Anmerkungen, AcroForm-Widgets, externe Signatur-Hooks, XMP-Metadaten, getaggte PDF-Strukturstrukturen, OutputIntents, Produktionsseitenboxen, ViewerPreferences, UserUnit, Tabs-Reihenfolge sowie Schriftarteneinbettung / -subsetting für TrueType-, Type 3-, CFF-, OpenType-CFF- und CID-keyed CFF-Schriftarten ab
Dies ist eine breite, standardkonforme Abdeckung der von HotPDF unterstützten Erstellungsoberfläche, kein pauschaler Anspruch darauf, dass jeder Grenzfall in ISO 32000-1 ist implementiert
Verwenden Sie vertraute Delphi- und C++Builder-Projekte, Pakete, Streams, Formulare und Zeichnungsmuster, anstatt eine separate PDF-Engine einzubinden
Erstellen Sie PDFs mit Formularen, Anmerkungen, Ebenen, Transparenz, Seitenübergängen, getaggten Strukturen, Verschlüsselung, Signaturplatzhaltern und inkrementellen Updates
Reduzieren Sie die PDF-Größe mit zlib-ng-Komprimierung, libjpeg-turbo-Bildverarbeitung, TrueType-Subsetting, OpenType-CFF-Subsetting und CID-keyed CFF-Unterstützung für große CJK-Schriftarten
Die folgenden Funktionen sind klare technische Alleinstellungsmerkmale von HotPDF gegenüber typischen Delphi-PDF-Komponenten; die meisten kommerziellen Konkurrenzprodukte weisen diese Funktionen entweder gar nicht auf oder sind in der Produktionsumgebung deutlich schwächer; jede Zeile entspricht einer überprüfbaren Implementierung und einer öffentlichen API-Oberfläche innerhalb der Bibliothek
Eine vollständige GSUB-Ersetzungs-Engine für alle LookupTypes 1-8 (Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual), kombiniert mit einer GPOS-Positionierungs-Engine für alle 9 LookupTypes (Paarkerning / einzelnes / kontextuelles Kerning, Zeichen-zu-Basis, Zeichen-zu-Zeichen, Zeichen-zu-Ligatur pro Ligaturkomponente, kursive Verbindung, Abstand, vertikales vkrn/vpal); alle Positionierungen werden mit Standard-PDF-Textoperatoren ausgegeben, sodass jeder Reader sie identisch darstellt
Mehr als 20 erzeugerseitig gestaltete Skripte, gesteuert über die schriftarteneigene GSUB-Feature-Kette: Arabisch (inkl. Supplement / Extended-A / Extended-B), Syrisch, Mongolisch, N'Ko, Adlam, Hanifi Rohingya, tibetische Stapelung, Devanagari und die indische Sprachfamilie, Javanisch, Thai- / Lao-Zeichenanordnung, hebräische Vokalzeichenanordnung, Khmer, Myanmar, Tai Viet, Meetei Mayek; die Ausgabe enthält eine vollständige /ToUnicode-Rückordnung, sodass Kopieren / Einfügen die ursprünglichen Codepoints wiederherstellt
ASN.1, RSA, AES, PKCS#12-Entpackung und CMS SignedData (RFC 5652) sind alle innerhalb von HotPDF implementiert; SignPDFWithPFX signiert ein Platzhalter-PDF in einem einzigen Aufruf ohne OpenSSL-Laufzeitumgebung und ohne Krypto-Provider der Plattform – die gesamte Signaturkette verbleibt in Ihrem Prozess, reproduzierbar, auditierbar und ohne dass native Binärdateien bereitgestellt werden müssen
PAdES B-B, B-T, B-LT- und B-LTA-Workflows sind vollständig abgedeckt: RFC 3161-Zeitstempel, DSS- / VRI-Langzeitvalidierungsverzeichnisse, Dokumentenzeitstempelsignaturen, Seed Value-Einschränkungen und XAdES-in-PDF; dies ist die strenge Anforderung für EU-eIDAS-konforme elektronische Signaturen, bei denen die meisten Konkurrenzprodukte bei der einfachen CMS-Signierung stehen bleiben
Unabhängiges Profil-Gating für PDF/A-1/-2/-3, PDF/X-1a/-3/-4 und PDF/UA-1 gleichzeitig – nicht konforme Aufrufe lösen Diagnoseausnahmen aus, anstatt stillschweigend nicht konforme PDFs zu schreiben; CreatePreflightReport gibt Text-, JSON-, HTML- oder CSV-Berichte mit INI-Profilen, integrierten Voreinstellungen, Batch-Aggregation und XMP-Nachweiseinbettung aus, durchgängig validiert gegen veraPDF
Arbeitet direkt auf dem PDF auf dem Datenträger, ohne den Objektgraphen im Arbeitsspeicher aufzubauen; bei einem 2 GB-Dokument mit 1,67 Millionen Objekten: AES-256-Verschlüsselung ~14 s, Entschlüsselung ~16 s, vollständiges Umschreiben ~6 s; das Auslesen der Seitenzahl eines 1,25 GB-Dokuments dauert Millisekunden; klassische xref-Tabellen, XRef-Streams, Hybrid-Referenzdateien und inkrementell aktualisierte Dokumente bleiben alle auf dem direkten Pfad
TrueType-, OpenType-CFF- und CID-keyed CFF-Schriftarten können alle unter Beibehaltung der Glyphen-IDs für Type0- / Identity-H-Text gesubsetted werden; CJK-Dokumente, in die zuvor 14 MB große CID-keyed CFF-Programme eingebettet waren, werden jetzt mit 500 KB bis 2 MB ausgeliefert, ohne dass gerenderte Glyphen verloren gehen; eingebettete Schriftprogrammdateien sind immer Flate-komprimiert, mehrseitige Schriftarten werden einmal pro Dokument eingebettet und Subsetting-Tags sind für eine reproduzierbare Ausgabe deterministisch
THPDFLogger + das globale HPDFLog bieten eine zur Laufzeit umschaltbare Diagnosefassade: Filterung nach Schweregrad (Error / Warning / Info / Debug), gleichzeitige Ausgabe in Datei + OutputDebugString + Konsole, threadsicher, 10 MB Einzel-Backup-Rollover, Zero-Overhead-Schnellpfad im deaktivierten Zustand; LoadFromFile, Preflight-Berichte und der Ausweichpfad für Objekt-Streams sind bereits mit strukturierten Diagnosen ausgestattet, die zur Laufzeit ohne erneutes Kompilieren umgeschaltet werden können – eine betriebliche Funktion, die den meisten konkurrierenden Komponenten völlig fehlt
Drop-in PDF-Backends für FastReport (TfrxHotPDFExport), QuickReport (TQRHotPDFExportFilter), ReportBuilder (TppHotPDFDevice) und DevExpress ExpressPrinting (abgedeckt werden cxGrid / cxRichEdit / cxScheduler / cxPivotGrid); vorhandene Berichtslayouts funktionieren weiterhin – es wird nur der PDF-Emitter ausgetauscht
Dies sind bereits gelieferte Funktionen, keine Versprechungen für die Zukunft. Jedes der oben genannten Elemente ist in der aktuellen Bibliothek implementiert, lässt sich fehlerfrei kompilieren und besteht DUnitX-Tests sowie eine durchgängige veraPDF-Validierung; fragen Sie beim Vergleich konkurrierender Komponenten nach Belegen für die vollständige Abdeckung von GSUB/GPOS LookupType, einer In-Process-PAdES-B-LTA-Kette und gemessenem Multi-Gigabyte-Verschlüsselungsdurchsatz
StrictVersionLock erzwingenDie Familie DAOpenFileReadOnly / DACopyFile / DASetDocumentInfo / DASaveAsFile und die Datei-zu-Datei-Aufrufe EncryptFile / DecryptFile arbeiten direkt auf der PDF-Datei, anstatt den Objektgraphen im Arbeitsspeicher aufzubauen; bei einem 2 GB-Benchmark-Dokument mit 1,67 Millionen Objekten dauert die AES-256-Verschlüsselung etwa 14 Sekunden, die Entschlüsselung etwa 16 Sekunden und ein vollständiges Umschreiben etwa 6 Sekunden; das Öffnen eines 1,25 GB-Dokuments zur Ermittlung der Seitenzahl dauert Millisekunden; klassische Tabellen, XRef-Streams, Hybrid-Referenzdateien und inkrementell aktualisierte Dokumente bleiben alle auf dem direkten Pfad
CreatePreflightReport und CreatePreflightReportWithProfile prüfen ein PDF auf die unterstützten PDF/A-, PDF/X- und PDF/UA-Richtlinien und geben Text-, JSON-, HTML- oder CSV-Berichte aus, mit Profilen im INI-Stil zum Unterdrücken akzeptierter Befunde – bereit für CI-Gates und Batch-Dokumentenaufnahme; die PreflightCLI-Demo fügt rekursive Ordnerdurchläufe und aggregierte Dashboards hinzu
HasFormFields und FormFieldExists beantworten Formularfragen zu einem geladenen PDF, bevor es angefasst wird, Feldwerte können nach Index oder Name gelesen und geschrieben werden, und FlattenFormFields brennt interaktive AcroForm-Felder in den Seiteninhalt ein und meldet, wie viele Felder es verflacht hat – zusammen mit der XFA-zu-AcroForm-Verflachung, die XFA-Formulare in jedem Reader nutzbar hält
THotPDF.SignPDFWithPFX(InputPDF, OutputPDF, PFXFile, Password) signiert ein vorhandenes Platzhalter-PDF in einem einzigen Aufruf; der vollständige ASN.1-, RSA-, AES-, PKCS#12- und CMS SignedData-Stack (RFC 5652) ist innerhalb von HotPDF implementiert, sodass keine OpenSSL-Laufzeitumgebung oder ein Plattform-Krypto-Provider erforderlich ist
PAdES B-B-, B-T-, B-LT- und B-LTA-Workflows sind durchgängig abgedeckt: Signaturerstellung mit RFC 3161-Zeitstempeln, DSS- / VRI-Langzeitvalidierungsverzeichnisse, Dokumentenzeitstempelsignaturen und Seed Value-Einschränkungen; die Durchsetzung von XAdES-in-PDF und Signatur-Seed-Werten ist Teil derselben Oberfläche
HotPDF schützt Funktionsmethoden gegen Profile für PDF/A-1 / -2 / -3, PDF/X-1a / -3 / -4 und PDF/UA-1; Aufrufe, die das ausgewählte Profil verletzen würden (Transparenz in PDF/A-1, JavaScript in PDF/A, externe Anmerkungen in PDF/X, ungetaggte Strukturen in PDF/UA), lösen Diagnoseausnahmen aus, anstatt stillschweigend nicht konforme PDFs zu erzeugen
Drop-in PDF-Backends für die vier gängigsten Delphi-Berichts-Engines: TfrxHotPDFExport (FastReport 4 / FastReport VCL), TQRHotPDFExportFilter (QuickReport), TppHotPDFDevice (ReportBuilder) und dxHotPDFExportReportLinkToFile/Stream (DevExpress ExpressPrinting System, das cxGrid / cxRichEdit / cxScheduler / cxPivotGrid abdeckt); vorhandene Berichte funktionieren weiterhin – es wird nur der PDF-Emitter ausgetauscht
Optionale Textpositionierung, gesteuert durch die GPOS-Daten der Schriftart: Paarkerning und kontextbezogenes Kerning für Links-nach-Rechts- und Rechts-nach-Links-Text, Positionierung von Zeichen-zu-Basis, Zeichen-zu-Zeichen und Zeichenplatzierung pro Ligaturkomponente, kursive Ausrichtung von Ein-/Austrittspunkten, Abstandspositionierung sowie vertikales Kerning für vertikale Schriftarten; die Positionierung wird mit Standard-PDF-Textoperatoren ausgegeben, sodass jeder PDF-Reader das gleiche Ergebnis darstellt
Die erzeugerseitige Gestaltung rendert korrekt verbundenen und umgeordneten Text für Arabisch (einschließlich der Blöcke Supplement, Extended-A und Extended-B), Syrisch, Mongolisch, N'Ko, Adlam, Hanifi Rohingya, Tibetisch, Devanagari und andere indische Skripte, Javanisch, Thai, Lao, Hebräisch, Khmer, Myanmar, Tai Viet und Meetei Mayek, ohne sich auf einen Shaper auf der Betrachterseite zu verlassen; jedes Skript ist ein optionaler Schalter, sodass vorhandene Ausgaben byte-identisch bleiben, bis sie aktiviert werden, und Kopieren/Einfügen die ursprünglichen Zeichen wiederherstellt
Optionale Gestaltungsschalter wenden Standard-, diskretionäre und historische Ligaturen der Schriftart, Kapitälchen, Mediäval- / Versal- / proportionale / Tabellenziffern, hochgestellte, tiefgestellte Zeichen, Ordinalzahlen, Brüche, wissenschaftliche Indizes, Zähler, Nenner, stilistische und kontextbezogene Alternativen, lokalisierte Formen, fallsensitive Formen, durchgestrichene Null und vertikale Alternativen automatisch während der Textausgabe an, wobei die Textextraktion wieder den Quellzeichen zugeordnet wird
Eingebettete Schriftprogrammdateien sind immer Flate-komprimiert, eine auf mehreren Seiten verwendete Schriftart wird einmal für das gesamte Dokument eingebettet und Subsetting-Tags werden deterministisch aus den tatsächlich verwendeten Glyphen abgeleitet, sodass wiederholte Durchläufe identische Ergebnisse liefern; ein optionaler Modus schreibt Plain-ASCII-Text mit Standardschriftarten als kompakten, nicht eingebetteten WinAnsi-Text, wodurch eine Seite mit reinem Text von Hunderten von Kilobyte auf wenige Kilobyte verkleinert wird
Die erzeugerseitige Gestaltung faltet Unicode-Eingabe-Runs in ihre Präsentationsformen vor der PDF-Textausgabe; Arabisch deckt die vollständige Verbindungsklassentabelle U+0672-06D5 plus über 40 Forms-A-Zuordnungen ab, mit automatischem Ligatur-Post-Pass für LAM-ALEF, YEH-HAMZA + Vokale (U+FBEA-FBFB), Allah (U+FDF2) und Bismillah (U+FDFD); Fähigkeitsoberflächen für Syrisch (GetSyriacJoiningClass), Mongolisch (GetMongolianJoiningClass) und Devanagari (GetDevanagariCategory / ApplyDevanagariReorder) ermöglichen es Aufrufern, nicht-arabische komplexe Skripte über dieselbe GSUB-Engine zu steuern
Die optionale Eigenschaft ShapingFeatures + THPDFShapingFeature-Enum (sfArabicGSUB / sfCursiveAttachment / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) hebt die OpenType GSUB- und GPOS-Engines in eine automatische erzeugerseitige Pipeline; natives arabisches init / medi / fina / isol, rlig, calt, rclt, GPOS-kursive Verbindung, lateinisches liga / clig und Devanagari-Indic-Silbenumordnung erfolgen bei der Textausgabe mit vollständiger /ToUnicode-Rückordnung für die Korrektheit von Kopieren / Einfügen
Lateinische Standardligaturen (ff / fi / fl / ffi / ffl / ſt / st über U+FB00-FB06) werden automatisch über ApplyLatinLigatureRefinement ausgegeben, wenn sfStandardLigatures aktiviert ist; für GSUB-Ersatz-GIDs ohne natürlichen Unicode-Codepoint – Devanagari-Clusterformen, stilistische Alternativen, CJK-ideografische Variationssequenzen – weist AssignSyntheticCodepointForGID einen Private-Use-Area-Codepoint (U+E000-F8FF) mit gespiegelter Integration von /CIDToGIDMap + /W + /ToUnicode zu
Jeder OpenType GSUB LookupType 1-8 (Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual) ist als reine Abfrageoberfläche implementiert (GetSingleSubstituteGlyph, ApplyLigatureSubstitution, ApplyContextualSubst, ApplyReverseChainedContextualSubst und die Hilfsprogramme für Multiple / Alternate / Script / LangSys / Feature); MarkUnicodeGlyphUsed zieht jede Ersatzglyphe in den TTF-Subsetter, sodass eingebettete Schriftarten-Subsets in sich geschlossen bleiben
/DRXFA-Containerpakete nach PDF 1.7 §12.7.6 / §12.7.8 werden neben (oder anstelle von) statischen /Fields über AddXFAPacket übertragen; die vollständige AcroForm-Formularfeld-Triggerfamilie (/AA /K Tastenanschlag, /F Format, /V Validierung, /C Berechnung) wird als Wrapper-Methoden bereitgestellt, und RegisterAcroFormFont bindet mehrere Unicode-Schriftarten an ein einziges AcroForm-/DR-Ressourcenverzeichnis für mehrsprachige Formular-Widgets
THotPDF.EnableFontSubsetting erstellt Subsets von TrueType-, OpenType-CFF- und CID-keyed CFF-Schriftarten, während die Glyphen-IDs für Type0- / Identity-H-Text beibehalten werden; CJK-PDFs, in die zuvor 14 MB große CID-keyed CFF-Programme eingebettet waren, werden jetzt mit 500 KB bis 2 MB ausgeliefert, ohne dass gerenderte Glyphen verloren gehen
BeginIncrementalUpdate, SaveIncrementalUpdate, MarkDirty und die Signaturplatzhalter-APIs unterstützen PDF-Updates nach dem Append-Only-Prinzip sowie Workflows mit mehreren Signaturen, ohne zuvor signierte Byte-Bereiche neu zu schreiben
GetSyriacJoiningClass / GetSyriacPosition), Mongolisch (GetMongolianJoiningClass / GetMongolianPosition), Devanagari (GetDevanagariCategory / ApplyDevanagariReorder) – steuern dieselbe GSUB-Engine für komplexe nicht-arabische SkripteShapingFeatures: sfArabicGSUB wendet natives arabisches init / medi / fina / isol plus rlig / calt / rclt an, um schriftartspezifische kontextuelle Glyphen-IDs auszugeben, sfCursiveAttachment wendet kursive GPOS-Anker an, sfStandardLigatures / sfContextualLigatures geben lateinische liga / clig aus (FB00-FB06: ff / fi / fl / ffi / ffl / ſt / st) und sfIndicShaping ordnet Devanagari-Cluster (Repha + pre-base I-matra) vor der Ausgabe umMarkUnicodeGlyphUsed), Cmap Format 12 SMP-Abdeckung, GDEF-Parsing, ToUnicode CMap-Auto-Ausgabe mit 35 Ligatur-Rückordnungs-Einträgen sowie einer GetUnicodeGlyphForCodepoint-Suche für Aufrufer, die die Ausgabe Glyphe für Glyphe steuernAssignSyntheticCodepointForGID / GetSyntheticCodepointForGID) ermöglicht es Erzeugern, jede GSUB-Ersatz-GID (Devanagari-Clusterformen, stilistische Alternativen, CJK-ideografische Variationssequenzen) über die Private Use Area U+E000-F8FF mit gespiegelter Integration von /CIDToGIDMap + /W auszugeben; GetCodepointAdvance stellt den zwischengespeicherten /W Geviertbruchteil für Zeilenumbruchberechnungen bereitvkrn / vpal bei der vertikalen Textausgabeliga / clig / dlig / hlig, Kapitälchen smcp / c2sc, Ziffernstile onum / lnum / pnum / tnum, sups / subs / ordn / frac / sinf / numr / dnom, stilistische Alternativen salt, kontextbezogene Alternativen calt / rclt, lokalisierte Formen locl, fallbezogene Formen case, durchgestrichene Null zero und vertikale Alternativen vert / vrt2, wobei verkettete Ersetzungen in der ToUnicode CMap wieder dem Quelltext zugeordnet werden/AA /K Tastenanschlag, /F Format, /V Validierung, /C Berechnung) mit einer Wrapper-Methode pro Trigger; Multi-Unicode-/DR-Schriftartenregistrierung über RegisterAcroFormFont; XFA (XML Forms Architecture)-Container-Unterstützung (PDF 1.7 §12.7.6 / §12.7.8) mit AddXFAPacket / ClearXFAPackets / XFAPacketCount und PDF/A + PDF/X-Konformitäts-Gates, plus XFA-zu-AcroForm-Verflachung (ApplyXFAAsAcroForm für rohe XDP-Bytes, FlattenLoadedXFA für das eingebettete Formular eines geladenen PDFs), die statisches XFA in native AcroForm-Felder, Stile und Seitengrafiken umwandelt, sodass das Formular in Readern ohne XFA-Engine sichtbar und ausfüllbar bleibtBeginTaggedContent (/Lang / /Alt / /ActualText / /E), Attribut-Setter für Strukturelemente (/Lang / /E / /T), Table 333 Standard-Strukturtyp-Enum (THPDFStandardStructureType) plus eine typisierte Überladung von AddStructureElementAktuelle HotPDF-Builds verwenden zlib-ng im zlib-kompatiblen Modus für das enthaltene Flate-Backend; Seiten-Streams, eingebettete Schriftarten-Streams, ToUnicode CMaps, Flate-Bild-Streams, TIFF-bezogene Ausgaben und FlateDecode-Hilfsprogramme werden über die HotPDF-zlib-Ebene geleitet
Die zlib-ng-Builds für Win64x und die diagnostischen MSVC-Win64-Builds enthalten CPU-Laufzeit-Dispatch für SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ und AVX2-Pfade unter Beibehaltung generischer Fallbacks; Win32 verbleibt auf dem generischen zlib-ng-OMF-Objektsatz über bcc32c, während Win32-JPEG- und -TIFF-Objekte weiterhin den klassischen bcc32-OMF-Pfad verwenden
Standard-JPEG-Workflows verwenden den enthaltenen libjpeg-turbo 3.1.90-Objektsatz über die von HPDFJpeg.pas bereitgestellte libjpeg-kompatible API; die nativen Builds für Win32, Win64 und Win64x enthalten nun die entsprechenden NASM SIMD-Objektsätze, und dasselbe native JPEG-Backend steht der TIFF-Integrationsschicht für die Verarbeitung von JPEG-komprimiertem TIFF zur Verfügung
Die C-Laufzeitbrücke in HPDFCLibs.pas löst nun malloc, free, realloc, calloc, memcpy, memmove und memset über eine Pascal-zugewandte Schicht auf, mit um 32 Byte ausgerichteter Zuweisung für SIMD-freundliche native Puffer
Das Repository enthält reproduzierbare Skripte zum Erstellen von Objekten: Lib\thirdparty\build-bcc32.bat, Lib\thirdparty\build-bcc64x.bat und Lib\thirdparty\build-vc64.bat für den vollständigen nativen Satz von C-Bibliotheken, plus Nur-zlib-ng-Skripte für fokussierte Komprimierungs-Rebuilds
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-Quellcode-Units, Paketprojekte, statische Objektdateien und enthaltene Bibliotheksintegrationen von DrittanbieternDemo\Delphi: Delphi-Beispiele für Dokumentengenerierung, Zeichnen, Bilder, Seiteneinrichtung, Verschlüsselung, Workflows zum Zusammenführen/Bearbeiten und mehrDemo\C++Builder: C++Builder-Beispiele, die auf die wichtigsten Delphi-Demo-Workflows ausgerichtet sindHtmlHelp: Produkthilfe und Referenzinhalte für Entwickler