Núcleo portable de Linux
El núcleo portable compila el modelo de objetos existente, el parser de objetos simples, los helpers de I/O 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 nativos de Linux con Free Pascal
HPDFPlatform proporciona 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 preserva el comportamiento nativo existente de archivos y de mapeo
Alcance de aceptación
Tests/Linux/Run-PortableCoreTests.sh compila un ejecutable de consola ELF x86_64 nativo, limpia las variables de display del escritorio, verifica las dependencias de librerías 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 stream, ventanas mapeadas y offsets de archivos dispersos por encima de 4 GiB, streams de spill asíncronos comprimidos, known answers de Flate y AES, hashes MD5 de archivos, IVs aleatorios del sistema operativo, serialización xref clásica válida, conteos de páginas y búsqueda de objetos de Direct File, y posiciones de texto y de glifos de content streams
El fixture de una página generado se escribe con el escritor existente y se lee de forma independiente a través de los helpers compartidos de Direct File; las comprobaciones de contenido usan tanto el resolver de identidad Latin-1 existente como el resolver de tipografías de página con diferencias de encoding y anchos explícitos
Datos de tipografías y decodificación de texto
HPDFFontData separa de GDI la decodificación existente de nombres de glifos, encoding y CMap sfnt; el render embebido de glifos de Windows y el decodificador existente HPDFTextExtraction usan la misma implementación
THPDFTrueTypeData expone búsqueda CMap soportada, mapeo inverso de glifo a Unicode y avances horizontales hmtx para una imagen sfnt de una sola tipografía
HPDFBaseFontMetrics usa anchos de fuentes estándar canónicos para doce nombres exactos de Helvetica/Times/Courier y los caracteres decodificados soportados, retiene el fallback de GDI de Windows y Fontconfig de Linux para otras fuentes, y preserva los anchos PDF explícitos
Contratos de helpers de plataforma y de tipografías
THPDFPlatformHandle es un handle con signo de ancho nativo y HPDFInvalidFileHandle es -1; HPDFOpenReadOnlyFile y HPDFCloseFile gestionan handles de lectura, mientras que HPDFFileSize y HPDFReadFileAt usan posiciones Int64 y quienes llaman deben manejar lecturas cortas
HPDFMappingGranularity suministra la alineación de offset requerida; 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 a quien llama; HPDFInitializeLock / HPDFDeleteLock gestionan secciones críticas nativas
THPDFPlatformEvent es un alias de TEvent; HPDFCreateEvent, HPDFWaitEvent, HPDFSignalEvent y HPDFResetEvent gestionan la sincronización, y quien llama libera los eventos después de que el worker se detenga
HPDFSecureRandomBytes llena 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 encoding; 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 proporcionan la API compartida de datos de tipografías
Tipos compartidos de Direct File
HPDFDirectFileTypes posee las definiciones existentes de THPDFKeyType, THPDFProtection, THPDFProtectOptions, THPDFDirectXrefEntry, THPDFDirectObjectSource y THPDFDirectFileState
Esta separación permite que HPDFDirectFileIO use 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 los enums y los layouts de los records no cambian
Inicialización de programas Linux
Los programas nativos de Free Pascal deben colocar cthreads primero en la lista de uses antes de usar worker threads; la prueba del núcleo portable también carga cwstring para suministrar el administrador de conversión Unicode
Usen FPC 3.2.2 o más nuevo con sus unidades FCL y paszlib, un runtime de C, Fontconfig con tipografías 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 cada plataforma; la nueva aceptación registra el build real del compilador y la identidad de la fuente, mientras que los resultados de compiladores antiguos quedan 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 los bytes de origen preservados
El C ABI versionado de Linux expone handles de documentos ELF reales y callbacks C sincrónicos para estas operaciones nativas; THotPDF sigue siendo la integración separada del componente Windows
Los flujos de trabajo nativos de documentos proporcionan import de HTML, texto de página visible e invisible, OCR real con Tesseract y conversión a PDF/A-4 raster; los imports de páginas y la conversión validada de archivo texto/vector preservan los recursos originales, y la reparación explícita de fuentes de archivo añade incrustación sustituta acotada
Consulte Tests/Linux/Readme.en-us.md para los contratos de adaptadores de plataforma, la propiedad de tipos Direct File, los límites de regresión y los enlaces a la evidencia de flujos de trabajo nativos y despliegue
El documento headless ahora acepta el perfil acotado Standard AES-256 R5/R6 descrito por THPDFHeadlessAES256Security, incluidos permisos de propietario/usuario, objetos comprimidos y guardados incrementales de formularios cifrados
Consulte el rendering nativo Cairo y la publicación nativa atómica de firmas para dependencias de runtime, contenido soportado, presupuestos, permisos, identidad de fuente 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 manejan campos choice y button, familias de fuentes suministradas y rich text tipado con revisiones cifradas preservadas
Los flujos de trabajo nativos de firma incluyen identidades PEM/PFX, nuevos campos de firma, apariencias 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 de documentos headless soporta Standard 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 portable-core
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 de XFA dinámico siguen activos en el plan de finalización de capacidades; las integraciones nativas implementadas arriba están disponibles independientemente de ese trabajo restante