Linux y macOS nativos

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

Use la API existente de TPDFlib para creación de PDF, guardado/carga, extracción y edición de texto, extracción estructurada, devoluciones de llamada de OCR portátiles, renderizado de mapas de bits, metadatos, cifrado, acceso por rangos de red y firma PFX nativa

Dependencias en tiempo de ejecución

ProveedorBibliotecaPropósito
OpenSSL 3libcryptoAES CBC/GCM, digests, identidades PKCS12, firmas CMS, integridad y cadenas de anclas de confianza explícitas
libcurllibcurl con DNS asíncronoHTTP/HTTPS, transporte binario acotado, acceso por rangos y solicitudes RFC 3161
CairolibcairoSuperficies de imagen de mapas de bits, trazados, recorte, contornos de glifos e imágenes
FontconfiglibfontconfigCoincidencia real de archivos de fuentes nativas, incluida la sustitución explícita de familia
OpenJPEG 2libopenjp2Decodificación y codificación JPEG 2000

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

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

Firmas y marcas de tiempo

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

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

ApplyPAdESSignatureTimeStamp usa 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 huella del mensaje, el EKU timeStamping crítico exclusivo, el nombre de la TSA, la política/nonce esperada opcional y la cadena de certificados confiable en el momento de la generación del token

Las marcas de tiempo del documento también verifican la huella real del ByteRange del PDF; el llamador puede usar el flujo de trabajo de paso directo DocTimeStamp existente y suministrar el token

Metadatos y renderizado

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

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

El renderizado usa almacenamiento de mapas de bits nativo real y superficies de imagen de Cairo; el renderizado por bandas conserva las coordenadas del espacio de dispositivo y usa filas de guarda para mantener el antialiasing de los límites consistente

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

La entrada rechaza fuentes de familia no incrustadas, colecciones, programas CFF y 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 la creación de subconjuntos permanecen como 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 explícita del compilador; el runner no cambia la configuración global del compilador ni agrega -FcUTF8

La suite comprueba los formatos ejecutables nativos reales y escribe un informe JSON con versiones de compilador y dependencias, hashes de código fuente, hashes de ejecutables, resultados y límites

Los fixtures incluidos en Tests/Native cubren guardado/recarga/renderizado de PDF, flujos de trabajo de texto, cifrado, metadatos, firmas, tráfico real HTTP/TSA y casos negativos de seguridad

Índice de referencia