Portabel Linux-kärna
Den portabla kärnan kompilerar den befintliga objektmodellen, den enkla objektparsern, Direct File I/O-hjälparna, tolken för innehållsströmmar, PDF-värdehjälparna, xref- och trailer-skrivaren, Flate-backend och AES-primitiverna till inbyggda Linux-program med Free Pascal
HPDFPlatform tillhandahåller äkta POSIX-mappade filer och positionella läsningar, temporärfilsskapande, workersynkronisering och slumpbyte från operativsystemet; Windows-adaptern bevarar det befintliga inbyggda fil- och mappningsbeteendet
Godkännandeomfattning
Tests/Linux/Run-PortableCoreTests.sh bygger ett inbyggt körbart x86_64 ELF-konsolprogram, rensar skrivbordets skärmvariabler, kontrollerar GUI-biblioteksberoenden och kör åtta grupper av regressioner med en timeout
Kontrollerna täcker parser-escapes och indirekta referenser, invarianta PDF-värden och strömfilter, mappade fönster och sparse-filoffset över 4 GiB, komprimerade asynkrona spillströmmar, Flate- och AES-kända svar, MD5-filhashar, operativsystemets slumpmässiga IV:er, giltig klassisk xref-serialisering, Direct File-sidantal och objektuppslag samt innehållsströmtext och glyfpositioner
Den genererade ensidiga fixturen skrivs av den befintliga skrivaren och läses oberoende via de delade Direct File-hjälparna; innehållskontroller använder både den befintliga Latin-1 identity-resolvern och sidans typsnittsresolver med kodningsskillnader och explicita bredder
Typsnittsdata och textavkodning
HPDFFontData skiljer den befintliga glyfnamn-, kodnings- och sfnt CMap-avkodningen från GDI; Windows inbäddade glyfrendering och den befintliga HPDFTextExtraction-avkodaren använder samma implementering
THPDFTrueTypeData exponerar stött CMap-uppslag, omvänd glyf-till-Unicode-mappning och hmtx-horisontella steg för en sfnt-avbild med ett enda typsnitt
HPDFBaseFontMetrics behåller Windows GDI-providern och använder Fontconfig med installerade TrueType-typsnitt på Linux för standardtypsnitt som utelämnar explicita bredder; substitutionen beror på de installerade typsnitten och Fontconfig-reglerna
Plattforms- och typsnittshjälparkontrakt
THPDFPlatformHandle är ett signerat handtag med inbyggd bredd och HPDFInvalidFileHandle är -1; HPDFOpenReadOnlyFile och HPDFCloseFile hanterar läshandtag, medan HPDFFileSize och HPDFReadFileAt använder Int64-positioner och anropare måste hantera korta läsningar
HPDFMappingGranularity tillhandahåller den krävda offsetjusteringen; HPDFCreateReadOnlyMapping returnerar noll vid fel, HPDFMapReadOnly mappar det begärda intervallet och HPDFUnmapReadOnly / HPDFCloseMapping släpper vyn och mappningen
HPDFCreateTemporaryFile skapar exklusivt en fil vars sökväg och städning tillhör anroparen; HPDFInitializeLock / HPDFDeleteLock hanterar inbyggda kritiska sektioner
THPDFPlatformEvent är ett alias för TEvent; HPDFCreateEvent, HPDFWaitEvent, HPDFSignalEvent och HPDFResetEvent hanterar synkronisering, och anroparen frigör händelserna efter att workern stoppat
HPDFSecureRandomBytes fyller den begärda bufferten från operativsystemet eller utlöser ett undantag
HPDFGlyphNameToUnicode, HPDFUnicodeToGlyphName, HPDFStdEncGlyphName, HPDFMacExpertEncGlyphName och HPDFBaseEncToUnicode behåller befintligt namn- och kodningsbeteende; HPDFBaseFontFamilyToken tar bort subset- och stilsuffix, medan HPDFIsStandardTextFont känner igen Helvetica-, Times- och Courier-alias
HPDFMeasureBaseFontWidths använder Windows GDI-providern eller Linux Fontconfig och delade sfnt-horisontella mått; THPDFTrueTypeData och THPDFUnicodeByGID tillhandahåller det delade typsnittsdata-API:t
Delade Direct File-typer
HPDFDirectFileTypes äger de befintliga definitionerna THPDFKeyType, THPDFProtection, THPDFProtectOptions, THPDFDirectXrefEntry, THPDFDirectObjectSource och THPDFDirectFileState
Den här separationen låter HPDFDirectFileIO använda samma poster och behörighetstyper utan att importera komponent- och GUI-implementeringen
HPDFDoc behåller alias och enumvärdeskonstanter under de ursprungliga namnen; enum-ordinaler och postlayouter är oförändrade
Programinitiering på Linux
Inbyggda Free Pascal-program måste placera cthreads först i uses-listan innan workertrådar används; det portabla kärntestet läser också in cwstring för att tillhandahålla Unicode-konverteringshanteraren
Använd FPC 3.2.2 eller nyare med dess FCL- och paszlib-enheter, en C-runtime, Fontconfig med installerade TrueType-typsnitt och verktygen file, ldd och timeout; FPC_EXE och HPDF_LINUX_OUTPUT väljer kompilator och isolerad utdatakatalog
Minsta stödda FPC-version är 3.3.1 på alla plattformar; ny acceptans registrerar faktiskt kompilatorbygge och källidentitet, medan äldre kompilatorresultat förblir historiska belägg
Återstående migrering
Det nativa headless-dokument-API:et läser in klassiska, xref-ström-, hybrida och komprimerade objektgrafer, löser sid- och Form-resurser, extraherar Unicode-text, redigerar stödda AcroForm-fält, importerar sidor och publicerar inkrementella revisioner med bevarade källbyte
Det här steget exponerar inte THotPDF på Linux: godtycklig dokumentinläsning och -sparande, komplett sidresursupplösning, AcroForm-redigering och utseenden, signaturer, rendering, OCR och C ABI kräver fortfarande ytterligare plattformseparation och end-to-end-godkännande
Nativa dokumentarbetsflöden tillhandahåller HTML-import, synlig och osynlig sidtext, verklig Tesseract-OCR och rasterkonvertering till PDF/A-4; sidimporter och validerad text-/vektorsarkivkonvertering bevarar ursprungliga resurser, och uttrycklig arkivtypsnittsreparation lägger till avgränsad substitutinbäddning
Se Tests/Linux/Readme.en-us.md för plattformsadapterkontrakten, ägarskapet av Direct File-typerna, exakta regressionsgränser, Windows smoke runner och återstående godkännandesteg
Headless-dokumentet accepterar nu den avgränsade Standard AES-256 R5/R6-profilen som THPDFHeadlessAES256Security beskriver, inklusive ägar-/användarbehörigheter, komprimerade objekt och krypterade inkrementella formulärsparanden
Se nativ Cairo-rendering och atomär nativ signaturpublicering för körtidsberoenden, stött innehåll, budgetar, behörigheter, källidentitet och utdatakontrakt
Unicode-formulärutseendegenerering bevarar ursprungliga revisioner och AES-säkerhet, renderar i minnet och efter omläsning, och avvisar explicit stödj-icke fält- eller formningspolicyer
Nativa signeringsarbetsflöden omfattar PEM/PFX-identiteter, nya signaturfält, synliga utseenden och certifiering; uttrycklig tidsstämpeltransport, tillit och validerad spärrningsbevisning behåller sina dokumenterade kryptografiska och publiceringskrav
Återstående förmågegränser
Headless-dokumentens säkerhetsprofil stöder Standard AES-256 R5/R6; andra säkerhetshanterare förblir utanför den profilen i stället för att bli stödda via den portabla kärnadaptern
Bredare annoteringsrendering, allmän rich-text-CSS/layout, fullständiga FDF-åtgärds- och resursgrafer och allmän dynamisk XFA-kompatibilitet förblir aktiva i förmågefullbördningsplanen; de implementerade nativa integrationerna ovan är tillgängliga oberoende av det återstående arbetet