Linux et macOS natifs

Le backend FPC natif prend en charge les workflows headless de la bibliothèque sur Linux x64 et macOS ARM64, en produisant de vrais programmes ELF et Mach-O

Utilisez l’API TPDFlib existante pour la création PDF, l’enregistrement/chargement, l’extraction et l’édition de texte, l’extraction structurée, les rappels OCR portables, le rendu bitmap, les métadonnées, le chiffrement, l’accès réseau par plages et la signature PFX native

Dépendances à l’exécution

FournisseurBibliothèqueRôle
OpenSSL 3libcryptoAES CBC/GCM, condensats, identités PKCS12, signatures CMS, intégrité et chaînes d’ancrages de confiance explicites
libcurllibcurl avec DNS asynchroneHTTP/HTTPS, transport binaire borné, accès par plages et requêtes RFC 3161
CairolibcairoSurfaces d’images bitmap, tracés, découpe, contours de glyphes et images
FontconfiglibfontconfigRésolution réelle des fichiers de polices natives, avec substitution de famille explicite
OpenJPEG 2libopenjp2Décodage et encodage JPEG 2000

Linux charge les SONAME système correspondants ; macOS utilise les bibliothèques ARM64 sous /opt/homebrew et le libcurl système

Des bibliothèques ou symboles manquants ou des opérations non prises en charge produisent des échecs explicites ; aucun substitut de contexte de périphérique Windows n’est utilisé

Signature et horodatage

Le fournisseur PFX par défaut prend en charge de vraies identités RSA et EC, CMS détaché, CAdES et les profils SHA1 attachés historiques ; la vérification contrôle les octets PDF ByteRange et la signature CMS

La vérification de chaîne de certificats requiert des ancrages de confiance explicites ; les certificats incorporés n’accordent aucune confiance, et l’intégrité seule n’implique pas la confiance

ApplyPAdESSignatureTimeStamp utilise le transport HTTP natif par défaut configuré pour récupérer et attacher un vrai jeton RFC 3161 ; réservez une capacité /Contents suffisante avant la signature d’origine

La vérification d’horodatage contrôle le jeton signé, l’empreinte du message, l’EKU timeStamping critique exclusif, le nom de la TSA, la politique/nonce attendus optionnels et la chaîne de certificats de confiance au moment de la génération du jeton

Les horodatages de document vérifient en outre l’empreinte réelle du ByteRange PDF ; l’appelant peut utiliser le workflow de passe-through DocTimeStamp existant et fournir le jeton

Métadonnées et rendu

XMP utilise un vrai DOM conscient des espaces de noms et préserve les propriétés sans rapport lors des modifications

Les déclarations DTD sont rejetées par le lecteur XML quelle que soit l’encodage de la source ; les caractères d’entrée et décodés sont bornés, et une passe en flux limite la profondeur et les événements de nœuds avant la construction du DOM

Le rendu utilise un vrai stockage bitmap natif et des surfaces d’image Cairo ; le rendu par bandes préserve les coordonnées de l’espace périphérique et utilise des lignes de garde pour garder un anticrénelage cohérent aux frontières

L’incorporation native de polices de famille résout un vrai fichier Fontconfig et incorpore un programme TrueType autonome complet avec CIDFontType2, CIDToGIDMap Identity, métriques initialisées et largeurs Unicode ; le texte BMP et les calques OCR portables survivent à l’enregistrement/rechargement du PDF

L’entrée rejette les polices de famille non incorporées, les collections, les programmes CFF et les droits d’incorporation limités aux bitmaps ; l’incorporation restreinte requiert la dérogation explicite de droits existante, et les polices qui interdisent le sous-ensemblement restent des programmes complets

Limites

Compilation et vérification

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

Passez --config /path/to/fpc.cfg pour une configuration de compilateur explicite ; le runner ne modifie pas les réglages globaux du compilateur et n’ajoute pas -FcUTF8

La suite vérifie les formats réels des exécutables natifs et écrit un rapport JSON avec les versions de compilateur/dépendances, les hachages des sources et des exécutables, les résultats et les limites

Les fixtures Tests/Native du dépôt couvrent l’enregistrement/rechargement/rendu PDF, les workflows de texte, le chiffrement, les métadonnées, les signatures, le vrai trafic HTTP/TSA et les cas de sécurité négatifs

Index de la référence