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