Linux Portable Core

De portable core compileert het bestaande objectmodel, de simple-object-parser, de Direct File-I/O-helpers, de content-stream-interpreter, de PDF-waardehelpers, de xref- en trailerwriter, de Flate-backend en de AES-primitieven naar native Linux-programma's met Free Pascal

HPDFPlatform levert echte POSIX mapped files en positionele reads, het aanmaken van tijdelijke bestanden, workersynchronisatie en willekeurige bytes van het besturingssysteem; de Windows-adapter behoudt het bestaande native file- en mappinggedrag

Acceptatieomvang

Tests/Linux/Run-PortableCoreTests.sh bouwt een native x86_64 ELF-consoleexecutable, wist desktop-displayvariabelen, controleert op GUI-bibliotheekafhankelijkheden en draait acht groepen regressies met een timeout

De controles dekken parser-escapes en indirecte referenties, invariante PDF-waarden en streamfilters, gemapte windows en sparse-file-offsets boven 4 GiB, gecomprimeerde asynchrone spill-streams, Flate- en AES-known answers, MD5-bestandshashes, willekeurige IV's van het besturingssysteem, geldige klassieke xref-serialisatie, Direct File-pagina-aantallen en objectlookup, en content-stream-tekst en glyphposities

De gegenereerde one-page-fixture wordt door de bestaande writer geschreven en onafhankelijk via de gedeelde Direct File-helpers gelezen; inhoudscontroles gebruiken zowel de bestaande Latin-1 identity resolver als de page font resolver met encoding-verschillen en expliciete widths

Fontdata en tekstdecoding

HPDFFontData scheidt de bestaande decoding van glyphnamen, encodings en sfnt CMaps van GDI; Windows embedded glyph rendering en de bestaande HPDFTextExtraction-decoder gebruiken dezelfde implementatie

THPDFTrueTypeData biedt ondersteunde CMap-lookup, omgekeerde glyph-naar-Unicode-mapping en hmtx-horizontale advances voor een single-font sfnt-image

HPDFBaseFontMetrics gebruikt canonieke standard-font-advances voor twaalf exacte Helvetica/Times/Courier-namen en ondersteunde gedecodeerde tekens, behoudt de Windows GDI- en Linux Fontconfig-fallback voor andere fonts en behoudt expliciete PDF-widths

Platform- en fonthelpercontracten

THPDFPlatformHandle is een signed handle met native breedte en HPDFInvalidFileHandle is -1; HPDFOpenReadOnlyFile en HPDFCloseFile beheren read-handles, terwijl HPDFFileSize en HPDFReadFileAt Int64-posities gebruiken en aanroepers short reads moeten afhandelen

HPDFMappingGranularity levert de vereiste offset-uitlijning; HPDFCreateReadOnlyMapping geeft nul terug bij falen, HPDFMapReadOnly mapt het gevraagde bereik en HPDFUnmapReadOnly / HPDFCloseMapping geven de view en de mapping vrij

HPDFCreateTemporaryFile maakt exclusief een bestand aan waarvan het pad en de opruiming bij de aanroeper horen; HPDFInitializeLock / HPDFDeleteLock beheren native critical sections

THPDFPlatformEvent is een alias voor TEvent; HPDFCreateEvent, HPDFWaitEvent, HPDFSignalEvent en HPDFResetEvent beheren synchronisatie, en de aanroeper geeft events vrij nadat de worker is gestopt

HPDFSecureRandomBytes vult de gevraagde buffer vanuit het besturingssysteem of gooit een exception

HPDFGlyphNameToUnicode, HPDFUnicodeToGlyphName, HPDFStdEncGlyphName, HPDFMacExpertEncGlyphName en HPDFBaseEncToUnicode behouden het bestaande naam- en encodinggedrag; HPDFBaseFontFamilyToken verwijdert subset- en style-suffixen, terwijl HPDFIsStandardTextFont Helvetica-, Times- en Courier-aliassen herkent

HPDFMeasureBaseFontWidths gebruikt de Windows GDI-provider of Linux Fontconfig en gedeelde sfnt-horizontale metrics; THPDFTrueTypeData en THPDFUnicodeByGID leveren de gedeelde fontdata-API

Gedeelde Direct File-types

HPDFDirectFileTypes is eigenaar van de bestaande definities THPDFKeyType, THPDFProtection, THPDFProtectOptions, THPDFDirectXrefEntry, THPDFDirectObjectSource en THPDFDirectFileState

Door deze scheiding kan HPDFDirectFileIO dezelfde records en permissietypes gebruiken zonder de component- en GUI-implementatie te importeren

HPDFDoc behoudt aliassen en enum-waardeconstanten onder de oorspronkelijke namen; enum-ordinalen en recordlayouts zijn ongewijzigd

Initialisatie van Linux-programma's

Native Free Pascal-programma's moeten cthreads vooraan in de uses-lijst zetten voordat ze worker threads gebruiken; de portable-core-test laadt ook cwstring om de Unicode conversion manager te leveren

Gebruik FPC 3.2.2 of nieuwer met diens FCL- en paszlib-units, een C-runtime, Fontconfig met geïnstalleerde TrueType-fonts en de tools file, ldd en timeout; FPC_EXE en HPDF_LINUX_OUTPUT kiezen de compiler en de geïsoleerde uitvoermap

Resterende migratie

Deze fase legt THotPDF op Linux nog niet bloot: de native headless document-API laadt tegenwoordig klassieke, xref-stream-, hybride en compressed-object-grafen, lost pagina- en Form-resources op, extraheert Unicode-tekst en bewerkt AcroForm-tekstwaarden; het profiel omvat tegenwoordig Standard AES-256, streaming OpenSSL CMS/CAdES en incrementele handtekeningpublicatie, plus native Cairo/FreeType PNG-rendering en bestaande normale appearances; transactionele Unicode single-line TrueType-appearance-synthese is ook geverifieerd; legacy-versleutelingshandlers, OCR en de Linux C ABI vereisen aparte integratie

Zie Tests/Linux/Readme.en-us.md voor de platformadaptercontracten, het eigenaarschap van de Direct File-types, de exacte regressiegrenzen, de Windows smoke runner en de resterende acceptatiefasen

Het headless document accepteert tegenwoordig het begrensde Standard AES-256 R5/R6-profiel dat THPDFHeadlessAES256Security beschrijft, inclusief owner/user-rechten, gecomprimeerde objecten en versleutelde incrementele formulier-saves

Zie native Cairo rendering en atomische native handtekeningpublicatie voor runtime-afhankelijkheden, ondersteunde inhoud, budgetten, rechten, bronidentiteit en uitvoercontracten

Unicode-formulier-appearance-generatie behoudt originele revisies en AES-security, rendert in het geheugen en na herladen en wijst niet-ondersteunde veld- of shaping-policies expliciet af