Linux y macOS nativos

El backend nativo de FPC admite flujos de trabajo headless de la biblioteca en Linux x64 y macOS ARM64, produciendo programas ELF y Mach-O reales

Utilice la API existente de TPDFlib para la creación de PDF, el guardado y la carga, la extracción y edición de texto, la extracción estructurada, las devoluciones de llamada de OCR portátiles, la renderización de mapas de bits, los metadatos, el cifrado, el acceso a la red por intervalos y la firma PFX nativa

Dependencias en tiempo de ejecución

ProveedorBibliotecaPropósito
OpenSSL 3libcryptoAES CBC/GCM, resúmenes, identidades PKCS12, firmas CMS, integridad y cadenas de anclajes de confianza explícitas
libcurllibcurl con DNS asíncronoHTTP/HTTPS, transporte binario acotado, acceso por intervalos y peticiones RFC 3161
CairolibcairoSuperficies de imagen de mapa de bits, trazados, recortes, contornos de glifos e imágenes
FontconfiglibfontconfigEmparejamiento real con archivos de fuentes nativas, incluida la sustitución explícita de familias
OpenJPEG 2libopenjp2Descodificación y codificación JPEG 2000

Linux carga los SONAME del sistema correspondientes; macOS utiliza las bibliotecas ARM64 bajo /opt/homebrew y el libcurl del sistema

Las bibliotecas o símbolos ausentes y las operaciones no admitidas producen fallos explícitos; no se utiliza ningún sustituto del contexto de dispositivo de Windows

Firma y marcas de tiempo

El proveedor PFX predeterminado admite identidades reales de RSA y EC, CMS detached, CAdES y los perfiles heredados con SHA1 adjunto; la verificación comprueba los bytes del ByteRange del PDF y la firma CMS

La verificación de la cadena de certificados requiere anclajes de confianza explícitos; los certificados incrustados no otorgan confianza, y la integridad por sí sola no implica confianza

ApplyPAdESSignatureTimeStamp utiliza el transporte HTTP nativo predeterminado configurado para obtener y adjuntar un token RFC 3161 real; reserve suficiente capacidad de /Contents antes de la firma original

La verificación de la marca de tiempo comprueba el token firmado, la impresión del mensaje, el EKU timeStamping crítico exclusivo, el nombre de la TSA, la política/nonce esperados opcionales y la cadena de certificados de confianza en el momento de la generación del token

Las marcas de tiempo del documento también verifican la impresión real del ByteRange del PDF; quien llama puede utilizar el flujo de trabajo passthrough DocTimeStamp existente y suministrar el token

Metadatos y renderización

XMP utiliza un DOM real consciente de los espacios de nombres y conserva las propiedades no relacionadas durante las ediciones

El lector XML rechaza las declaraciones DTD sea cual sea la codificación de origen; los caracteres de entrada y descodificados están acotados, y una pasada en streaming limita la profundidad y los eventos de nodo antes de construir el DOM

La renderización utiliza almacenamiento real de mapas de bits nativo y superficies de imagen de Cairo; la renderización por franjas conserva las coordenadas del espacio de dispositivo y utiliza filas de guarda para mantener un suavizado coherente en los límites

La incrustación nativa de fuentes de familia resuelve un archivo Fontconfig real e incrusta un programa TrueType independiente completo con CIDFontType2, CIDToGIDMap Identity, métricas inicializadas y anchuras Unicode; el texto BMP y las capas de OCR portátiles sobreviven al guardado y la recarga del PDF

La entrada rechaza las fuentes de familia no incrustadas, las colecciones, los programas CFF y los derechos de incrustación de solo mapa de bits; la incrustación restringida requiere la anulación explícita de derechos existente, y las fuentes que prohíben los subconjuntos siguen siendo programas completos

Límites

Compilación y verificación

python3 Tests/Native/run_native_tests.py --compiler /path/to/fpc --output /tmp/pdflib-native-tests

Pase --config /path/to/fpc.cfg para una configuración de compilador explícita; el runner no cambia los ajustes globales del compilador ni añade -FcUTF8

La suite comprueba los formatos reales de los ejecutables nativos y escribe un informe JSON con versiones del compilador y de las dependencias, hashes de fuentes, hashes de ejecutables, resultados y límites

Los Tests/Native del repositorio cubren el guardado, la recarga y la renderización de PDF, los flujos de texto, el cifrado, los metadatos, las firmas, el tráfico HTTP/TSA real y los casos negativos de seguridad

Índice de referencia