HotPDF 2.200.2 für Delphi und C++Builder

Native PDF-Generierung, -Bearbeitung, -Signierung, standardkonforme Ausgabe, Schriftartenoptimierung und Bildverarbeitung für RAD Studio-Anwendungen

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

Projektübersicht

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

Abdeckung von PDF-Standards

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

Warum Sie sich für HotPDF entscheiden sollten

Native RAD Studio Integration

Verwenden Sie vertraute Delphi- und C++Builder-Projekte, Pakete, Streams, Formulare und Zeichnungsmuster, anstatt eine separate PDF-Engine einzubinden

Moderne PDF-Funktionen

Erstellen Sie PDFs mit Formularen, Anmerkungen, Ebenen, Transparenz, Seitenübergängen, getaggten Strukturen, Verschlüsselung, Signaturplatzhaltern und inkrementellen Updates

Kompakte und schnelle Ausgabe

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

Wettbewerbsvorteile

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

Vollständige OpenType-Gestaltung und -Positionierung

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

Erzeugerseitige Gestaltung komplexer Skripte

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

In-Process-Signatur-Stack ohne externe Abhängigkeiten

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-Langzeitvalidierung, End-to-End

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

Drei-Achsen-Konformität + Preflight

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

Multi-Gigabyte Direct File API

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

CFF- / OpenType-CFF- / CID-Subsetting

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

Einheitliche Laufzeit-Protokollierungsfassade

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

Vier Berichts-Engine-Adapter

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

Vorteile für Entwickler

  • Quellcodeorientierte Integration hält Debugging und Bereitstellung unter Ihrer Kontrolle
  • Gemeinsame Delphi- und C++Builder-Beispiele erleichtern die Überprüfung des Verhaltens in beiden Sprachstapeln
  • Die statische Integration von C-Bibliotheken von Drittanbietern hält Komprimierungs- und Bildverarbeitungsabhängigkeiten reproduzierbar
  • Fokussierte Hilfs-APIs decken PDF-Filter, FlateDecode, LZW, CCITT, Bildmasken, Barcodes, Schriftarten-Subsetting und Seiteninhalts-Workflows ab
  • PDF-Versions-Gates können die Ausgabeversion automatisch anheben oder eine strikte PDF 1.3/1.4/1.5/1.6/1.7-Konformität über StrictVersionLock erzwingen
  • Gebrauchsfertige Delphi- und C++Builder-Paketprojekte decken die aktuellen RAD Studio-Generationen ab, einschließlich 13.1 Florence

Aktuelle Highlights der Bibliothek

Multi-Gigabyte Direct File API

Die 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

Preflight-Berichte

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

Formular-Toolkit für geladene Dokumente

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

In-Process-PFX- / PKCS#12-Signierung

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-Langzeitvalidierung

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

PDF/A-, PDF/X- und PDF/UA-Konformität

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

Berichts-Engine-Adapter von Drittanbietern

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

OpenType GPOS-Positionierungs-Engine

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

Gestaltungsabdeckung komplexer Skripte

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

Automatische OpenType-Typografiefunktionen

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

Kompakte Schriftartenausgabe

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

Erzeugerseitige Multi-Skript-Gestaltung

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

Automatische Gestaltungs-Pipeline (Phase 8)

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 + synthetische PUA-Codepoints

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

OpenType GSUB-Ersetzungs-Engine

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

XFA-Formulare + AcroForm-Trigger + Unicode-/DR

XFA-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

Schriftarten-Subsetting und CJK-PDFs

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

Inkrementelles Speichern mit mehreren Signaturen

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

Erweiterte Abdeckung von PDF-Funktionen

  • Versionsspezifische PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7 + ausgewählte PDF 2.0-API-Gates für Catalog, ViewerPreferences, Anmerkungen, JavaScript, Type0-Schriftarten, ToUnicode-Zuordnungen, Transparenz, Ebenen und Verschlüsselung
  • Konformitäts-Gates für PDF/A-1 / -2 / -3, PDF/X-1a / -3 / -4 und PDF/UA-1, die nicht konforme Funktionsaufrufe ablehnen, anstatt das Profil stillschweigend zu verletzen
  • Getaggte PDF-Strukturstrukturen mit Rollenzuordnungen, StructParents, ParentTree-Ausgabe und Strukturelementen für barrierefreiheitsorientierte Workflows
  • OutputIntents, ICC-Profile, Seitenboxen, Drehung, UserUnit, Tabs-Reihenfolge, Kachelmuster, ExtGState-Alpha, Mischmodi, Halbtöne (Type 1 / 5 / 6 / 10 / 16), Transferfunktionen und Funktionsreferenzen zur Schwarzaufbau- / Unterfarbenreduktion
  • Inline-Bilder, axiale Gradienten mit mehreren Stopps, radiale Gradienten, frei geformte / gitterförmig schattierte Dreiecksnetze (Gouraud-Schattierung), Coons-Patch- und Tensor-Produkt-Patch-Netze, Weichzeichnermaskenbilder für pixelweises PNG-Alpha und wiederverwendbare Musterfüllungen
  • Benannte Ziele, Seiten-Thumbnails, Gliederungsstile auf Seitenebene (Farbe, fett, kursiv), benannte JavaScript-Registrierung auf Dokumentenebene und die vollständige Line- / PolyLine- / Polygon-Zusatzfamilie (Beschriftung, Linienenden, Absicht, Randeffekt)
  • Die erzeugerseitige Arabisch-Gestaltung deckt die vollständige Verbindungsklassentabelle U+0672-06D5 plus über 40 statische arabische Präsentationsformen-A-Zuordnungen ab, mit Ligatur-Faltung im Post-Pass für LAM-ALEF, YEH-HAMZA + Vokalpaare (U+FBEA-FBFB), die Allah-Ligatur (U+FDF2) und die Bismillah-Phrase (U+FDFD)
  • Fähigkeitsoberflächen für Multi-Skript-Gestaltung: Syrisch (GetSyriacJoiningClass / GetSyriacPosition), Mongolisch (GetMongolianJoiningClass / GetMongolianPosition), Devanagari (GetDevanagariCategory / ApplyDevanagariReorder) – steuern dieselbe GSUB-Engine für komplexe nicht-arabische Skripte
  • Automatische Phase 8 Gestaltungs-Pipeline, gesteuert durch die optionale Eigenschaft ShapingFeatures: 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 um
  • Funktionsvollständige OpenType GSUB-Ersetzungs-Engine (LookupType 1-8) mit Script- / LangSys-Auswahl, TTF-Subsetter-Abschluss (MarkUnicodeGlyphUsed), 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 steuern
  • Die Ausgabe synthetischer PUA-Codepoints (AssignSyntheticCodepointForGID / 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 bereit
  • OpenType GPOS-Positionierungs-Engine hinter optionalen Gestaltungsschaltern: Paarkerning, einzelnes und kontextbezogenes (Kontext / verketteter Kontext) Kerning für Links-nach-Rechts- und Rechts-nach-Links-Text, Positionierung von Zeichen-zu-Basis / Zeichen-zu-Zeichen / Zeichen-zu-Ligatur mit komponentenweiser Genauigkeit bei Ligaturen, kursive Verbindung von Ein-/Austrittspunkten, Abstandspositionierung sowie vertikales Kerning vkrn / vpal bei der vertikalen Textausgabe
  • Erzeugerseitige Gestaltung komplexer Skripte für arabisches Supplement / Extended-A / Extended-B, Syrisch, Mongolisch, N'Ko, Adlam, Hanifi Rohingya, tibetische Stapelung, die indische Skriptfamilie über die Indic-Feature-Kette der Schriftart, Javanisch, Thai- / Lao-Zeichenanordnung, hebräische Vokalzeichenanordnung, Khmer, Myanmar, Tai Viet und Meetei Mayek, jeweils hinter einem eigenen optionalen Schalter mit ToUnicode-Rückordnung für Kopieren / Einfügen
  • Automatische OpenType-Typografiefunktionen während der Textausgabe: Ligaturen liga / 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
  • Schriftarteneinbettungsoptimierung: immer komprimierte eingebettete Schriftprogrammdateien, eine eingebettete Kopie pro Dokument für auf mehreren Seiten verwendete Schriftarten, deterministische Subsetting-Tags für reproduzierbare Ausgaben und ein optionaler nicht eingebetteter WinAnsi-Modus für Plain-ASCII-Text mit Standardschriftarten
  • AcroForm-Textfelder, Listenfelder, Kombinationsfelder, Kontrollkästchen, Optionsfelder, Schaltflächenaktionen (einschließlich erweiterter Aktionen wie Named / Hide / Show / ImportData / SubmitForm mit benutzergesteuerten /Flags), Signaturfelder und generierte Darstellungs-Streams (mehrzeilig + Comb + Rich-Text Tx + CID-Schriftart /AP)
  • AcroForm-Formularfeld-Triggerfamilie (/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 bleibt
  • Barrierefreiheitsoberfläche für getaggte PDFs nach PDF/UA-1: Sequenzeigenschaften für markierte Inhalte nach §14.8.4 bei BeginTaggedContent (/Lang / /Alt / /ActualText / /E), Attribut-Setter für Strukturelemente (/Lang / /E / /T), Table 333 Standard-Strukturtyp-Enum (THPDFStandardStructureType) plus eine typisierte Überladung von AddStructureElement
  • Unterstützung von Anmerkungen für Hervorhebungen, Freitext, Links, Dateianhänge, Popups, Schwärzungen, Wasserzeichen, Rich Media, 3D / U3D / PRC, Rahmenstile und verknüpfte Kommentar-Popups
  • Standardmäßige Kennwortsicherheit, AES-128- / AES-256-Sicherheits-Handler, PDF 2.0 R6-Hashing, Public-Key-Verschlüsselung für Zertifikatsempfänger über vom Aufrufer bereitgestellte PKCS#7-Umschläge sowie binärsichere Verarbeitung von Nicht-ASCII-Farbmittel- / Schriftartennamen
  • Digitale Signaturen nach PAdES B-B, B-T, B-LT und B-LTA mit RFC 3161-Zeitstempeln, DSS- / VRI-Langzeitvalidierungsverzeichnissen, Dokumentenzeitstempelsignaturen, Seed Value-Einschränkungen und XAdES-in-PDF
  • In-Process-PFX- / PKCS#12-Signierung: Der in der Bibliothek enthaltene Stack für ASN.1, RSA, AES, PKCS#12 und CMS SignedData signiert ein vorhandenes Platzhalter-PDF in einem einzigen Aufruf ohne jegliche Abhängigkeit von OpenSSL oder Plattform-Krypto
  • Drop-in PDF-Backends für FastReport 4 / FastReport VCL, QuickReport, ReportBuilder und DevExpress ExpressPrinting System, sodass vorhandene Berichtsdefinitionen über HotPDF ausgegeben werden, ohne dass Berichtslayouts neu geschrieben werden müssen

Hochleistungs-Komprimierungs- und Bildverarbeitungs-Stack

Aktuelle 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

Schnelles Delphi-Beispiel

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.

Paketinhalt

Typische Anwendungsfälle