Linux e macOS nativi

Il backend FPC nativo supporta i workflow headless della libreria su Linux x64 e macOS ARM64, producendo veri programmi ELF e Mach-O

Usa la consueta API TPDFlib per creazione PDF, salvataggio/caricamento, estrazione e modifica del testo, estrazione strutturata, callback OCR portabili, rendering bitmap, metadati, crittografia, accesso a intervalli di rete e firma PFX nativa

Dipendenze a runtime

ProviderLibreriaScopo
OpenSSL 3libcryptoAES CBC/GCM, digest, identità PKCS12, firme CMS, integrità e catene esplicite di ancore di attendibilità
libcurllibcurl con DNS asincronoHTTP/HTTPS, trasporto binario delimitato, accesso a intervalli e richieste RFC 3161
CairolibcairoSuperfici immagine bitmap, tracciati, ritaglio, contorni dei glifi e immagini
FontconfiglibfontconfigAbbinamento reale dei file font nativi, inclusa la sostituzione esplicita di famiglia
OpenJPEG 2libopenjp2Decodifica e codifica JPEG 2000

Linux carica i corrispondenti SONAME di sistema; macOS usa le librerie ARM64 sotto /opt/homebrew e il libcurl di sistema

Librerie o simboli mancanti o operazioni non supportate producono fallimenti espliciti; non viene usato alcun sostituto del device context Windows

Firme e timestamp

Il provider PFX predefinito supporta vere identità RSA ed EC, CMS detached, CAdES e profili legacy attached SHA1; la verifica controlla i byte del ByteRange PDF e la firma CMS

La verifica della catena di certificati richiede esplicite ancore di attendibilità; i certificati incorporati non concedono attendibilità, e l'integrità da sola non implica attendibilità

ApplyPAdESSignatureTimeStamp usa il trasporto HTTP nativo predefinito configurato per recuperare e allegare un vero token RFC 3161; riserva capacità /Contents sufficiente prima della firma originale

La verifica del timestamp controlla il token firmato, l'impronta del messaggio, l'EKU timeStamping critical esclusivo, il nome della TSA, la policy/nonce attesa opzionale e la catena di certificati fidata al momento della generazione del token

I timestamp del documento verificano anche l'impronta effettiva del ByteRange PDF; il chiamante può usare il consueto workflow di passthrough DocTimeStamp e fornire il token

Metadati e rendering

XMP usa un vero DOM consapevole degli spazi dei nomi e preserva le proprietà non correlate durante le modifiche

Le dichiarazioni DTD vengono rifiutate dal lettore XML indipendentemente dalla codifica sorgente; i caratteri di input e decodificati sono delimitati, e un passaggio in streaming limita profondità ed eventi nodo prima della costruzione del DOM

Il rendering usa vera memoria bitmap nativa e superfici immagine Cairo; il rendering a bande preserva le coordinate nello spazio dispositivo e usa righe di guardia per mantenere costante l'antialiasing ai bordi

L'incorporamento nativo di font di famiglia risolve un vero file Fontconfig e incorpora un programma TrueType autonomo completo con CIDFontType2, CIDToGIDMap Identity, metriche inizializzate e larghezze Unicode; il testo BMP e i livelli OCR portabili sopravvivono al salvataggio/ricaricamento del PDF

Il punto di ingresso rifiuta font di famiglia non incorporati, collezioni, programmi CFF e diritti di incorporamento solo bitmap; l'incorporamento limitato richiede il consueto override esplicito dei diritti, e i font che vietano il subsetting restano programmi completi

Limiti

Compilazione e verifica

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

Passa --config /path/to/fpc.cfg per una configurazione esplicita del compilatore; il runner non cambia le impostazioni globali del compilatore e non aggiunge -FcUTF8

La suite controlla i formati eseguibili nativi reali e scrive un report JSON con versioni di compilatore/dipendenze, hash delle sorgenti, hash degli eseguibili, risultati e limiti

Le fixture Tests/Native nel repository coprono salvataggio/ricaricamento/rendering PDF, workflow testuali, crittografia, metadati, firme, traffico HTTP/TSA reale e casi di sicurezza negativi

Indice di riferimento