Portabler Linux-Kern
Der portable Kern kompiliert das vorhandene Objektmodell, den Simple-Object-Parser, die Direct-File-I/O-Helfer, den Content-Stream-Interpreter, die PDF-Werthelfer, den Xref- und Trailer-Writer, das Flate-Backend und die AES-Primitiven mit Free Pascal in native Linux-Programme
HPDFPlatform stellt echte POSIX-gemappte Dateien und positionale Lesezugriffe, die Erzeugung temporärer Dateien, Worker-Synchronisation und Betriebssystem-Zufallsbytes bereit; der Windows-Adapter bewahrt das vorhandene native Datei- und Mapping-Verhalten
Abnahmeumfang
Tests/Linux/Run-PortableCoreTests.sh baut eine native x86_64-ELF-Konsolenanwendung, leert Desktop-Display-Variablen, prüft GUI-Bibliotheksabhängigkeiten und läuft acht Regressionsgruppen mit Timeout
Die Prüfungen decken Parser-Escapes und indirekte Referenzen, invariante PDF-Werte und Stream-Filter, gemappte Fenster und Sparse-File-Offsets oberhalb von 4 GiB, komprimierte asynchrone Spill-Streams, Flate- und AES-Known Answers, MD5-Datei-Hashes, Betriebssystem-Zufalls-IVs, gültige klassische Xref-Serialisierung, Direct-File-Seitenzahlen und Objektsuche sowie Content-Stream-Text und Glyphenpositionen ab
Das erzeugte Einseiten-Fixture schreibt der vorhandene Writer, gelesen wird es unabhängig über die gemeinsamen Direct-File-Helfer; Inhaltsprüfungen nutzen sowohl den vorhandenen Latin-1-Identity-Resolver als auch den Seitenschrift-Resolver mit Encoding-Differenzen und expliziten Breiten
Schriftdaten und Textdekodierung
HPDFFontData trennt die vorhandene Dekodierung von Glyphennamen, Encodings und sfnt-CMaps von GDI; Windows-Embedded-Glyph-Rendering und der vorhandene HPDFTextExtraction-Dekoder nutzen dieselbe Implementierung
THPDFTrueTypeData bietet unterstützte CMap-Suche, umgekehrtes Glyph-zu-Unicode-Mapping und horizontale hmtx-Vorschübe für ein sfnt-Image mit nur einer Schrift
HPDFBaseFontMetrics nutzt kanonische Standard-Schriftvorschübe für zwölf exakte Helvetica/Times/Courier-Namen und unterstützte dekodierte Zeichen, behält den Windows-GDI- und Linux-Fontconfig-Fallback für andere Schriften bei und bewahrt explizite PDF-Breiten
Plattform- und Schrift-Helfer-Verträge
THPDFPlatformHandle ist ein vorzeichenbehaftetes Handle in nativer Breite, und HPDFInvalidFileHandle ist -1; HPDFOpenReadOnlyFile und HPDFCloseFile verwalten Lese-Handles, während HPDFFileSize und HPDFReadFileAt Int64-Positionen nutzen und Aufrufer kurze Lesevorgänge (short reads) behandeln müssen
HPDFMappingGranularity liefert die nötige Offset-Ausrichtung; HPDFCreateReadOnlyMapping gibt bei Fehlschlag null zurück, HPDFMapReadOnly mappt den angeforderten Bereich, und HPDFUnmapReadOnly / HPDFCloseMapping geben Sicht und Mapping frei
HPDFCreateTemporaryFile legt exklusiv eine Datei an, deren Pfad und Aufräumen beim Aufrufer liegen; HPDFInitializeLock / HPDFDeleteLock verwalten native Critical Sections
THPDFPlatformEvent ist ein Alias für TEvent; HPDFCreateEvent, HPDFWaitEvent, HPDFSignalEvent und HPDFResetEvent kümmern sich um die Synchronisation, und der Aufrufer gibt Events frei, nachdem der Worker gestoppt hat
HPDFSecureRandomBytes füllt den angeforderten Puffer vom Betriebssystem oder wirft eine Exception
HPDFGlyphNameToUnicode, HPDFUnicodeToGlyphName, HPDFStdEncGlyphName, HPDFMacExpertEncGlyphName und HPDFBaseEncToUnicode behalten das vorhandene Namen- und Encoding-Verhalten; HPDFBaseFontFamilyToken entfernt Subset- und Stil-Suffixe, während HPDFIsStandardTextFont Helvetica-, Times- und Courier-Aliase erkennt
HPDFMeasureBaseFontWidths nutzt kanonische unterstützte Standard-Schriftvorschübe vor Windows GDI oder Linux Fontconfig und gemeinsame sfnt-Horizontalmetriken; THPDFTrueTypeData und THPDFUnicodeByGID stellen die gemeinsame Schriftdaten-API bereit
Gemeinsame Direct-File-Typen
HPDFDirectFileTypes besitzt die vorhandenen Definitionen von THPDFKeyType, THPDFProtection, THPDFProtectOptions, THPDFDirectXrefEntry, THPDFDirectObjectSource und THPDFDirectFileState
Diese Trennung erlaubt HPDFDirectFileIO, dieselben Records und Berechtigungstypen zu nutzen, ohne die Komponenten- und GUI-Implementierung zu importieren
HPDFDoc behält Aliase und Enum-Wertkonstanten unter den ursprünglichen Namen; Enum-Ordinale und Record-Layouts bleiben unverändert
Initialisierung von Linux-Programmen
Native Free-Pascal-Programme müssen cthreads an den Anfang der uses-Liste setzen, bevor sie Worker-Threads nutzen; der Portable-Core-Test lädt zusätzlich cwstring, um den Unicode-Konvertierungsmanager bereitzustellen
Verwenden Sie FPC 3.3.1 oder neuer mit seinen passenden FCL- und paszlib-Units, eine C-Runtime, Fontconfig mit installierten TrueType-Schriften sowie die Werkzeuge file, ldd und timeout; FPC_EXE und HPDF_LINUX_OUTPUT wählen Compiler und isoliertes Ausgabeverzeichnis
Die minimal unterstützte FPC-Version ist auf jeder Plattform 3.3.1; neue Abnahmen halten den tatsächlichen Compiler-Build und die Quellidentität fest, während ältere Compiler-Ergebnisse als historische Nachweise erhalten bleiben
Native Dokument-Integrationen
Die native Headless-Dokument-API lädt klassische, Xref-Stream-, Hybrid- und komprimierte Objektgraphen, löst Seiten- und Form-Ressourcen auf, extrahiert Unicode-Text, bearbeitet unterstützte AcroForm-Felder, importiert Seiten und veröffentlicht inkrementelle Revisionen mit bewahrten Quellbytes
Die versionierte Linux-C-ABI stellt echte ELF-Dokument-Handles und synchrone C-Callbacks für diese nativen Operationen bereit; THotPDF bleibt die separate Windows-Komponenten-Integration
Native Dokument-Workflows bieten HTML-Import, sichtbaren und unsichtbaren Seitentext, echte Tesseract-OCR und Raster-PDF/A-4-Konvertierung; Seitenimporte und validierte Text-/Vektor-Archivkonvertierung bewahren originale Ressourcen, und explizite Archiv-Schriftreparatur ergänzt begrenzte Substitut-Einbettung
Plattform-Adapter-Verträge, Direct-File-Type-Besitz, Regressionsgrenzen sowie Links zu nativen Workflows und Deployment-Nachweisen stehen in Tests/Linux/Readme.en-us.md
Das Headless-Dokument akzeptiert jetzt das begrenzte Standard-AES-256-R5/R6-Profil, das THPDFHeadlessAES256Security beschreibt, einschließlich Owner/User-Berechtigungen, komprimierter Objekte und verschlüsselter inkrementeller Formular-Saves
Siehe natives Cairo-Rendering und atomare native Signaturveröffentlichung für Runtime-Abhängigkeiten, unterstützte Inhalte, Budgets, Berechtigungen, Quellidentität und Ausgabekontrakte
Unicode-Formular-Appearances unterstützen mehrzeiligen Text, Comb-Zellen, Rotationen, Passwortmasken und optionales HarfBuzz/FriBidi-Shaping; separate native APIs behandeln Choice- und Button-Felder, gelieferte Schriftfamilien und typisierten Rich-Text mit bewahrten verschlüsselten Revisionen
Native Signatur-Workflows umfassen PEM/PFX-Identitäten, neue Signaturfelder, sichtbare Appearances und Zertifizierung; expliziter Timestamp-Transport, Trust und validierte Widerrufsnachweise behalten ihre dokumentierten kryptografischen und Veröffentlichungsanforderungen
Verbleibende Fähigkeitsgrenzen
Das Security-Profil des Headless-Dokuments unterstützt Standard-AES-256 R5/R6; andere Security-Handler bleiben außerhalb dieses Profils, statt durch den Portable-Core-Adapter unterstützt zu werden
Breiteres Annotation-Rendering, allgemeines Rich-Text-CSS/-Layout, vollständige FDF-Action- und Ressourcengraphen sowie allgemeine dynamische XFA-Kompatibilität bleiben im Fähigkeits-Vollendungsplan aktiv; die oben implementierten nativen Integrationen sind unabhängig von dieser verbleibenden Arbeit verfügbar