Núcleo portable de Linux

El núcleo portable compila el modelo de objetos existente, el parser de objetos simples, los helpers de E/S de Direct File, el intérprete de content streams, los helpers de valores PDF, el escritor de xref y trailer, el backend Flate y las primitivas AES en programas Linux nativos con Free Pascal

HPDFPlatform aporta archivos mapeados POSIX reales y lecturas posicionales, creación de archivos temporales, sincronización de workers y bytes aleatorios del sistema operativo; el adaptador de Windows conserva el comportamiento nativo existente de archivos y mapeos

Ámbito de aceptación

Tests/Linux/Run-PortableCoreTests.sh compila un ejecutable de consola ELF x86_64 nativo, limpia las variables de display de escritorio, comprueba las dependencias de bibliotecas GUI y ejecuta ocho grupos de regresiones con un timeout

Las comprobaciones cubren escapes del parser y referencias indirectas, valores PDF invariantes y filtros de flujos, ventanas mapeadas y offsets de archivos dispersos por encima de 4 GiB, flujos de spill asíncronos comprimidos, respuestas conocidas de Flate y AES, hashes MD5 de archivos, IVs aleatorios del sistema operativo, serialización clásica válida de xref, recuentos de páginas y búsqueda de objetos de Direct File, y texto y posiciones de glifos de content streams

El fixture de una página generado lo escribe el escritor existente y se lee de forma independiente mediante los helpers compartidos de Direct File; las comprobaciones de contenido usan tanto el resolver de identidad Latin-1 existente como el resolver de fuentes de la página, con diferencias de codificación y anchos explícitos

Datos de fuentes y decodificación de texto

HPDFFontData separa de la GDI la decodificación existente de nombres de glifo, codificaciones y CMap sfnt; el renderizado de glifos incrustados de Windows y el decodificador HPDFTextExtraction existente usan la misma implementación

THPDFTrueTypeData expone búsqueda CMap admitida, mapeo inverso de glifo a Unicode y avances horizontales hmtx para una imagen sfnt de una sola fuente

HPDFBaseFontMetrics conserva el proveedor GDI de Windows y usa Fontconfig con las fuentes TrueType instaladas en Linux para las fuentes estándar que omiten anchos explícitos; la sustitución depende de las fuentes instaladas y de las reglas de Fontconfig

Contratos de plataforma y de helpers de fuentes

THPDFPlatformHandle es un handle con signo del ancho nativo y HPDFInvalidFileHandle es -1; HPDFOpenReadOnlyFile y HPDFCloseFile gestionan handles de lectura, mientras que HPDFFileSize y HPDFReadFileAt usan posiciones Int64 y los llamadores deben gestionar lecturas que devuelvan menos bytes de los solicitados

HPDFMappingGranularity aporta la alineación de offset necesaria; HPDFCreateReadOnlyMapping devuelve cero en caso de fallo, HPDFMapReadOnly mapea el rango solicitado, y HPDFUnmapReadOnly / HPDFCloseMapping liberan la vista y el mapeo

HPDFCreateTemporaryFile crea de forma exclusiva un archivo cuya ruta y limpieza pertenecen al llamador; HPDFInitializeLock / HPDFDeleteLock gestionan secciones críticas nativas

THPDFPlatformEvent es un alias de TEvent; HPDFCreateEvent, HPDFWaitEvent, HPDFSignalEvent y HPDFResetEvent gestionan la sincronización, y el llamador libera los events después de que el worker se detenga

HPDFSecureRandomBytes rellena el buffer solicitado desde el sistema operativo o lanza una excepción

HPDFGlyphNameToUnicode, HPDFUnicodeToGlyphName, HPDFStdEncGlyphName, HPDFMacExpertEncGlyphName y HPDFBaseEncToUnicode conservan el comportamiento existente de nombres y codificaciones; HPDFBaseFontFamilyToken elimina los sufijos de subset y de estilo, mientras que HPDFIsStandardTextFont reconoce los alias de Helvetica, Times y Courier

HPDFMeasureBaseFontWidths usa el proveedor GDI de Windows o Fontconfig de Linux, y métricas horizontales sfnt compartidas; THPDFTrueTypeData y THPDFUnicodeByGID aportan la API compartida de datos de fuentes

Tipos compartidos de Direct File

HPDFDirectFileTypes es propietario de las definiciones existentes de THPDFKeyType, THPDFProtection, THPDFProtectOptions, THPDFDirectXrefEntry, THPDFDirectObjectSource y THPDFDirectFileState

Esta separación permite a HPDFDirectFileIO usar los mismos records y tipos de permisos sin importar la implementación del componente y de la GUI

HPDFDoc conserva alias y constantes de valores de enum bajo los nombres originales; los ordinales de enum y el layout de los records no cambian

Inicialización de programas Linux

Los programas nativos de Free Pascal deben colocar cthreads en primer lugar de la lista de uses antes de usar threads de worker; la prueba del núcleo portable también carga cwstring para aportar el gestor de conversión Unicode

Use FPC 3.3.1 o más nuevo con sus unidades FCL y paszlib coincidentes, un runtime de C, Fontconfig con fuentes TrueType instaladas y las herramientas file, ldd y timeout; FPC_EXE y HPDF_LINUX_OUTPUT seleccionan el compilador y el directorio de salida aislado

La versión mínima de FPC soportada es 3.3.1 en todas las plataformas; la nueva aceptación registra el build real del compilador y la identidad del código fuente, mientras que los resultados de compiladores antiguos permanecen como evidencia histórica

Integraciones nativas de documentos

La API nativa de documentos headless carga grafos clásicos, de xref-stream, híbridos y de objetos comprimidos, resuelve recursos de páginas y Forms, extrae texto Unicode, edita campos AcroForm soportados, importa páginas y publica revisiones incrementales con bytes de origen preservados

El C ABI versionado de Linux expone handles de documentos ELF reales y callbacks C síncronos para estas operaciones nativas; THotPDF sigue siendo la integración de componente separada de Windows

Los workflows nativos de documentos proporcionan importación HTML, texto de página visible e invisible, OCR real con Tesseract y conversión a PDF/A-4 ráster; las importaciones de páginas y la conversión de archivado de texto/vectores validada preservan los recursos originales, y la reparación explícita de fuentes de archivado añade incrustación sustituta acotada

Vea Tests/Linux/Readme.en-us.md para los contratos del adaptador de plataforma, la propiedad de los tipos de Direct File, los límites de regresión y los enlaces a la evidencia de workflows nativos y despliegue

El documento headless ahora acepta el perfil estándar acotado AES-256 R5/R6 descrito por THPDFHeadlessAES256Security, incluidos permisos de owner/user, objetos comprimidos y guardados incrementales de formularios cifrados

Vea el renderizado nativo Cairo y la publicación nativa atómica de firmas para dependencias de runtime, contenido soportado, presupuestos, permisos, identidad de origen y contratos de salida

Las apariencias Unicode de formularios soportan texto multilínea, celdas comb, rotaciones, máscaras de contraseña y shaping opcional HarfBuzz/FriBidi; APIs nativas separadas gestionan campos de choice y botones, familias de fuentes suministradas y rich text tipado con revisiones cifradas preservadas

Los workflows nativos de firma incluyen identidades PEM/PFX, campos de firma nuevos, appearances visibles y certificación; el transporte explícito de timestamps, la confianza y la evidencia validada de revocación retienen sus requisitos criptográficos y de publicación documentados

Límites de capacidades restantes

El perfil de seguridad del documento headless soporta el estándar AES-256 R5/R6; los demás security handlers quedan fuera de ese perfil en lugar de pasar a estar soportados a través del adaptador del núcleo portable

El rendering de anotaciones más amplio, el CSS/layout general de rich text, los grafos completos de acciones y recursos FDF y la compatibilidad general con XFA dinámico siguen activos en el plan de finalización de capacidades; las integraciones nativas implementadas arriba están disponibles de forma independiente de ese trabajo restante