Přenosné jádro pro Linux
Přenosné jádro zkompiluje stávající objektový model, parser jednoduchých objektů, pomocníky Direct File I/O, interpretér content streamů, pomocníky pro PDF hodnoty, writer xref a traileru, backend Flate i primitivy AES do nativních programů pro Linux ve Free Pascalu
HPDFPlatform poskytuje skutečné POSIX mapované soubory a poziční čtení, vytváření dočasných souborů, synchronizaci workerů i náhodné bajty od operačního systému; adaptér pro Windows zachovává stávající nativní chování souborů a mapování
Rozsah akceptace
Tests/Linux/Run-PortableCoreTests.sh sestaví nativní konzolový spustitelný soubor ELF x86_64, vymaže desktopové display proměnné, zkontroluje závislosti na GUI knihovnách a spustí osm skupin regresí s timeoutem
Kontroly pokrývají escapes parseru a nepřímé reference, invariantní PDF hodnoty a stream filtry, mapovaná okna a offsety sparse souborů nad 4 GiB, komprimované asynchronní spill streamy, známé odpovědi Flate a AES, MD5 hashe souborů, náhodné IV od operačního systému, validní klasickou serializaci xref, počty stránek a vyhledávání objektů přes Direct File i text a pozice glyfů v content streamu
Vygenerovaná jednostránková fixture se zapíše stávajícím writerem a nezávisle se přečte přes sdílené pomocníky Direct File; kontroly obsahu používají jak stávající resolver identity Latin-1, tak resolver fontu stránky s rozdíly kódování a explicitními šířkami
Data fontů a dekódování textu
HPDFFontData odděluje stávající dekódování názvů glyfů, kódování a sfnt CMap od GDI; nativní renderování vložených glyfů na Windows i stávající dekodér HPDFTextExtraction používají tutéž implementaci
THPDFTrueTypeData vystavuje podporované CMap lookupy, reverzní mapování glyfů na Unicode a horizontální posuvy hmtx pro sfnt obraz s jedním fontem
HPDFBaseFontMetrics ponechává provider Windows GDI a na Linuxu používá Fontconfig s nainstalovanými TrueType fonty pro standardní fonty bez explicitních šířek; substituce závisí na nainstalovaných fontech a pravidlech Fontconfig
Kontrakty platformních a fontových pomocníků
THPDFPlatformHandle je zobraňované handle nativní šířky a HPDFInvalidFileHandle je -1; HPDFOpenReadOnlyFile a HPDFCloseFile spravují read handly, zatímco HPDFFileSize a HPDFReadFileAt používají pozice Int64 a volající musí ošetřit zkrácená čtení
HPDFMappingGranularity dodává požadované zarovnání offsetu; HPDFCreateReadOnlyMapping vrací při selhání nulu, HPDFMapReadOnly namapuje požadovaný rozsah a HPDFUnmapReadOnly / HPDFCloseMapping uvolní view i mapování
HPDFCreateTemporaryFile exkluzivně vytvoří soubor, jehož cesta i úklid patří volajícímu; HPDFInitializeLock / HPDFDeleteLock spravují nativní kritické sekce
THPDFPlatformEvent je alias k TEvent; HPDFCreateEvent, HPDFWaitEvent, HPDFSignalEvent a HPDFResetEvent spravují synchronizaci a volající uvolní events poté, co worker skončí
HPDFSecureRandomBytes naplní požadovaný buffer z operačního systému nebo vyhodí výjimku
HPDFGlyphNameToUnicode, HPDFUnicodeToGlyphName, HPDFStdEncGlyphName, HPDFMacExpertEncGlyphName a HPDFBaseEncToUnicode zachovávají stávající chování názvů a kódování; HPDFBaseFontFamilyToken odstraní přípony subsetu a stylu, zatímco HPDFIsStandardTextFont rozpozná aliasy Helvetica, Times a Courier
HPDFMeasureBaseFontWidths používá provider Windows GDI nebo Linux Fontconfig a sdílené horizontální metriky sfnt; THPDFTrueTypeData a THPDFUnicodeByGID poskytují sdílené font-data API
Sdílené typy Direct File
HPDFDirectFileTypes vlastní stávající definice THPDFKeyType, THPDFProtection, THPDFProtectOptions, THPDFDirectXrefEntry, THPDFDirectObjectSource a THPDFDirectFileState
Toto oddělení dovolí HPDFDirectFileIO používat tytéž záznamy a typy oprávnění bez importu komponenty a GUI implementace
HPDFDoc ponechává aliasy a konstanty enum hodnot pod původními názvy; enum ordinály i layouty záznamů zůstávají beze změny
Inicializace programů pro Linux
Nativní programy ve Free Pascalu musí dát cthreads na první místo seznamu uses, než začnou používat worker thready; test přenosného jádra navíc načte cwstring, aby dodal manažer konverzí Unicode
Použijte FPC 3.3.1 nebo novější s jeho odpovídajícími jednotkami FCL a paszlib, C runtime, Fontconfig s nainstalovanými TrueType fonty a nástroje file, ldd a timeout; FPC_EXE a HPDF_LINUX_OUTPUT vyberou kompilátor a izolovaný výstupní adresář
Minimální podporovaná verze FPC je na každé platformě 3.3.1; nová akceptace zaznamenává skutečné sestavení kompilátoru i identitu zdroje, zatímco výsledky starších kompilátorů zůstávají historickými důkazy
Nativní dokumentové integrace
Nativní headless dokumentové API načítá klasické, xref-stream, hybridní i komprimované objektové grafy, rozliší resource stránek a Form, extrahuje Unicode text, upravuje podporovaná pole AcroForm, importuje stránky a publikuje inkrementální revize se zachovanými zdrojovými bajty
Verzované Linux C ABI vystavuje skutečné ELF dokumentové handly a synchronní C callbacky pro tyto nativní operace; THotPDF zůstává samostatnou integrací komponenty Windows
Nativní dokumentové workflow poskytují import HTML, viditelný i neviditelný text stránek, skutečné OCR Tesseract a konverzi raster PDF/A-4; importy stránek a validovaná text/vektor archivační konverze zachovávají původní resource a explicitní archivační oprava písem přidává ohraničené vkládání substitutů
Platformní kontrakty adaptérů, vlastnictví typů Direct File, hranice regresí i odkazy na nativní workflow a důkazy nasazení popisuje Tests/Linux/Readme.en-us.md
Headless dokument nyní přijímá ohraničený profil Standard AES-256 R5/R6 popsaný THPDFHeadlessAES256Security, včetně oprávnění owner/user, komprimovaných objektů a šifrovaných inkrementálních uložení formulářů
Runtime závislosti, podporovaný obsah, rozpočty, oprávnění, identitu zdroje a výstupní kontrakty popisují nativní Cairo rendering a atomická nativní publikace podpisů
Unicode form appearance podporují víceřádkový text, comb buňky, rotace, masky hesel a volitelný shaping HarfBuzz/FriBidi; samostatná nativní API obsluhují pole choice a button, dodané font rodiny i typovaný rich text se zachovanými šifrovanými revizemi
Nativní podepisovací workflow zahrnují identity PEM/PFX, nová pole podpisů, viditelná appearance a certifikaci; explicitní transport timestampů, důvěra i validované revokační důkazy si uchovávají své zdokumentované kryptografické a publikační požadavky
Zbývající hranice schopností
Bezpečnostní profil headless dokumentu podporuje Standard AES-256 R5/R6; ostatní security handlery zůstávají mimo ten profil, namísto aby se staly podporovanými přes adaptér přenosného jádra
Širší renderování anotací, obecný rich-text CSS/layout, kompletní grafy akcí a resource FDF a obecná kompatibilita dynamického XFA zůstávají aktivní v plánu dokončování schopností; výše uvedené implementované nativní integrace jsou dostupné nezávisle na té zbývající práci