HotPDF 2.931.0 pour Delphi et C++Builder

Les jobs JSON et l’ABI C exportent les pages chargées en HTML, XHTML, XML ou JSON sémantiques et les tableaux typés en CSV, JSON ou XLSX, avec traitement des pages sélectionnées, sortie bornée, annulation et préservation de la source

Guide de sélection des démos · Exemples Delphi · Exemples C++Builder

Des registries de règles de facturation versionnés prennent en charge la validation explicite de CII XML et de factures hybrides avec des couches de profil et de pays séparées, y compris les ressources XRechnung et CTC françaises officielles via un moteur Saxon configuré par l’hôte

Génération, édition, signature de PDF natifs, sortie conforme aux normes, optimisation des polices et imagerie pour les applications RAD Studio

HotPDF permet aux applications VCL de créer, modifier, sécuriser, signer, optimiser, importer, compresser et enregistrer des documents PDF directement depuis le code Delphi ou C++Builder, sans déployer de moteur d'exécution PDF externe

Aperçu du projet

HotPDF est une bibliothèque de composants PDF au niveau source pour Delphi et C++Builder. Elle est conçue pour les logiciels bureautiques qui ont besoin d’une sortie PDF déterministe, d’un dessin de pages direct, d’une forte intégration RAD Studio et d’un déploiement compact

Le composant couvre la génération PDF quotidienne, l’assemblage avancé de documents, l’édition PDF, la sortie riche en images, les formulaires avec garde-fous contre les noms de champs dupliqués, les annotations, les wrappers de champs AcroForm à la création, les chaînes réutilisables de builders d’actions pour les actions d’ouverture, les actions de cycle de vie de document, les actions additionnelles de page, les actions d’annotation, les actions additionnelles d’annotation, les actions additionnelles AcroForm, le chiffrement, les flux de signature, l’optimisation des polices et les flux orientés streams depuis une seule surface d’API native

La boîte à outils de documents chargés ajoute la suppression par plages de pages, la fusion consciente des signets et d’AcroForm, la contrainte de formulaires multi-widgets, l’édition de géométrie, visibilité, rotation, bordure et couleur, l’édition complète d’annotations, l’activation automatique des adresses web et e-mail nues, la recherche sans état du match suivant, les instantanés complets typés de signets, la signature depuis le magasin de certificats Windows, l’impression collationnée déterministe avec découverte des capacités du papier, les instantanés Viewer pleine page, région bornée et bornés en pixels, le préchargement de pages adjacentes conscient du cache, les surlignages de pages persistants, la sélection au lasso consciente de la rotation, l’impression de la vue courante, la navigation clavier et molette, et des composants Viewer VCL

Les versions récentes de la bibliothèque ont élargi HotPDF d’un écrivain PDF classique en une boîte à outils PDF native plus large couvrant le verrouillage de fonctionnalités PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7 spécifique à la version, la sortie PDF 2.0 native, la conformité aux normes PDF/A-1 / -2 / -3 / -4 + PDF/X-1a / -3 / -4 + PDF/UA-1 / -2, les signatures numériques PAdES baseline / étendue / validation à long terme, un pipeline de signature PFX / PKCS#12 en cours de processus avec RSA et ECDSA natifs plus Ed25519 et Ed448 OpenSSL 3 optionnels, les mises à jour incrémentales Standard et à clé publique chiffrées préservant les identifiants avec IDs permanents stables, IDs de modification tournants, préfixes de source à l’octet exact et enregistrements no-op à l’octet exact, la création de sous-ensembles de polices CFF / OpenType / CID-keyed CFF, et des adaptateurs d’export PDF pour FastReport, QuickReport, ReportBuilder et DevExpress ExpressPrinting qui routent leurs rapports existants via HotPDF comme unique backend PDF. Une API fichier directe traite des PDF multi-gigaoctets à millions d’objets de fichier à fichier - nombres de pages, copies, réécritures d’informations de document, chiffrement ou déchiffrement AES-256 - en quelques secondes, tandis que le chargeur de récupération borné peut relocaliser une section xref valide ou reconstruire les offsets d’objets directs après des données startxref et xref endommagées sans se fier au texte ou aux données binaires ressemblant à des objets imbriqués, et publie des événements de récupération par plages d’octets avec des niveaux de confiance explicites

L’écrivain en opt-in LinearizeOutput ajoute une sortie fast web view avec une section de dépendances de première page, un groupement d’objets partagés, des tables d’indices de page primaire et d’objets partagés, et une table de références croisées de compatibilité précoce tout en conservant les destinations fichier et flux directes

HotPDF est une bibliothèque de composants PDF au niveau source pour Delphi et C++Builder ; elle est conçue pour les logiciels de bureau qui nécessitent une sortie PDF déterministe, un tracé de page direct, une forte intégration de RAD Studio et un déploiement compact

Le composant couvre la génération de PDF quotidienne, l'assemblage de documents avancé, l'édition de PDF, la sortie à forte intensité d'images, les formulaires, les annotations, le chiffrement, les flux de travail de signature, l'optimisation des polices et les flux de travail basés sur les flux à partir d'une seule interface API native

Les récentes versions de la bibliothèque ont étendu HotPDF d'un classique éditeur PDF à un outil PDF natif plus large couvrant le contrôle des fonctionnalités spécifiques aux versions PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7, le chiffrement PDF 2.0 sélectionné, la conformité aux normes PDF/A-1 / -2 / -3 + PDF/X-1a / -3 / -4 + PDF/UA-1, les signatures numériques de validation à long terme PAdES baseline / extended / long-term-validation, un pipeline de signature PFX / PKCS#12 en cours de processus qui ne dépend pas d'OpenSSL ou de binaires natifs externes, la sauvegarde des mises à jour incrémentielles, le sous-ensemblement de polices CFF / OpenType / CFF à clé CID, et des adaptateurs d'exportation PDF pour FastReport, QuickReport, ReportBuilder et DevExpress ExpressPrinting qui acheminent leurs rapports existants via HotPDF en tant que backend PDF unique ; une API Direct File traite les PDF de plusieurs gigaoctets et de millions d'objets de fichier à fichier — nombre de pages, copies, réécritures d'informations de document, et chiffrement ou déchiffrement AES-256 — en quelques secondes, et le chargeur récupère désormais également les documents enveloppés dans des conteneurs de transport avec des décalages obsolètes et les fichiers mis à jour de manière incrémentielle avec des objets orphelins ou remplacés

Les documents locaux volumineux utilisent un mapping mémoire fenêtré borné avec un cache LRU partagé pour les lectures de l’analyseur et des plages de flux paresseuses immuables, tandis que les seuils de mapping et la géométrie des fenêtres restent configurables et que les échecs retombent automatiquement en arrière ; les plages compressées brutes, images décodées, display lists compilées et pages raster rendues ont des limites indépendantes de nombre d’entrées, d’octets totaux et d’admission par entrée, combinent récence et admission fréquentielle à mémoire fixe vieillissante pour résister à la pollution par scans, et exposent des statistiques d’occupation, de trafic et de fréquence ; un ordonnanceur de pic mémoire équitable à l’échelle du processus retarde les chargements de documents concurrents, rendus, optimisations de flux et optimisations d’images parallèles avant que leurs ensembles de travail principaux ne se chevauchent, tout en préservant l’annulation et en rapportant la pression d’admission ; la sérialisation de flux non chiffrés et les transferts dirigés par l’appelant écrivent des octets mémoire, fichier mappé, fichier paresseux, cache adaptatif et cache de plages sans copie intermédiaire complète du flux ; les tokens et tampons de l’analyseur à courte vie utilisent une arène de blocs retenue à travers les chargements, les dictionnaires et tableaux simples scannent des plages immuables avec conversion numérique directe et imbrication en une passe, des budgets configurables d’octets, de tokens agrégés, d’entrées de conteneurs et de tokens malformés arrêtent les entrées hostiles avec une télémétrie typée, les clés de dictionnaire n’exigent plus d’objets de noms temporaires, et les noms répétés, opérateurs de contenu et chaînes courtes immuables partagent un pool borné à portée document ; les flux chargés modifiés utilisent LoadedStreamMemoryThreshold pour choisir la mémoire ou un flux temporaire compressé possédé dont les blocs bruts et compressés partagent une file d’écriture asynchrone bornée ; les membres des flux d’objets sont indexés par numéro d’objet et analysés seulement lorsqu’ils sont référencés, tandis que LoadFromRandomAccessSource connecte les lecteurs de plages HTTP et le stockage personnalisé, fusionne les lectures adjacentes via un cache borné, agrandit adaptativement la lecture anticipée asynchrone pendant une analyse avant soutenue, supprime le transport spéculatif après des sauts aléatoires, annule coopérativement le travail en vol pour les seeks du premier plan, récupère les clés de mots de passe depuis des plages bornées du trailer, de la xref, de l’ID de document et du dictionnaire de chiffrement sans demander la source complète, capture les entrées binaires exactes du gestionnaire de sécurité depuis l’offset d’objet faisant foi afin que le déchiffrement différé n’exige aucune relecture de la source, expose la première page linéarisée depuis son préfixe autoportant, et planifie des plages minimales bornées d’amorçage, d’indices, de pages, d’objets partagés et de références croisées pour toute page ultérieure tout en acceptant des lectures courtes légales et les dispositions d’indices interopérables et de l’annexe F sous des limites strictes de mémoire et de structure

Les fichiers locaux mappés s’adaptent désormais dans le plafond d’octets configuré : les lectures avant soutenues utilisent des vues plus grandes pour réduire le remapping, les lectures lointaines ou arrière soutenues retiennent jusqu’à 16 vues MRU plus petites, les changements de mode exigent des preuves répétées, et THPDFMappedFileStatistics rapporte la géométrie active, les octets mappés au pic, les comptes de motifs d’accès et les transitions

HotPDFABI.dll expose une ABI C plate versionnée avec des structures de callbacks Win32 et Win64 vérifiées en disposition, des handles opaques validés, des codes de statut fixes, des lectures à accès aléatoire 64 bits directement dans les tampons de l’analyseur, des écritures en flux reprise-possible, des longueurs d’octets explicites, l’annulation, la progression et les diagnostics ; build-HotPDF-ABI.cmd produit la DLL et la bibliothèque d’import pour chaque plateforme

Les opérations documentaires JSON et ABI C partagent la découverte de capacités, le rendu, le texte Unicode et les formulaires, les couches OCR, la caviardure, la signature PFX et la conversion d’archivage raster PDF/A-4 bornée via un schéma versionné, des budgets de ressources, un rollback par callback et une sortie fichier atomique ; les demandes d’archivage acceptent explicitement la perte d’informations et préservent leur source chargée

Les runs de texte enrichi JSON typés Windows et Linux acceptent des hauteurs de ligne normal, numérique, point, pourcentage et em explicites avec métriques calculées bornées, admission de police parente fournie et apparences sauvegardées transactionnelles ; Linux rejette les runs rich sur les champs non textuels et préserve les octets source exacts pour les remplissages rich-seuls inchangés

Le texte enrichi natif et le CSS inline importé préservent la hauteur de ligne explicite, les facteurs hérités, les longueurs calculées et les métriques de police parente entre les lignes coupées, les apparences sauvegardées et les champs en lecture seule ; les records natifs, les jobs de fichiers et callbacks Windows et les imports JSON FDF/XFDF Linux partagent une admission de polices bornée et une planification sûre à l’annulation

Les champs XFA legacy texte, numérique, date et mot de passe créent de vraies apparences de polices Unicode avec styles d’instance effectifs, ressources de polices éditables et adoption sûre à l’annulation ; les apparences de mots de passe comptent les caractères Unicode supplémentaires comme scalaires uniques

Les fonctions de couleur échantillonnées natives prennent en charge l’interpolation cubique multidimensionnelle bornée avec la convention existante à quatre nœuds, le repli linéaire en dimension courte, des échantillons compactés et l’annulation entre l’évaluation de teinte et d’ombrage

Le rendu JPEG 2000 Cairo natif accepte une précision source signée et non signée jusqu’à 26 bits, des profondeurs de composantes mixtes, le sous-échantillonnage et l’opacité, et honore la sémantique de déclaration d’images JPX via les API natives Windows et Linux

Les builds Free Pascal exigent FPC 3.3.1 ou plus récent sur chaque plateforme ; l’acceptation courante consigne le build réel du compilateur, et les résultats existants de compilateurs plus anciens restent des preuves historiques

Les backends natifs FPC fournissent TIFF, JPEG/JPX, ICC, JBIG2 et Zopfli via un pont de codecs Windows validé, ainsi que les rendus parallèles réels de pages, de pages ordonnées, de tuiles, de bandes et de tuiles JPEG 2000

Les sondes de régression différentielle déterministes comparent les moteurs nommés à travers les domaines d’analyse, de rendu, de texte et d’enregistrement, répètent chaque résultat pour détecter l’instabilité, isolent les exceptions, imposent des bornes d’entrée et de sortie, fournissent des empreintes HotPDF SHA-256 intégrées, et émettent le schéma JSON ordonné hotpdf.differential.v1

Le harnais natif de régression de performances statistique isole les workloads Win32 et Win64 de chargement, de sauvegarde, de rendu et d’extraction, enregistre les warmups plus 30 échantillons bruts avec p50, p95, variance d’échantillon, RSS, E/S processus, identité déterministe des fixtures et métadonnées d’environnement, et échoue contre des seuils JSON versionnés

Le stockage du corpus continu de PDF malformés revalide et re-minimise chaque cas d’échec sous des bornes configurables, garde la plus petite entrée équivalente en signature entre les exécutions, sérialise les écrivains concurrents avec un verrou sûr pour les processus, et publie atomiquement des fichiers PDF adressés par SHA-256 et des métadonnées hotpdf.corpus.case.v1

La télémétrie d’opérations unifiée sépare la réservation de l’ordonnanceur et le délai de file, le temps mural du temps CPU du thread courant, la mémoire de composants retenue portable de l’ensemble de travail du processus échantillonné, et l’entrée encodée de la sortie décodée finale, tout en rapportant aussi les allocations vivantes supplémentaires au pic, les deltas d’octets d’E/S du processus, l’activité de cache, le travail agrégé des filtres et l’expansion de décodage

Les journaux de replay déterministe borné capturent les points de contrôle d’annulation, la disponibilité des plages à accès aléatoire et les issues de callbacks booléens ou entiers dans un schéma JSON ordonné ; le replay strict valide chaque signature d’événement et substitue les décisions enregistrées, si bien que le timing externe intermittent et le comportement des callbacks peuvent être reproduits sans changer les opérations documentaires

Le chargement conscient des révisions valide désormais les listes libres xref et les transitions de génération tout en retenant des détails bornés pour les définitions d’objets dupliquées et masquées ; les éditions incrémentales destructrices fusionnent les objets existants et nouvellement libérés en une chaîne libre complète et déterministe, avancent les générations avec saturation, préservent les générations des objets sales, et exposent des statistiques de reconstruction ; les états d’objets explicites propre, sale, libéré et à écrire prennent en charge la libération du cache de flux d’objets après enregistrement à faible mémoire, tandis que l’ordre déterministe des dictionnaires, les instantanés JSON versionnés en flux du graphe d’objets et les mises à jour incrémentales, la sortie diagnostique QDF éditable avec réparation bornée des longueurs de flux et de la xref, les arêtes de dépendances bornées et l’attribution de mémoire retenue par dominateurs rendent l’inspection structurelle reproductible

Les couches de texte OCR interrogeables connectent un moteur de reconnaissance choisi par l’application à un rendu de pages borné, valident confiance, Unicode et géométrie des pixels, inversent la rotation de page pour un texte invisible aligné, lient optionnellement la sortie à un seul OCG, et valident chaque page sélectionnée via une seule transaction de graphe ; les couches OCR HotPDF marquées peuvent être remplacées en toute sécurité après enregistrement et rechargement, les mots latins et cyrilliques adjacents gagnent des espaces Unicode explicites, et l’exemple console SearchableOCR génère des échantillons de scans et convertit les pages sélectionnées avec l’OCR intégré, RapidOCR ou les moteurs Tesseract DLL/CLI, des limites configurables et des statistiques de conversion

Le prétraitement de scan et l’OCR structuré ajoute une orientation de page fondée sur des preuves, un redressement à angle continu, un nettoyage des bords et des ombres, une rectification explicite de perspective, une géométrie raster/page réversible et une sortie texte/DOM sémantique via un moteur OCR choisi par l’application

Le moteur OCR intégré reconnaît du texte ASCII régulier, gras, italique et gras italique, y compris les lettrages délavés et le texte clair sur une page majoritairement sombre ; les mots contenant des glyphes retenus incertains sont omis en entier afin d’éviter de perdre des caractères en silence

L’adaptateur Tesseract DLL natif optionnel fournit une segmentation de page et des modes de moteur configurables, une reconnaissance Unicode multilingue, la confiance, les bornes de mots et les lignes de base via HPDFCreateTesseractDLLOCREngine dans les builds Delphi, C++Builder et FPC/Lazarus Windows

L’adaptateur Tesseract CLI local accepte aussi THPDFTesseractOptions pour les dispositions ligne unique, mot unique, texte épars et bloc vertical, avec mode de moteur, délai d’attente et limites de pixels d’entrée explicites ; l’adaptateur DLL natif utilise la direction de la ligne de base pour éviter que la longueur des mots verticaux ne gonfle la taille du texte consultable

L’adaptateur RapidOCR à modèles locaux ajoute des chemins de modèles ONNX explicites, une classification d’angle optionnelle, des dictionnaires et polices locaux, des contrôles de threads CPU, un preflight hors ligne et une reconnaissance Unicode bornée via THPDFRapidOCROptions dans les builds Delphi, C++Builder et FPC/Lazarus Windows

L’adaptateur RapidOCR DLL natif conserve les modèles ONNX CPU en process et reconnaît des instantanés mémoire via HPDFCreateRapidOCRDLLOCREngine, avec des préréglages THPDFRapidOCRDLLOptions.ForLanguage pour le chinois simplifié et traditionnel, l’anglais, le japonais, le coréen, le russe, les langues latines courantes, l’arabe et l’hindi, des paquets de modèles locaux vérifiés, un ordre de lecture horizontal, une classification d’angle optionnelle, du texte Unicode, une sortie bornée et une annulation coopérative dans les builds Delphi, C++Builder et FPC/Lazarus Windows

Les adaptateurs locaux optionnels Tesseract et RapidOCR fournissent un OCR de chinois annulable avec chemins explicites d’exécutables et de modèles ; les jobs OCR JSON et ABI C exposent les adaptateurs CLI et DLL via des réglages de moteur explicites et une sortie PDF interrogeable bornée ; le moteur par défaut intégré reste inchangé, et les moteurs externes, paquets Python, modèles et le prérequis Arial local de RapidOCR doivent être provisionnés séparément

L’OCR valide l’encodage TSV local et les contrats de tenseurs de détection natifs avant d’utiliser les résultats, comptabilise les mots écartés contre les limites de reconnaissance multi-pages et s’arrête atomiquement quand le budget restant ne peut plus couvrir une autre page éligible

SetLoadedFreeTextPlainText remplace explicitement l’apparence d’une annotation FreeText chargée prise en charge par du texte ASCII Helvetica aligné à gauche pour la réécriture ou l’enregistrement incrémental, tandis que SetLoadedAnnotationContents ne change que ses contenus stockés

SetLoadedFreeTextText reconstruit les apparences FreeText Unicode et enrichies chargées avec polices embarquées, retour à la ligne, alignement, opacité, rotation et gestion atomique du débordement ; SetLoadedFreeTextRichText met désormais à jour l’apparence visible et le contenu stocké

Le décodage de codes-barres de pages chargées rend une page complète ou une région contenue dans le media box en tranches bornées progressives, prête chaque raster original ou tourné d’un quart de tour à un décodeur choisi par l’application, valide Unicode, octets bruts, confiance et bornes, inverse les rotations de raster et de page vers l’espace utilisateur PDF, et déduplique les charges utiles qui se chevauchent

La détection de caviardure avec relecture préalable combine les motifs de PII intégrés conscients des checksums avec des détecteurs d’entités et de visages choisis par l’application, projette chaque plage ou rectangle raster accepté dans l’espace de pages PDF, démarre chaque constatation en attente, et ne met en scène atomiquement que les constatations portant à la fois une approbation explicite et l’identité du relecteur, sans incruster le contenu

La réécriture de couleur de pages chargées convertit les peintures sélectionnées vers DeviceGray, DeviceRGB ou DeviceCMYK, retient le texte et les chemins de couleurs périphériques ordinaires comme vecteurs interrogeables, rend les images, Forms, motifs, shadings, transparence, ICC et couleur Type 3 via une seule image process sans perte lorsque nécessaire, préserve par défaut les pages portant des encres spot, et valide le lot borné complet atomiquement

L’export structuré de pages chargées écrit les pages sélectionnées en HTML, XHTML, XML ou JSON UTF-8 depuis un seul modèle de lecture accessible, en préférant l’ordre balisé et en retenant la langue et le titre du document, titres, listes, tableaux, figures, alternatives, signets, étiquettes de pages, liens sûrs, annotations et contrôles de formulaires non sensibles sous annulation atomique et budgets d’octets

L’extraction typée de tableaux convertit la géométrie détectée des tableaux en une grille canonique publique, joint les fragments compatibles et les pages adjacentes, marque les en-têtes répétés et les plages de colonnes fusionnées, déduit les valeurs entières, numériques, booléennes, de date, date-heure, monétaires et de pourcentages contrôlées par la locale avec confiance, et écrit atomiquement du CSV borné ou du JSON riche en métadonnées

Les gestionnaires de documents optionnels reconnaissent XPS, EPUB et CBZ depuis le contenu inspecté, préservent l’ordre de pages fixes, de spine ou naturel des images, convertissent les chemins XPS abrégés et les pinceaux pleins, linéaires multi-arrêts ou radiaux elliptiques d’éléments de propriété en vecteurs PDF natifs et motifs de shading, remplissent les chemins depuis des ressources ImageBrush de paquets JPEG, PNG, TIFF ou JPEG XR en cache avec mapping borné de viewbox et viewport, transformations locales au pinceau, motifs d’images répétés ou réfléchis natifs et alpha de soft-mask PNG, appliquent les valeurs Path.OpacityMask pleines, de dégradé ou d’image via alpha replié ou groupes DeviceGray partagés, composent les descendants Canvas qui se chevauchent une seule fois via des groupes DeviceRGB isolés pour Opacity et Canvas.OpacityMask, compilent les arbres VisualBrush XPS en ligne ou adossés aux ressources en Form XObjects réutilisables et motifs de tiling bornés, projettent la géométrie Canvas.Clip bornée transformée et structurée vers des chemins de rognage PDF natifs imbriqués, préservent les amas Glyphs XPS bornés, les programmes de polices exacts du paquet et les IDs de glyphes, les avances explicites, offsets, origines RTL, opacité, réutilisation de ressources, extraction Unicode et la navigation transformée HTTP, HTTPS, mail, page de paquet et LinkTarget via des annotations PDF natives rognées, héritent la navigation à portée Canvas à travers les visuels descendants avec dérogations imbriquées, émettent des séquences TJ positionnées, imposent les budgets partagés d’archives, de ressources, de reflow, de pages, de liens, d’URI, de géométrie, de contenu de groupes, de pixels, de sortie et d’annulation, et réutilisent un seul cache PDF immuable pour l’export et le rendu atomiques

La signature distante CSC connecte le pipeline de fournisseurs CMS existant aux services CSC API v2 via un transport HTTP possédé par l’application, avec rafraîchissement OAuth, découverte de chaîne d’identifiants, gestion de SAD épinglés par hash exacte, lots multisign ordonnés bornés, signature synchrone ou asynchrone, scrutation bornée, horodatages RFC 3161, annulation, clés d’idempotence SHA-256 adressées par contenu et un cache fini d’opérations achevées

Les transactions de graphe d’objets copy-on-write imbriquées font un instantané de chaque racine indirecte touchée une fois par point de sauvegarde, préservent les adresses des racines pendant l’annulation, restaurent l’allocation des numéros d’objets, retirent les racines ajoutées, débordent l’historique des grands flux au-delà d’un seuil configurable, et exposent des statistiques d’instantanés résidents et adossés aux fichiers

Les éléments de mise en page réutilisables prennent en charge une mesure sans effets de bord, des têtes de scission vérifiées et des continuations de débordement possédées pour les paragraphes, lignes, conteneurs et contenus personnalisés ; les callbacks de pages déclaratifs composent arrière-plans, en-têtes, contenu du document, pieds de page et premiers plans dans un ordre stable, tandis que les rapports non bornés retiennent la mise en scène de pages adossée aux fichiers, les contraintes de paragraphes, les diagnostics bornés, les helpers sémantiques et le contrôle de direction bidi

Le rendu de pages chargées exécute les motifs de tiling colorés et non colorés plus les shadings axiaux, radiaux, Gouraud à forme libre et en lattice, Coons patch et tensor-product patch pour remplissages et traits, honore les matrices de motifs dans le système de coordonnées par défaut du contenu parent, prend en charge les trois types de tiling et les pas signés, isole chaque chemin de cellule, applique les tints de base non colorés aux opérations de remplissage et de trait, et borne la profondeur de récursion des motifs, l’exécution de tuiles, le décodage des maillages et la tessellation adaptative face aux ressources hostiles

Le replay de bitmaps de production, de contexte de périphérique direct, de Forms et de display lists partage désormais un seul interpréteur de tokens de contenu avec annulation par opérateur ; les display lists compilées mettent en cache les index d’opérateurs pour un replay sans scan d’opérandes et exposent le nombre de commandes via THPDFPageDisplayList.OperatorCount et THPDFDisplayListInfo.OperatorCount, tandis que le renderer retient sa machine à états complète de graphique et de ressources

Les groupes de transparence isolés et knockout se rendent via des tuiles bornées de 768 pixels avec continuité absolue en coordonnées périphérique, stockage d’alpha et de soft-mask local aux tuiles, décodage et tokenisation de Forms en une passe, restauration déterministe de l’état des groupes imbriqués, et statistiques d’ensemble de travail au pic disponibles via GetLastTransparencyGroupTileStats

Les épreuves de surimpression en opt-in préservent les plaques process qu’une peinture ne nomme pas, appliquent la protection à composante nulle /OPM 1 pour DeviceCMYK, traitent DeviceGray comme la plaque process du noir, et combinent les tints spot Separation et DeviceN via leurs transformations de couleurs alternatives

Les glyphes Type 3 répétés réutilisent des display lists CharProc bornées indexées par police, glyphe, matrice linéaire et état de couleur, évitant les décodages et tokenisations répétés de flux tout en préservant la translation, le rognage, les ressources imbriquées, les règles de couleur d0/d1 et les limites de récursion

Les sessions de pages chargées progressives décodent les images DCTDecode progressives éligibles un scan par continuation bornée pour des aperçus visibles plus précoces, exposent les compteurs de scans et d’images via THPDFLoadedPageRenderSession, et fournissent des notifications annulables THPDFProgressiveJPEGScanEvent tout en retenant le repli d’image complète pour un état de peinture non pris en charge ou des échecs de décodage

Les sessions de régions progressives n’allouent que la fenêtre d’espace utilisateur demandée, retiennent l’état graphique et de texte à travers les continuations bornées, utilisent des bornes conservatrices de display lists pour éliminer les chemins, textes, images, Forms et shadings sans rapport, et exposent les comptes de peintures visibles et éliminées pour la télémétrie

Le décodage JPEG 2000 valide les tuiles individuelles des codestreams, combine la reconstruction de régions sources et d’intérêt à résolution, et décode concurremment les tuiles visibles indépendantes avec état de codec privé, annulation, limites de workers CPU et utilisateur, composition déterministe et repli automatique au budget de pic mémoire

Les hits du cache d’images chargées renvoient désormais des handles immuables de bitmaps décodés à comptage de références qui survivent à l’éviction et à la destruction du document, prennent en charge le dessin direct thread-safe, préservent des copies mutables isolées à la demande, et éliminent les copies répétées de pixels des chemins chauds du renderer

Le rendu parallèle de pages chargées chevauche désormais la compilation de display lists et le replay à travers des workers équilibrés dynamiquement, compile les pages sans rapport hors du verrou du cache, démarre la sortie avant que l’ensemble d’entrée complet ne soit compilé, préserve l’ordre d’entrée, et rapporte la concurrence des étapes, l’usage du cache, la complétion et la latence via THPDFParallelRenderPipelineInfo ; RenderLoadedPagesParallelOrdered ajoute des callbacks sur le thread appelant avec une file bornée de bitmaps achevés, une contre-pression de fenêtre ordonnée, une annulation coopérative des callbacks et des durées de vie de bitmaps empruntés pour les travaux dont la sortie raster complète ne doit pas rester résidente

Les deux API de pages parallèles utilisent désormais l’ordonnanceur de pic mémoire à l’échelle du processus pour réduire les workers demandés depuis des estimations conservatrices de pages, réservent chaque page revendiquée, retardent le travail équitablement sous pression, et rapportent la concurrence dérivée de la mémoire, les octets réservés au pic, les admissions, les retards et le temps d’attente ; les callbacks ordonnés gardent les réservations de sortie actives jusqu’à la libération des bitmaps afin que les rasters en file et les workers actifs partagent un budget unique

RenderLoadedPageTilesParallel et RenderLoadedPageBandsParallel mettent en flux une page à travers des workers isolés avec livraison de tuiles ligne-major ou de bandes de haut en bas, durées de vie de bitmaps empruntés, annulation coopérative, mémoire en vol contrôlée par l’appelant, et un cache immuable borné pour les séquences de tokens de glyphes Type 3 et les écrans de seuillage de halftone

SaveLoadedPageToPng, SaveLoadedPageToPngStream, SaveLoadedPagesToTiffBanded et SaveLoadedPagesToTiffStreamBanded alimentent le même renderer de bandes vers des encodeurs PNG ou TIFF en flux, émettant des lignes compressées sans framebuffer complet et rapportant la télémétrie de bandes, de lignes, de workers, de mémoire, de sortie, de timing et d’annulation

Les backends de rendu de pages chargées enfichables reçoivent des display lists compilées et un accès aux ressources du document, annoncent leurs capacités de concurrence et de gestion des couleurs, participent au rendu synchrone et parallèle, invalident les caches raster périmés lorsqu’ils sont remplacés, et exposent des statistiques déterministes d’échec, de repli et d’exécution ; le backend GDI natif intégré préserve la sortie existante sans prétendre à une accélération périphérique

Le préchargement de pages chargées compile et rend désormais hors du verrou du cache avec des points de contrôle d’annulation coopérative, cède immédiatement la place au rendu de pages au premier plan, et rapporte la progression des requêtes, l’usage du cache, les échecs, les comptes de préemptions et la latence d’annulation via THPDFLoadedPagePrefetchInfo

Les rendus depuis le cache au premier plan acquièrent leur réservation mémoire normale avant de chevaucher une copie de bitmap existante avec l’annulation du prefetch, conservent un ordre strict des cache miss et une télémétrie d’opération fidèle, et revérifient l’annulation après une attente de réservation ou du verrou du cache

La validation du graphe de segments JBIG2 vérifie désormais les flux d’images et globaux avant le décodage natif ou externe, rejette les dépendances malformées et l’organisation embarquée invalide dans des budgets explicites de segments, d’arêtes, de profondeur et de symboles, et empêche les dictionnaires partagés invalides d’entrer dans le cache des globals

L’encodage de lots JBIG2 entraîne désormais les symboles sur l’ensemble complet des pages via le backend statique externe, partage un dictionnaire global entre chaque XObject image, réduit les pages dupliquées exactes, retombe sur l’accumulateur natif lorsque c’est permis, et publie la télémétrie de backend, de taille, de symboles et de budget

Le rendu vectoriel et d’images basé sur ICC applique des pipelines complets de couleurs source, d’épreuve, de sortie et sRGB avec intention de rendu et compensation du point noir sélectionnables, tandis qu’un cache LRU borné thread-safe réutilise les transformations entre instances de documents et de renderers

La recompression d’images chargées et le downsampling à DPI effectif retiennent les définitions de sortie calibrées, tandis que l’aplatissement de transparence émet du RGB calibré et préserve les pages Separation ou DeviceN comme contenu vectoriel au lieu de jeter l’identité des encres spot

Les actions de calcul et de validation AcroForm des documents chargés peuvent utiliser un sous-ensemble typé borné d’expressions avec booléens, nombres, chaînes, null, undefined, tableaux, opérateurs conditionnels et à court-circuit, dates UTC déterministes, et helpers de chaînes, tableaux, conversions et Math sur liste blanche, tandis que le scripting actif non pris en charge échoue de façon fermée sans démarrer de moteur JavaScript

Les liaisons runtime QuickJS optionnelles exécutent un JavaScript plus large contrôlé par l’application via des objets statiques ou une DLL de pont neutre à l’ABI sous Win32 et Win64, avec des limites configurables de mémoire, de pile, de script, de temps et d’interruption plus une sémantique explicite de statut et de récupération

Le scripting de formulaires XFA étend FormCalc borné avec logique conditionnelle, tableaux numériques répétés et callbacks d’instances validés, tandis qu’un bac à sable QuickJS explicitement activé ajoute un flux de contrôle complet et des tableaux typés natifs sans exposer les objets de fichiers, de processus, de navigateur ou de réseau ; le runtime XFA dynamique interactif ajoute un focus neutre à l’hôte, l’édition Unicode, le hit testing, la validation et le calcul conscient des instances, l’annulation atomique et un reflow borné sans aplatissement

Les fenêtres de sélection de listes XFA natives utilisent les métriques de ligne réelles des polices embarquées pour garder les options sélectionnées visibles, sauvegardent l’index supérieur avec les tableaux complets d’options et de valeurs, et préservent les changements de polices par instance répétée et le rollback d’événements avec une préparation bornée des glyphes visibles

SanitiseLoadedDocument applique aux PDF chargés des politiques JavaScript seul, de contenu actif ou de document non fiable strict, retire les objets de charge utile inatteignables, compacte les numéros d’objets vivants, et réécrit en place en toute sécurité via un remplacement atomique de fichier

Les constatations preflight JSON, HTML et façon veraPDF exposent des identifiants de règles stables namespacés et des emplacements PDF structurés avec portée logique, chemin, clé et coordonnées exactes d’objet, de page ou d’octet lorsqu’elles sont disponibles, tandis que la compatibilité texte et CSV reste inchangée

Les politiques de validation réutilisables combinent désormais le preflight structurel avec des exigences d’intégration strictes ou WTPDF, extraient les métadonnées canoniques de déclaration et de revendication, exécutent des lots de fichiers ordonnés à travers des limites bornées de workers et de files, préservent les erreurs conscientes de la source, et offrent les modes inspect, ajout des manquants et synchronisation pour la réparation XMP indépendamment de la réparation structurelle du PDF

L’intégration Factur-X et ZUGFeRD recouvre désormais le type MIME de la pièce jointe de facture principale et les noms de FileSpec contre les enregistrements EmbeddedFiles et AF du Catalogue, expose le type MIME décodé et l’URI d’espace de noms XMP, et rejette les types de documents XMP ou espaces de noms d’extensions incohérents

La validation intégrée des règles métier de facturation électronique exécute tous les contrôles Schematron spécifiques aux profils avec une compatibilité XPath 2 revue, des bases de codes externes, des identifiants de règles stables, des erreurs d’évaluation explicites, une analyse XML sûre et des verdicts combinés à échec fermé

Les jobs de signature incrémentale conservent les signatures antérieures et remplissent les champs existants via des identifiants PFX, tandis que les jobs de comparaison de deux documents exposent six modes de comparaison et des artefacts de contrat JSON, HTML et PDF annoté bilatéraux via un JSON versionné et des dispositions ABI v1 inchangées

Les apparences AcroForm Unicode natives remplissent les champs monoligne pris en charge avec de vraies polices TrueType embarquées, des largeurs de glyphes exactes, un mapping CID-vers-glyphe et un ToUnicode complémentaire, mettent à jour chaque widget de façon transactionnelle, préservent la sécurité AES et rendent de manière cohérente avant et après la sauvegarde atomique

L’ABI C Linux native versionnée délivre de vraies opérations de texte, de formulaires, de PNG et de signature chiffrée via des callbacks bornés ; de vrais clients C et Python tournent sous Ubuntu 24.04, Ubuntu 26.04 et Debian 12, avec usage concurrent des handles, annulation et rollback d’échec

Le rendu PDF-vers-PNG Linux natif utilise des surfaces CPU Cairo/FreeType et une interprétation de contenu bornée partagée pour les chemins, le texte, les images, les Forms et les apparences d’annotations existantes, avec des avances de polices standard canoniques, une annulation coopérative, une protection des sources et une publication PNG atomique

La signature PDF headless native remplit un champ de signature non signé existant, préserve la révision d’origine et la sécurité AES-256, vérifie le CMS/CAdES résultant contre les octets exacts du fichier et publie atomiquement un vrai PDF signé incrémentalement depuis des identifiants PEM explicites

Le CMS headless natif streame les segments ByteRange partagés via OpenSSL 3, vérifie les révisions de signatures PDF existantes, génère des CMS/CAdES détachés depuis des identifiants PEM explicites et distingue l’intégrité de la confiance CA explicite

La sécurité AES-256 headless native ouvre les documents R5/R6 avec des mots de passe utilisateur ou propriétaire, authentifie les permissions chiffrées, déchiffre les objets et contenus compressés et publie des valeurs de formulaires incrémentales chiffrées tout en préservant le préfixe source d’origine sous Linux et Windows

La présentation d’instances XFA dynamiques prend en charge des événements conditionnels bornés, une liaison de données répétées explicite, une présence et un accès indépendants, des identités persistées stables, la peinture sur canvas hôte et des enregistrements d’accessibilité ; ce helper interprète sa propre extension de paquet de formulaires, que les lecteurs XFA externes n’appliquent pas automatiquement

L’édition bornée de paragraphes reformente le texte sélectionné à travers les lignes de base et les invocations partagées de Form prises en charge avec des contrôles explicites de police et de rectangle, des rapports de collision conservateurs, et un preview, commit et rollback scellés ; les sauvegardes répétées conservent le graphe édité sérialisé

Version 2.825.0 : signe les documents chiffrés via les jobs JSON et ABI C Windows tout en préservant les révisions d’origine, les réglages de sécurité AES, les IDs de document et les permissions de signature

Version 2.826.0 : lit et écrit les sélections de choix à valeurs tableaux Unicode, maintient des index d’options triés et génère des apparences correspondantes pour les sélections de listes visibles et défilées

Version 2.827.0 : exécute les pictures XFA de date, d’heure, numériques et texte sensibles aux locales avec des jeux de locales embarqués, des requêtes de locale transactionnelles bornées et une arithmétique IEEE JavaScript protégée

Version 2.828.0 : rend les groupes de transparence et de page CMYK à quatre composantes et ICC avec tous les modes de fusion, une géométrie knockout imbriquée et des budgets partagés de profils de couleurs

Version 2.829.0 : importe des graphes de ressources de pages natives et des apparences d’annotations transformées dans des documents simples ou chiffrés et convertit les entrées compatibles en texte interrogeable et PDF/A-4 vectoriel avec une vraie validation avant publication atomique

Version 2.830.0 : exécute des clauses picture XFA avancées numériques, calendaires, texte et composées via de vrais événements de formulaires, en préservant la précision d’entrée, la sémantique de locale et le replay transactionnel des scripts

Version 2.831.0 : applique de manière cohérente les contraintes de seed, de verrou et de lecture seule de signature aux noms PDF encodés, rejette les clés sémantiquement dupliquées et valide les dictionnaires de politique hérités

Version 2.832.0 : signe via l’ABI de callbacks Linux native avec des identités PEM ou PFX bornées, de nouveaux champs d’apparence Unicode et de certification, et conserve le document signé préparé comme contexte courant après une publication réussie

Version 2.833.0 : rend les CMaps Identity-V verticales et Unicode prédéfinies avec de vraies origines W2/DW2, matrices, déplacements de texte et clipping, et décode correctement les flux de CMaps Encoding embarquées

Version 2.834.0 : valide les identifiants de certificats de signature CAdES contre le signataire réel indépendamment de la confiance optionnelle des certificats, et résout les flux de CMaps Encoding embarquées via l’adaptateur de polices natif

Version 2.835.0 : exécute l’état hôte XFA transactionnel, les drapeaux de page et de cycle de vie, les changements de focus par instance, la validation des éditions en attente et les opérations de reset avec une identité stable et un replay d’état lexical

Version 2.836.0 : fournit un transport d’horodatage RFC 3161 synchrone via un enregistrement d’opération de signature native étendu compatible, avec des réponses bornées, une annulation partagée et une validation explicite de confiance et de révocation TSA

Version 2.837.0 : génère des apparences Unicode embarquées via le remplissage de formulaires JSON Linux natif pour les champs texte, choix et multisélection, les états checkbox et radio et les légendes de boutons poussoirs, en conservant la publication transactionnelle et le chiffrement

Version 2.838.0 : exécute des programmes FormCalc Eval générés à l’exécution avec des scopes de calcul isolés, une évaluation imbriquée, une source Unicode, des retries de compilation bornés et un replay transactionnel des réponses hôtes

Version 2.839.0 : implémente la copie de valeurs FormCalc et les références de nœuds stables avec affectation par référence, rebinding et détachement null, égalité d’identité numérique, handles retenus et rollback transactionnel

Version 2.840.0 : rend les couleurs sources CalGray, CalRGB et Lab calibrées, les fusions de groupes et de pages calibrées, les bases Indexed, les échantillons d’images 16 bits et les soft masks de luminance XYZ avec une conversion bornée et une évaluation gamma sûre

Version 2.841.0 : authentifie les révisions CMS et CAdES d’origine avant les mises à jour natives de formulaires, applique les permissions DocMDP et FieldMDP d’origine et les champs verrouillés, préserve le contenu et les ressources signés et synchronise atomiquement les métadonnées de légendes des boutons poussoirs

Version 2.842.0 : fournit une comparaison sémantique de contrats native en ABI C bi-documents et Pascal via un cœur portable partagé, avec géométrie de glyphes sources, entrées chiffrées et à contenu imbriqué, sortie de revue JSON ou HTML préparée et ordre de verrous concurrents stable

Version 2.843.0 : résout les chemins SOM XFA dynamiques avec occurrences inférées et relatives, prédicats à scope, sélecteurs de classe et de descendants, collections wildcard et affectations transactionnelles de propriétés d’objets de script

Version 2.844.0 : rend les tints alternatifs Separation et DeviceN avec des fonctions vectorielles bornées, des images packées et une fusion de groupes CMYK, préserve la géométrie knockout None et mappe de manière cohérente les couleurs d’enregistrement All

Version 2.845.0 : émet des références FieldMDP authentifiées depuis des verrous de champs de signature existants ou hérités, préserve les noms de champs Unicode chiffrés et les références de certification, et applique les niveaux de permission de verrou sans affaiblir les politiques signées d’origine

Version 2.846.0 : expose les datasets et nœuds de données XFA natifs avec des liaisons de formulaires bidirectionnelles, un miroir dynamique des données d’instance, des références retenues stables, des valeurs de formulaires non liées indépendantes et un replay transactionnel des scripts

Version 2.847.0 : applique les contraintes de seed et de certificats de signature native héritées avec de vraies chaînes d’émetteurs, des politiques de subject et de key usage, des digests CMS sélectionnables, des métadonnées de signature Unicode chiffrées et des transformations de documents verrouillés

Version 2.848.0 : résout les suffixes de chemins descendants XFA complets dans chaque contexte wildcard, préserve les frontières d’occurrences locales et exécute les prédicats dans le scope d’événement courant avec un rollback transactionnel exact

Version 2.849.0 : rend les polices Type1 et Type1C simples embarquées avec les encodages de glyphes Adobe déclarés ou intégrés exacts, garde l’extraction ToUnicode séparée des contours affichés et accepte un état graphique neutral stroke-adjustment et relative colorimetric validé

Version 2.850.0 : convertit les documents compatibles à polices manquantes en texte interrogeable et PDF/A-4 vectoriel avec un embarquement de polices Ghostscript explicite borné, une vraie validation veraPDF et une publication atomique, et sélectionne de manière cohérente des polices TrueType Unicode natives entre les distributions

Version 2.851.0 : rend les couleurs sources ICC Lab physiques et les entrées de compatibilité XYZ bornées dans les chemins, le texte, les images packées et les palettes Indexed, préserve les tints alternatifs calibrés et ICC à travers les groupes RGB ou CMYK et applique les profils JPX embarqués avec alpha séparé ou associé

Version 2.852.0 : écrit des attestations légales Unicode authentifiées dans les signatures de certification, honore les exigences de Legal seed certification-only, préserve les statistiques légales et les permissions de catalogue existantes et conserve les politiques de chaînes chiffrées

Version 2.853.0 : embarque de vraies preuves de révocation Adobe comme attributs signés CMS authentifiés, valide les chaînes complètes de certificats et d’horodatages contre une confiance explicite et des preuves CRL ou OCSP courantes avant publication, et applique l’embarquement de révocation requis par le seed de signature

Version 2.854.0 : expose les objets de propriétés et d’attributs XFA natifs avec des liaisons de formulaires persistantes par instance, des écritures valeur/données synchronisées et de vrais effets de police, de bordure, de paragraphe et de mise en page UI, en préservant le rollback transactionnel et les budgets de focus sans script

Version 2.855.0 : applique les valeurs par défaut de schéma de propriétés XFA natives et préserve les valeurs vides explicites, les styles par instance et les mesures fractionnaires en points de police, de bordure et de draw à travers la sortie AcroForm réelle et le PDF aplati

Version 2.856.0 : sélectionne de vrais presets d’apparence de signature native par nom de profil enregistré, génère des mises en page d’approbation, de certification et compactes distinctes, préserve les métadonnées de profil authentifiées et les politiques chiffrées et rejette les profils inconnus avant publication

Version 2.857.0 : compare nativement les documents par comptages de pages et d’objets, texte Unicode, graphes structurels normalisés et vrais pixels RGB ou de luminance rendus, avec équivalence sémantique des flux, entrées chiffrées authentifiées et préparation bornée avant publication par callback

Version 2.858.0 : décode exactement une fois les noms de polices, d’encodages, de glyphes, de couleurs et de ressources PDF échappés dans le rendu natif et l’extraction de texte partagée, préserve les clés de ressources hash littéraux et garde les noms équivalents alignés avec les contours réels et les métriques de glyphes

Version 2.859.0 : applique les surcharges XFA vivantes par instance de police, de paragraphe et de corps scalaire au vrai dessin et à la vraie mesure de texte enrichi, préserve la priorité du CSS inline et le contenu vide explicite via la persistance XDP native et conserve un rollback transactionnel exact

Version 2.860.0 : lie les options de signature et de vérification Linux natives à la sélection réelle de digest, aux métadonnées de signature Unicode, aux profils d’apparence nommés, aux octets de confiance explicites, à l’identité de transport d’horodatage et aux preuves de révocation authentifiées, avec une préparation privée bornée avant publication

Version 2.861.0 : exporte de vrais PDF de revue de contrats annotés natifs et des surlignages Unicode explicites avec des apparences normales visibles, en préservant le contenu source et les révisions de signatures incrémentales, en appliquant les permissions d’annotations P3 authentifiées et les droits utilisateur chiffrés, et en préparant des sorties bornées avant publication par callback

Version 2.862.0 : rend de vrais shadings PDF natifs de fonctions, axiaux et radiaux avec géométrie et évaluation de fonctions bornées, clipping hérité, sémantique Domain, Matrix, Extend et BBox, couleurs calibrées et spéciales, transparence, soft masks, fusion et groupes knockout

Version 2.863.0 : honore les contraintes de seed et de certificats de signature Windows héritées valides avec une vraie sélection de digest et de CAdES, des informations de signature Unicode, des verrous de champs indirects normalisés, des permissions de verrous historiques authentifiées, des secondes signatures permises et des politiques de formulaires chiffrées

Version 2.864.0 : préserve l’échéance de scan de codes-barres d’origine en priorisant les rasters linéaires complets et les groupes candidats de quiet zone, et rejette les bordures de finder DataMatrix projectives invalides avant l’échantillonnage des modules intérieurs sans changer les tolérances de finder

Version 2.865.0 : demande et authentifie des horodatages RFC 3161 pour des empreintes de message SHA256, SHA384 et SHA512 explicites sans re-hacher l’empreinte, en préservant des longueurs de digest strictes, des nonces frais, un transport borné, des chaînes de confiance et une validation de révocation

Version 2.866.0 : aligne les runs de texte enrichi XFA de tailles mixtes sur une baseline commune de PDF sauvegardé, préserve le mode de positionnement de texte de l’appelant et applique la marge de paragraphe adjacente plus grande, transitions de paragraphes vides comprises

Version 2.866.1 : authentifie les tokens RFC 3161 de signature brute selon leur véritable algorithme d’empreinte SHA256, SHA384 ou SHA512 pris en charge tout en conservant la valeur par défaut de requête SHA256 existante et les contrôles complets de confiance et de révocation du token

Version 2.867.0 : enveloppe le texte enrichi XFA à travers les styles inline avec des frontières de mots mesurées, des sauts de ligne explicites, des baselines et un alignement de ligne partagés, de vrais espaces de mots justifiés et une géométrie de liens de fragments, en préservant la persistance XDP native par instance répétée

Version 2.868.0 : génère des apparences de champs mot de passe masqués et de sélection de fichiers littéraux avec valeurs Unicode préservées et politiques AES-256, transporte l’Unicode supplémentaire échappé via l’ABI JSON native, retient les tokens source décimaux PDF subnormaux et crée des buffers de prefetch RGB sans DC d’écran

Version 2.869.0 : signe les documents Windows avec de vrais callbacks de transport RFC 3161 synchrones en ABI C et des empreintes SHA256, SHA384 ou SHA512, une confiance TSA authentifiée et des contrôles CRL, des contraintes de seed d’horodatage requises et une publication transactionnelle bornée

Version 2.870.0 : rend une vraie sortie Cairo Windows native avec des contours explicites de polices standard GDI et des conventions d’appel Win32 OpenJPEG correctes, en utilisant des dépendances natives épinglées reproductibles et une acceptation de sortie indépendante

Version 2.871.0 : crée les propriétés XFA manquantes de police, de paragraphe, de fill, de couleur, de bordure, d’edge et de coin via de vrais scripts d’événements natifs, persiste des liaisons de formulaires stables par instance avec un rollback exact et régénère les apparences optionnelles de widgets après des changements de style effectifs

Version 2.871.1 : exécute les corps d’événements XFA dans leur propre scope lexical et strict tout en préservant les alias de champs du scope externe, la valeur this de l’événement, les returns explicites et un rollback exact des échecs

Version 2.872.0 : crée de vraies signatures de certification Windows DocMDP avec permissions P1, P2 ou P3 et attestations légales Unicode authentifiées, honore les politiques de seed requises et les verrous FieldMDP, et ne permet les signatures ultérieures que là où la politique signée les autorise

Version 2.873.0 : crée des choix UI XFA persistants par instance via des scripts natifs et consomme de vrais widgets texte, mot de passe et choix avec des apparences multiline et à mots longs mesurés

Version 2.874.0 : édite les champs de texte enrichi natifs avec des runs de styles Unicode typés, de vraies polices embarquées regular, bold, italic et bold-italic, des baselines d’apparence à tailles mixtes mesurées, des décorations et des valeurs V/RV synchronisées à travers les widgets et la sortie chiffrée

Version 2.875.0 : résout les vraies valeurs par défaut des champs XFA sans fabriquer de données à la lecture, préserve les valeurs d’instance vides explicites et garantit que les éditions écrivent des données d’instance indépendantes sans modifier les templates partagés

Version 2.876.0 : embarque des preuves CRL et OCSP authentifiées dans les attributs RevocationInfoArchival Adobe Windows signés, applique les vraies politiques de seed et valide le statut de confiance, l’autorisation des réponses et la fraîcheur avant de publier les signatures

Version 2.876.1 : préserve la liaison SOM XFA complète et la vraie sélection de données d’instance émises tout en appliquant les valeurs par défaut de formulaire et de template aux instances manquantes, sans emprunter de valeurs à une autre occurrence répétée

Version 2.877.0 : rend de vrais patterns PDF de tiling et de shading colorés et non colorés avec des origines de patterns héritées, des cellules imbriquées, du chevauchement, des peintures stroke et stencil, de la transparence et une annulation bornée sur les cibles Linux et Windows natives

Version 2.878.0 : génère de vrais profils d’apparence de signature Windows avec polices Unicode embarquées pour les widgets fusionnés et séparés, les workflows de rotation, de chiffrement et de certification, et applique le AppearanceFilter requis contre le profil réellement généré

Version 2.879.0 : crée des enfants de valeurs scalaires XFA natifs persistants avec synchronisation immédiate champ, données et alias partagés, persistance typée des formulaires, commits de widgets, isolation par instance répétée et rollback transactionnel exact

Version 2.880.0 : rend de vraies valeurs de draw et de légendes scalaires XFA natives après leur création par script, préserve les valeurs vides explicites et l’isolation par instance répétée, et conserve un rollback exact quand un dessin natif ultérieur épuise son budget

Version 2.880.1 : observe l’annulation avant l’allocation du renderer de page et l’installation du contexte ainsi que pendant l’initialisation, préserve un contexte de couleur d’appelant actif quand la construction est rejetée initialement, et libère les display lists empruntées sans publier de bitmaps partiels

Version 2.880.2 : conserve l’alignement des paragraphes enrichis à travers les runs initiaux vides, les changements de style inline et les sauts de ligne explicites, et peint les bordures rectangulaires ou circulaires demandées et les lignes surlignées mesurées au lieu de les omettre silencieusement

Version 2.881.0 : authentifie automatiquement les signatures CAdES détachées standard avec la liaison de certificat de signature requise et lit de manière cohérente les chaînes Contents hexadécimales ou littérales échappées réelles pour la vérification, les mises à jour de formulaires permises et les preuves de validation à long terme

Version 2.882.0 : hérite des ressources de polices de flux enfants et des paramètres de texte PDF réels dans le rendu des Forms, Type3 et Patterns, préserve les sauvegardes de texte de l’état graphique, honore le texte Type3 invisible et réinitialise les valeurs par défaut indépendantes d’apparences d’annotations

Version 2.883.0 : crée des enfants de valeurs d’images et géométriques XFA natifs persistants et rend le vrai canal alpha PNG, le DPI d’image et la géométrie d’aspect, en préservant l’isolation par instance répétée et le rollback transactionnel ; corrige les pixels d’images FPC qui rendaient auparavant en noir

Version 2.884.0 : expose les frontières de graphèmes étendus par défaut d’Unicode 17 portables et enveloppe les mots enrichis trop larges à des clusters complets, en conservant le vrai contenu d’apparence Unicode et en corrigeant les changements de largeur des formes de liaison après le façonnage de sous-chaînes

Version 2.885.0 : expose les occasions de coupure de ligne par défaut d’Unicode 17 et les consomme dans de vrais champs enrichis natifs, en préservant les groupes d’espaces insécables, de traits d’union et de ponctuation et les séparateurs explicites Unicode avec les valeurs V et RV d’origine exactes

Version 2.886.0 : crée et authentifie des horodatages de documents PDF RFC3161 autonomes avec streaming borné, empreintes SHA256, SHA384 ou SHA512, identité TSA de confiance et liaison par nonce, déclarations d’extensions ESIC requises et exceptions de certification ou de verrou de champ authentifiées

Version 2.887.0 : importe et sérialise du XML exData XFA natif persistant avec des lectures immédiates par script, une préservation des namespaces et du contenu mixte, des identités d’instances répétées retenues, un rollback transactionnel et un vrai rendu XHTML sauvegardé

Version 2.888.0 : applique les propriétés Unicode 17 complètes et la coupure de ligne contextuelle via les API de documents existantes, expose des requêtes de propriétés portables brutes ou résolues selon LB1, préserve les ordinaux d’enum établis et les contrats de tailoring, et honore les interdictions de trait d’union conditionnel

Version 2.889.0 : synchronise les alias scalaires XFA hidden et invisible matérialisés après les commits visibles de champs tout en préservant les scopes de données répétées natifs, les valeurs vides explicites et un rollback transactionnel exact

Version 2.890.0 : préserve les groupes Unicode légaux de mots, d’espaces insécables, de ponctuation et de numériques à travers les runs de styles enrichis typés, ajuste des groupes entiers avec les vraies avances de polices stylées, conserve les baselines à tailles mixtes et fusionne les CRLF aux coutures de styles

Version 2.890.1 : récupère les verrous transitoires de publication atomique Windows avec au plus huit tentatives de remplacement annulables tout en préservant les cibles exactes, les octets préparés, les erreurs permanentes du système d’exploitation et le nettoyage du staging possédé

Version 2.891.0 : préserve les commentaires XML XFA natifs et les instructions de traitement ordonnés à travers l’import d’événements, la sérialisation, le clonage et le rollback transactionnel, tout en les excluant du texte scalaire, du texte enrichi et de la sélection d’éléments SOM

Version 2.892.0 : rend des shadings triangle mesh bornés free-form et lattice avec une vraie sémantique de coordonnées, de drapeaux, de fonctions, de couleurs et de transparence, et décode exactement une fois les flux de palettes Indexed hexadécimales

Version 2.893.0 : lit et écrit des données de champs scalaires FDF et XFDF natives bornées et importe transactionnellement de vraies apparences Unicode, de choix et de boutons dans des PDF publiés indépendamment, en préservant les politiques de signature authentifiées et le chiffrement AES

Version 2.893.1 : authentifie les preuves CRL et OCSP signées Adobe requises à l’intérieur de vrais horodatages de documents RFC3161 avant d’accepter des mises à jour de formulaires protégées par politique de signature, en préservant le refus transactionnel pour des preuves manquantes, révoquées, expirées ou non fiables

Version 2.894.0 : enveloppe le texte enrichi typé trop large aux frontières de graphèmes Unicode complètes à travers les styles de police et de couleur, mesure les vraies plages stylées avant l’affectation des lignes et préserve les clusters surdimensionnés indivisibles, les tailles de points mixtes et l’espacement explicite des caractères

Version 2.895.0 : importe et exporte de vrais octets FDF et XFDF via les callbacks JSON Linux natifs versionnés existants, préserve les valeurs de champs Unicode, la sécurité AES et les politiques de signature authentifiées, et annule le document courant après un échec de publication de sortie ou de résultat

Version 2.895.1 : compile le support d’événements XFA natifs statiques une fois par moteur JavaScript possédé et rejoue des arguments d’événements dynamiques compacts complets, en préservant les closures, les réponses hôtes enregistrées, l’isolation d’instance, les budgets de journal d’origine et les échéances transactionnelles pendant le rollback

Version 2.896.0 : résout le binding SOM XFA natif à travers les scopes de données répétées avec un parcours borné des descendants, des noms échappés, du matching Unicode, des fallbacks de feuilles manquantes par instance et une synchronisation transactionnelle des valeurs d’exécution

Version 2.897.0 : façonner les spans de styles Unicode sélectionnés avec un vrai contexte HarfBuzz environnant, expose des API natives d’ordre et de direction de paragraphes et place les items enrichis typés dans de vraies lignes physiques enveloppées tout en préservant les styles logiques et la propriété des objets

Version 2.898.0 : lit et écrit du texte enrichi FDF et XFDF borné, décode les spans de styles XHTML natifs en quatre vraies polices embarquées stylées et importe transactionnellement de vraies apparences dans des PDF signés ou chiffrés, avec comparaison canonique des valeurs enrichies existantes en lecture seule

Version 2.899.0 : attache les signes combinants stylés aux vrais ancres GPOS de base, de ligature et de marque avec des échelles de polices indépendantes, préserve les contours de glyphes à origine négative à l’intérieur des clips de widgets enrichis et réserve des étendues de ligne ajustées pour les marques empilées visibles

Version 2.900.0 : charge et sauvegarde transactionnellement du XML Data DOM XFA natif conscient des namespaces, préserve le contenu mixte ordonné et les identités de liaison de données, quote les valeurs hôtes en temps linéaire et conserve un bail exact de module JavaScript par session via un replay borné du moteur

Version 2.901.0 : rend les shadings mesh Coons et tensor patch avec une géométrie cubique bornée, une interpolation de couleurs dans l’espace source, des arêtes de continuation, une gestion des plis et des limites transactionnelles de ressources et d’annulation

Version 2.902.0 : importe et exporte du FDF et du XFDF stylés via de vrais callbacks JSON Linux en ABI C, embarque les faces de polices configurées réelles, préserve les politiques de signature et les octets sources privés exacts pour les imports no-op, et ne publie l’état du document courant qu’après le succès des deux sorties de callbacks

Version 2.903.0 : préserve les embeddings directionnels, les overrides, les isolates et le contexte de paragraphes à paires de crochets à travers les lignes de styles enrichis enveloppées, expose des API bornées d’ordre des lignes physiques dérivées des paragraphes et en cache, et façonner de vrais items de ligne avec les niveaux et scripts résolus

Version 2.903.1 : garde les clusters de façonnage à direction pure Unicode à une avance d’espacement de caractères nulle tout en conservant les contrôles logiques, l’identité des glyphes et l’espacement normal des clusters visibles et des mots

Version 2.904.0 : exécute le runtime JavaScript XFA natif, journal d’événements, Data DOM, XML, FormCalc et locales ICU sur Linux avec des baux de modules partagés possédés et de vraies horloges monotones tout en préservant l’initialisation Unicode Windows existante

Version 2.904.1 : préserve les contrôles complets de direction de paragraphes et les paires de crochets à travers le façonnage autonome automatique et l’enveloppement simple des champs multiline, avec des contextes de jointure de lignes physiques, un cache de paragraphes immuable et une sortie totale de glyphes bornée

Version 2.904.2 : lit les vrais dictionnaires externes de cross-reference streams sans confondre les réglages de chiffrement imbriqués, résout les noms d’entrées échappés et préserve les dictionnaires de chiffrement directs dans les révisions incrémentales Windows ordinaires

Version 2.905.0 : crée des arbres de pages PDF natifs, des champs éditables répétés, des boutons poussoirs et du texte statique Unicode directement depuis le XDP et les valeurs d’exécution sauvegardées sur Linux et Windows, avec de vraies apparences embarquées et une préparation bornée des candidats avant la sortie de l’appelant

Version 2.905.1 : résout les paramètres de prédicteur échappés dans le vrai dictionnaire DecodeParms et localise le vrai token de stream après une syntaxe de dictionnaire externe équilibrée, en préservant les payloads xref binaires à valeur d’espace blanc dans le chargement Windows ordinaire

Version 2.906.0 : positionne les signes combinants inter-styles en utilisant les vraies bornes de glyphes sélectionnées et les classes combinantes canoniques quand les ancres d’attachement sont absentes, avec des échelles de polices indépendantes, un empilement du même côté et de vraies directions d’items résolues pour les doubles marques

Version 2.907.0 : rend de vraies identités de glyphes CFF à clé CID et des substitutions notdef bornées via les vrais mappings CID-vers-GID des polices, en préservant une extraction de texte indépendante et des contrôles d’annulation pendant tout le parsing des CMaps échappées

Les CMaps legacy intégrées décodent les codes de caractères PDF d’un à quatre octets pour le rendu natif et l’extraction Unicode, préservent les modes d’écriture parents et enfants, récupèrent de façon déterministe les séquences de codes malformées et bornent un héritage annulable ; les paquets de redistribution incluent la notice de données CMap complète

Les imports Windows FDF et XFDF sélectionnent de vraies familles nommées fournies et des styles de polices depuis des chemins de fichiers imbriqués ou des callbacks V1 inchangés, en préservant les révisions signées ou chiffrées AES et la publication en deux phases ; les lectures aléatoires synchronisées d’entrées utilisent un curseur source indépendant afin que les lectures en arrière-plan ne puissent pas corrompre les copies de sortie séquentielles

Version 2.907.1 : décode les vrais échappements hexadécimaux PDF et les octets UTF-8 dans les champs de formulaires à valeurs de noms et hérités, en préservant les états d’export de boutons espacés, ponctués et Unicode via le rechargement natif de documents sauvegardés

Version 2.908.0 : crée de vraies combo boxes XFA natives, list boxes, champs multi-sélection, checkboxes et groupes radio à scope structurel directement depuis les données d’exécution sauvegardées, avec des paires de libellés display/export, des items par instance, des drapeaux d’accès et des états d’apparences natives indépendants

Version 2.908.1 : applique les déclarations de texte enrichi inline valides avec une priorité important indépendante, des bases de font-size calculées englobantes et des propriétés héritées explicites, en préservant les frontières de commentaires CSS et de déclarations quotées/fonctions

Le fallback de polices enrichies fourni sélectionne des graphèmes Unicode stylés complets dans de vrais programmes de familles candidates tout en préservant les valeurs d’origine et des styles d’apparence précis ; le fallback JSON Linux natif expose le même comportement en opt-in via des enregistrements V1 inchangés et conserve l’allocation globale de polices à travers les allocations réelles des fournisseurs

Version 2.909.0 : sélectionne de vraies familles TrueType nommées fournies par run enrichi et déclaration XHTML bornée de font-family, préserve les métriques de styles et les caches de marques par famille, et importe de vraies valeurs enrichies FDF ou XFDF avec une comparaison canonique consciente des familles

Version 2.910.0 : ajuste les apparences d’annotations NoZoom et NoRotate autour de l’ancre rectangulaire transformée du coin supérieur gauche, en préservant le UserUnit, la géométrie ajustée des formulaires, l’opacité et le vrai clip de page à travers l’échelle et la rotation

Version 2.911.0 : crée des draws XFA natifs de rectangles, lignes et arcs et des images PNG ou JPEG inline avec un vrai décodage d’échantillons, des masques alpha, un aspect ajusté et un placement pivoté, une préparation bornée et une propriété transactionnelle sous annulation

Version 2.912.0 : importe et exporte de vrais FDF ou XFDF via des jobs de fichiers Windows et des callbacks V1 avec une entrée possédée immuable, une préparation du graphe non sauvegardé courant, de vraies apparences enrichies à quatre polices, des politiques AES signées authentifiées et un commit de contexte seulement après le succès des deux callbacks de sortie

Version 2.913.0 : sélectionne des familles de polices enrichies natives configurées via des callbacks JSON Linux V1 inchangés pour les remplissages typés et les imports FDF ou XFDF, charge les vrais programmes de familles et de styles requis avec des budgets globaux, et annonce les deux profils enrichis implémentés

Version 2.913.1 : résout les valeurs XFA implicites existantes via des contextes de données vivants bornés sans répéter le parsing de sélecteurs imputé au quota d’opérations de script, en préservant les échéances transactionnelles d’origine et le comportement de liaison explicite

Version 2.913.2 : décode les codes-barres matriciels pivotés complets avant les fragments déconnectés et rejette les mismatches exacts de finder QR avant l’échantillonnage de la grille complète, en conservant un groupement plus serré, le comportement d’origine des barres linéaires, des budgets de scan atomiques et l’échéance inchangée de deux secondes

Version 2.914.0 : crée des apparences Booléennes XFA natives avec six marques personnalisées, des bordures rondes ou carrées, des couleurs et tailles de marques, cinq placements de légendes et des polices de légendes embarquées partagées ; préserve des alias d’export Unicode réversibles et des états neutres légaux distincts à travers l’exécution d’événements et le rechargement du PDF sauvegardé

Version 2.914.1 : chevauche les hits de cache mémoire au premier plan avec l’annulation coopérative du prefetch après acquisition de la vraie réservation mémoire, préserve la télémétrie de cache d’opération et revérifie l’annulation après des attentes de verrou de cache ou de réservation tout en conservant l’ordre strict des cache miss et les joins de threads

Version 2.915.0 : garde les options de listes XFA natives sélectionnées visibles via des fenêtres de sélection à métriques de police et des index supérieurs persistés, préserve les tableaux complets d’options et de valeurs, et retient les changements de polices par instance répétée et le rollback d’événements avec une préparation bornée des glyphes visibles

Version 2.916.0 : décode et rend 182 CMaps legacy intégrées avec des codes bornés d’un à quatre octets, des modes d’écriture parents et enfants exacts, des mappings Unicode, une récupération déterministe des codes malformés, un héritage annulable et des notices de redistribution groupées

Version 2.917.0 : sélectionne de vrais programmes de familles et de styles nommés pour les imports Windows FDF et XFDF via des chemins de fichiers imbriqués ou des callbacks de polices versionnés existants, et isole les lectures aléatoires synchronisées des sources de la publication transactionnelle séquentielle

Version 2.918.0 : rend les légendes Booléennes XFA natives depuis le XHTML effectif et des polices de styles nommées fournies, préserve les superpositions par instance répétée et le XML d’exécution sauvegardé, et mesure les réserves automatiques de légendes avec les étendues finales de lignes de texte logiques

Version 2.919.0 : résout des graphèmes Unicode stylés complets via des familles de polices candidates explicitement fournies, préserve les valeurs d’origine et des styles d’apparence précis, expose le fallback JSON Linux natif en opt-in via des callbacks V1 inchangés et conserve la vraie allocation globale de polices pendant le chargement des programmes configurés

Version 2.920.0 : sauvegarde les champs scalaires mixtes et les runs de texte enrichi typé d’origine dans une seule transaction atomique de document indépendante, conserve des valeurs d’apparence précises et les programmes de polices fournis, préserve les politiques authentifiées et les éditions courantes du graphe, et reconnaît les vrais no-op d’apparence en lecture seule

Version 2.920.1 : garde les mutations PDF réussies en ABI C Linux natives alignées avec leur snapshot source commité, si bien que des imports FDF ou XFDF ultérieurs de mêmes valeurs préservent les valeurs de formulaires publiées exactes, les apparences typées, le texte dessiné et les pages importées au lieu de restaurer des octets d’entrée périmés

Version 2.921.0 : rend les légendes scalaires et XHTML des boutons poussoirs XFA natifs avec de vrais programmes de familles et de styles fournis, des séparateurs inline préservés et un padding d’origine, de vraies apparences normal/down/rollover, la visibilité des légendes et des surcharges persistantes par instance répétée

Version 2.922.0 : sélectionne la visibilité de vue ou d’impression des annotations natives avec les règles Invisible de PDF 2.0, reconnaît les apparences statiques RichMedia et Projection et les transformations Text implicites, et conserve un remplacement atomique Windows PNG borné et annulable avec de vrais diagnostics d’erreurs OS

Version 2.923.0 : préserve les listes ordonnées de familles de polices candidates de texte enrichi via les apparences natives et le JSON Linux V1, et lie les runs scalaires mixtes et typés d’origine aux jobs de fichiers Windows et aux callbacks V1 inchangés avec une peinture précise, des programmes de styles fournis et une publication en deux phases

Version 2.924.0 : rend les groupes d’optional content par défaut du document et les expressions d’appartenance à travers le contenu de pages marqué, les form XObjects et les annotations, préserve l’état des graphiques et du texte masqués, et expose l’usage explicite de vue ou d’impression via l’interface JSON Linux native V1

Version 2.925.0 : sélectionne des familles de polices ordonnées fournies par l’appelant pour des graphèmes de texte enrichi stylés complets via des jobs de fichiers Windows et des callbacks V1, en préservant les candidats CSS et typés, de vraies transactions à valeurs vides et des budgets globaux de polices

Version 2.926.0 : développe le shorthand CSS de polices inline borné en candidats indépendamment cascadés de taille, de graisse, d’italique et de famille fournie, en préservant le dimensionnement relatif hérité, les resets de styles omis, les priorités important des composants et de vraies apparences de polices sauvegardées

Version 2.927.0 : peint les légendes scalaires et enrichies d’origine des boutons poussoirs Windows ApplyXFAAsAcroForm avec de vrais programmes de familles/styles installés, des surcharges persistantes par instance et des bundles d’apparences natives normal/down/rollover, en enregistrant de vraies ressources de polices AcroForm

Version 2.928.0 : rend les tableaux et phases de dash ExtGState avec un scanning borné de tableaux PDF typés, en préservant les commentaires, une validation stricte des opérandes, la géométrie de stroke héritée, l’annulation et les tableaux de texte ordinaires

Version 2.929.0 : construit le texte scalaire, les cellules comb, les libellés de choix et les marques de boutons depuis des familles de polices regular fournies ordonnées à travers les setters natifs, les jobs Windows et les callbacks Windows/Linux versionnés ; préserve les métadonnées scalaires ordinaires et distingue une sélection de choix vide d’un export vide sélectionné

Version 2.930.0 : évalue les applications automatiques d’usage d’optional content avec un contexte explicite de zoom, de langue et d’utilisateur, des sélections manuelles natives persistantes et un état borné des opérations JSON Linux ; invalide les contextes de rendu empruntés après des changements du document

Version 2.931.0 : préserve les états d’export XFA legacy on, off et neutre des checkboxes, les légendes Unicode stylées et les bundles d’apparences natives, encode les noms PDF spéciaux de manière cohérente et restaure les ressources directes de pages après une adoption annulée de widgets

Version 2.932.0 : décode les composantes JPEG 2000 signées et non signées jusqu’à26 bits avec précision mixte, sous-échantillonnage et opacité, normalise les échantillons bornés et ignore les déclarations JPX BitsPerComponent des images avant le rendu

Version 2.933.0 : évalue les fonctions de couleur cubiques échantillonnées multidimensionnelles avec la convention scalaire existante à quatre nœuds, le repli linéaire en dimension courte, un travail tensoriel borné, l’annulation et une interpolation scalaire inchangée

Version 2.934.0 : crée de vraies apparences XFA legacy Unicode texte, numérique, date et mot de passe avec famille et style de police effectifs par instance, ressources de polices embarquées éditables, masquage scalaire des mots de passe et adoption transactionnelle de ressources

Version 2.935.0 : préserve la hauteur de ligne du texte enrichi, les longueurs CSS calculées, les facteurs hérités et les métriques de police parente entre le layout natif, les apparences sauvegardées, les jobs de fichiers et callbacks Windows et les imports JSON FDF/XFDF Linux avec une planification bornée des polices à métriques

Version 2.935.1 : compte une seule fois les caractères Unicode supplémentaires dans les apparences XFA portables de mots de passe, conserve les valeurs d’origine et applique les budgets agrégés de glyphes avant d’allouer des masques avec une annulation à granularité scalaire

Version 2.936.0 : lie les hauteurs de ligne de texte enrichi JSON typées explicites aux apparences sauvegardées Windows et Linux, en préservant les runs rédigés, les métriques parentes fournies, une planification agrégée bornée et des mises à jour transactionnelles de champs mixtes

Les groupes radio XFA legacy préservent les portées d’instances répétées, les exports exacts et les captions Unicode stylées, avec un rollback de groupe entier et une fabrique d’apparences de membre native à police fournie

Version 2.936.1 : analyse les dictionnaires et trailers PDF valides avec vérification de débordement arithmétique activée en retenant explicitement les 32 bits bas de la multiplication de hachage FNV

Les intentions de rendu natives préservent l’intention de couleur des états graphiques, des images et des groupes de transparence via des transformations ICC bornées

Version 2.937.0 : crée des groupes radio XFA legacy indépendants depuis de vraies portées d’instances répétées, en préservant les exports exacts, les états sélectionnés et les captions Unicode stylées avec un rollback d’adoption de groupe entier et une API native d’apparence de membre à police fournie détachée

Les champs choice XFA legacy préservent les valeurs d’instances répétées, les libellés d’affichage, les fenêtres de sélection de listes et les apparences Unicode stylées, avec un rollback par champ et une fabrique détachée à police fournie

Version 2.938.0 : rend les quatre intentions de couleur standard à travers les états graphiques, formulaires, images, ombrages, motifs et groupes de transparence avec overrides d’images, repli relatif pour les noms inconnus et un cache borné annulable de transformations ICC

L’échange FDF binaire d’annotations préserve les dictionnaires d’annotations fournis, les états d’apparences, les ressources partagées de polices et d’images et les cibles GoTo locales explicites via des API natives bornées, l’échange moderne Windows de documents chargés, les jobs de fichiers et les callbacks versionnés Windows/Linux

Des noms d’annotations correspondants sur la même page sélectionnent des remplacements ; les annotations sans nom ou sans correspondance sont ajoutées, tandis que la politique authentifiée, la publication atomique et les octets no-op commités exacts restent appliqués

L’échange XFDF d’annotations natives ajoute dix-huit types d’annotations mappés avec des données binaires bornées, des contenus rich Unicode, des objets popup et reply, des permissions authentifiées et une publication transactionnelle par callbacks natifs/Linux

Version 2.939.0 : crée des champs XFA legacy combo et list avec exports exacts d’instances répétées, libellés d’affichage, indices sélectionnés, positions de scroll et apparences Unicode stylées, en préservant les flags de champs hauts et un rollback par champ avec une fabrique de choice détachée à police fournie et un mode métadonnées-seules

Version 2.940.0 : échange dix-huit types d’annotations mappés via des opérations XFDF natives bornées et JSON V1 Linux, en préservant les contenus rich Unicode, les callouts, les couleurs transparentes, les pièces jointes binaires, les liens popup et forward-reply, les permissions authentifiées et une publication transactionnelle d’ajouts

Version 2.941.0 : applique le CSS natif en cascade indépendante et l’espacement typé original de lettres et de mots aux runs façonnés, aux lignes physiques, à l’ajustement et aux apparences sauvegardées, avec sérialisation de points calculée, arrondi décimal exact et publication transactionnelle JSON Windows/Linux

Le repli d’annotations natives peint les annotations prises en charge sans apparences normales en utilisant une géométrie, un texte et des ressources de polices temporaires bornés

Les apparences par défaut FreeText appliquent un profil d’opérateurs DA borné, un ajustement automatique transformé, le word wrapping aux frontières de mots et un état de texte et de décoration à portée racine tout en préservant la géométrie d’annotation et les ressources sources ; les quatre contrôles finis Tr4 à Tr7 de peinture-et-clipping ont passé des lecteurs indépendants MuPDF 1.28.5 et Poppler, et les 90 images de lecteurs originales ont passé un modèle indépendant à cellule complète

Version 2.941.1 : valide l’unicité de sélection des choice XFA natifs avec un tri borné annulable tout en préservant les valeurs d’export exactes sensibles à la casse, l’ordre de sélection original et le comportement d’échec transactionnel

L’échange XFDF d’annotations Windows exporte les annotations mappées et ajoute du XFDF authentifié via des jobs de fichiers bornés et les callbacks V1 originaux avec publication atomique et octets no-op exacts

Version 2.942.0 : rend les annotations prises en charge sans apparences normales via une géométrie temporaire bornée, des extrémités de lignes, des icônes et du FreeText Unicode, en retenant les ressources sources, le texte enrichi, les flags view/print et l’annulation

La publication no-op de formulaires typés natifs conserve les octets PDF chargés exacts pour les mises à jour mixtes inchangées et les lots vides tout en préservant les éditions de graphe en attente, les politiques authentifiées et la publication atomique

Version 2.943.0 : échange le XFDF d’annotations mappées via les jobs de fichiers Windows et les callbacks V1 originaux avec des transactions d’ajout authentifiées, des données binaires et Unicode bornées, des octets no-op exacts et une publication atomique

Les items de choice XFA dynamiques mettent à jour les listes d’affichage et d’export live, préservent les alias de nœuds survivants et les sélections exactes, et sauvegardent les apparences choice PDF natives et legacy avec des opérations de script transactionnelles bornées

Version 2.943.1 : préserve les octets PDF chargés exacts quand des transactions natives mixtes scalaires et de texte enrichi typé ou des lots vides ne font aucun changement, en retenant les éditions de graphe en attente, les politiques authentifiées de signature et de chiffrement, les limites de ressources et la publication atomique

Les destinations locales d’annotations préservent huit modes de cibles de pages, les noms Unicode et la précision décimale rédigée à travers l’échange XFDF natif et legacy, avec du XML Adobe qualifié et des callbacks transactionnels Windows/Linux

Version 2.944.0 : gère les items d’affichage et d’export des choice XFA live via JavaScript et FormCalc, en préservant les alias survivants, les sélections exactes dupliquées ou vides, les listes natives par instance et les apparences PDF natives ou legacy sauvegardées sous des limites de mutation bornées

Les polices rich d’annotations en lecture seule prennent en charge l’embarquement Preview/Print et des polices complètes sans subsetting sous des permissions explicites par appel ; les annotations Screen préservent les apparences existantes et ne peignent aucun placeholder de médias implicite

Version 2.945.0 : préserve les destinations locales de pages et nommées des annotations à travers l’échange XFDF natif et legacy, avec des jetons décimaux exacts bornés, du XML Adobe qualifié, une validation des attributs dupliqués et une publication transactionnelle par callbacks Windows/Linux

Version 2.946.0 : rend le texte rich temporaire d’annotations avec des permissions de polices Preview/Print explicites en lecture seule et des octets de polices complètes inchangés, en préservant les politiques d’embarquement éditables et les apparences Screen existantes sans placeholders de médias implicites

Version 2.946.1 : préserve les attributs XFA présents-et-vides et les noms, valeurs, namespaces et requêtes indexées UTF-8 via la sérialisation XML native, les défauts persistants de propriétés, les événements de scripts répétés et le rollback transactionnel

Version 2.946.2 : corrige l’arithmétique de mots SHA-1, SHA-256, SHA-384 et SHA-512 avec les contrôles de plage et de débordement du compilateur activés, en préservant les digests valides et l’authentification par mot de passe AES-256 sans changer les interfaces publiques

Version 2.946.3 : applique xfa.host.resetData via des événements natifs sans le confondre avec un import Data XML, en préservant les défauts de template, les valeurs liées, les portées répétées, les éditions en attente et le rollback transactionnel

Version 2.947.0 : rend les bordures rectangulaires biseautées et en retrait des annotations et des captions de lignes Unicode ou rich mesurées, en préservant l’opacité, les offsets d’extrémités, les apparences existantes, les ressources de polices bornées et le clipping d’annotations

Version 2.947.1 : préserve les déclarations de namespaces XML par défaut vides explicites pendant le parsing et la sérialisation XFA, empêchant les sous-arbres de données non qualifiés d’hériter du namespace d’un ancêtre après sauvegarde et rechargement

Version 2.948.0 : rend les masques de glyphes remplis avec une couverture de clip fractionnaire capturée tout en préservant les tracés PDF, les motifs, les opérateurs alpha et de fusion, et vérifie la capacité de mémoire de travail raster avant allocation

Version 2.949.0 : préserve la distinction entre l’absence d’options choice sélectionnées et une valeur d’export vide sélectionnée via l’échange XFDF natif, Windows et Linux, avec une publication no-op exacte, une validation bornée et un chargement checked de documents chiffrés

Version 2.950.0 : crée, clone, renomme, insère et supprime des nœuds du Data DOM XFA natifs avec une propriété bornée, les namespaces hérités, des références importées stables, un rafraîchissement de binding et un rollback d’événements complet ; préserve les attributs UTF-8 et les références FormCalc retenues à travers les consommateurs XML sauvegardés et PDF natifs

Version 2.951.0 : rend des bordures cloudy bornées pour les annotations Square, Circle, Polygon et FreeText sans apparences normales, en préservant largeur, tirets, opacité et graphes sources ; partage les octets de polices générés immuables entre les vues FreeText sans frais répétés d’octets décodés tout en conservant les budgets de parsing et l’annulation

Version 2.952.0 : les destinations distantes d’annotations conservent les spécifications de fichiers Unicode et les coordonnées exactes à travers l’échange natif et par callbacks Windows/Linux ; les imports ordinaires d’annotations chargées préservent le chiffrement et les politiques de signatures authentifiées, les plages de signatures exactes et les valeurs de champs RC4 partagées

Version 2.953.0 : les collections de nœuds de requêtes XFA fournissent des listes retenues indépendantes, des métadonnées d’occurrences et des éditions transactionnelles bornées via des valeurs et apparences sauvegardées natives ; les managers retenus suivent le graphe d’événements courant et l’évaluation SOM ordinaire conserve les limites de pile d’origine

Version 2.954.0 : les feuilles de style de texte enrichi natives appliquent des sélecteurs internes bornés, l’importance, la spécificité et l’ordre du source via de vrais champs sauvegardés et des transactions FDF/XFDF Windows/Linux

Version 2.955.0 : les collections d’enfants live XFA suivent les enfants de formulaires et de propriétés courants, les instances répétées et les propriétés implicites entre les événements ; des clones indépendants référencent les valeurs natives réelles et les apparences PDF sauvegardées avec un rollback d’événements borné

Version 2.955.1 : l’arithmétique cryptographique checked et l’accord de clés préservent les échanges SHA3/SHAKE et de courbes pleine largeur avec les vérifications d’entiers activées, et rejettent les secrets partagés X25519/X448 canoniques tout-zéros

Version 2.956.0 : les apparences OpenType CFF de champs et d’annotations préservent les identités de charset réelles, les octets de polices complets, les métriques façonnées, le texte Unicode et les ressources de polices bornées

Version 2.956.1 : les collections d’enfants FormCalc résolvent les chemins de nœuds via le compilateur réel et conservent un replay d’événements borné, des valeurs sauvegardées et des apparences PDF natives

Version 2.957.0 : les sélecteurs de texte enrichi natifs étendus appliquent attributs, siblings, positions structurelles, langue et négation aux valeurs sauvegardées et aux apparences transactionnelles de champs

Version 2.958.0 : les indices d’enfants numériques du Data DOM live préservent l’ordre natif courant et appliquent l’accès en lecture seule dans les objets de script retenus, avec un rollback d’événements borné et des apparences PDF sauvegardées

Version 2.959.0 : les sélecteurs de texte enrichi logiques et relationnels appliquent les listes complexes not/is/where, les relations has ancrées et les positions nth-child filtrées aux valeurs sauvegardées réelles et aux apparences transactionnelles de champs

Version 2.960.0 : le transport d’apparences Stamp XFDF standard préserve les flux Form réels, les ressources bornées de polices et d’images, les permissions authentifiées et une publication atomique native ou par callback

Version 2.961.0 : les apparences brutes de polices par défaut d’annotations utilisent les programmes Type1C, CIDFontType0C et Type1 nus d’origine pour des apparences de texte temporaire et de captions rich bornées

Version 2.962.0 : le word wrapping des annotations raw-font préserve les cellules encodées complètes et les runs de style, avec un reflow borné et une annulation mesurée

Version 2.963.0 : les namespaces CSS de texte enrichi natifs appliquent des déclarations à portée et des sélecteurs qualifiés aux apparences sauvegardées réelles et aux transactions de formulaires Windows/Linux, avec une recherche bornée de namespaces hérités et une compatibilité checked-build

Version 2.964.0 : les apparences OpenType CFF2 à instance par défaut préservent l’identité des glyphes d’origine, le mapping Unicode et les permissions de polices tout en convertissant les contours par défaut complets en programmes CFF 1 statiques à CIDs clé pour les champs PDF sauvegardés

Version 2.965.0 : les arbres de formulaires XFA natifs transactionnels prennent en charge la création, le clonage et les éditions de propriété d’enfants avec des alias survivants stables, un rollback, des occurrences de fusion vide et une persistance de paquets de formulaires sauvegardés

Version 2.966.0 : les media queries de texte enrichi natives évaluent les profils d’hôte print/screen explicites, les attributs media des styles, les conditions booléennes imbriquées et les plages de fonctionnalités avant de sauvegarder les valeurs rich et les apparences calculées

Version 2.967.0 : les feuilles de texte enrichi externes fournies par l’appelant résolvent les feuilles liées et les imports, les ensembles de titres preferred ou alternate partagés et les bases de documents avant une publication transactionnelle native, Windows et Linux de form-data

Version 2.968.0 : les préférences explicites de texte enrichi ajoutent le schéma de couleurs, le mouvement/transparence/données réduits, le contraste, les couleurs forcées et inversées et la disponibilité du scripting, en retenant les valeurs inconnues quand elles sont omises

Version 2.969.0 : les calculs numériques CSS finis de texte enrichi ajoutent calc, min, max et clamp, les longueurs relatives à la racine et de viewport explicites, et les métriques de ligne et d’espacement calculées dans les apparences sauvegardées réelles

Version 2.970.0 : les requêtes de support CSS natives admettent les groupes de texte enrichi conditionnels et les imports avec la grammaire de déclarations et de sélecteurs prise en charge, des budgets partagés et des apparences sauvegardées transactionnelles

Version 2.971.0 : le scope racine et les sélecteurs statiques d’actions utilisateur préservent la correspondance logique des sélecteurs, l’admission conditionnelle des feuilles de style et les apparences sauvegardées calculées

Version 2.971.1 : le hachage du cache de shaped runs préserve l’arithmétique modulaire avec les contrôles de plage et de débordement activés dans les builds FPC 3.3.1 Windows

Version 2.974.0 : la suppression d’annotations par page et nom prépare des cascades bornées de popups et de réponses via les API natives, les transactions Windows, les jobs JSON et les callbacks versionnés, en préservant les permissions, les révisions signées et le rollback d’échec de publication

Version 2.973.0 : l’échange FDF binaire d’annotations préserve les ressources d’apparences, les graphes d’objets partagés et les destinations d’actions locales via des API natives bornées, l’échange Windows et les callbacks versionnés

Version 2.972.0 : les apparences par défaut d’annotations natives préservent l’état du texte, l’ajustement automatique, le texte enrichi et le clipping dans le rendu headless

Les workflows de documents Linux natifs créent des documents HTML avec polices Unicode embarquées et contrôles AcroForm, insèrent du texte de page visible ou interrogeable, exécutent un vrai OCR Tesseract avec des processus enfants bornés et annulables, et produisent une sortie PDF/A-4 raster validée indépendamment

Les preuves DSS/VRI headless valident les chaînes de certificats et l’autorisation OCSP/CRL fournie, les signatures, le statut et la fraîcheur avant la publication incrémentale de preuves, y compris pour les documents chiffrés

Le transport hôte XFA fournit des callbacks typés explicites pour les actions hôtes et le FormCalc Get/Post/Put, enregistre les réponses pour des retries de requêtes sûrs et un replay d’état de modules, et signale l’achèvement transactionnel pour la compensation applicative

Les horodatages RFC 3161 headless valident les empreintes de message, les nonces, l’autorisation TSA, la confiance des certificats et les preuves de révocation fournies, puis embarquent le vrai token d’horodatage dans les signatures CMS détachées ; les échecs d’horodatage requis préservent la destination

Les sessions JavaScript XFA persistantes retiennent l’état lexical des objets de script, les closures imbriquées et des modules indépendants par instance répétée avec un rollback transactionnel borné et déterministe

La préservation PDF/A-4 des documents chargés conserve les opérateurs de texte, vecteurs, images et programmes de polices embarqués d’origine ainsi que les couches OCR existantes ; elle compose les apparences visibles d’annotations/widgets, ajoute optionnellement un OCR interrogeable, signale explicitement les pertes d’interaction et de métadonnées, valide le résultat rechargé et publie les fichiers atomiquement dans son profil de polices et de couleurs documenté

La conversion d’archivage raster PDF/A-4 de documents chargés reconstruit le contenu visible des pages en images sRGB bornées dans un document PDF/A-4 nouvellement validé, en normalisant polices, transparence et couleurs peintes via le renderer natif strict ; l’API fichier met en scène et publie atomiquement le résultat, tandis que le rapport identifie les annotations, formulaires et pièces jointes retirés. Ce chemin d’archivage visuel en opt-in abandonne le texte vectoriel d’origine, le texte consultable, les signatures et le contenu interactif

La sortie PDF 2.0 prend désormais en charge l’identification et la validation PDF/A-4, PDF/A-4e, PDF/A-4f, PDF/UA-2, PDF/X-6, PDF/X-6p et PDF/X-6n, y compris le XMP conscient des révisions résolu par URI d’espace de noms, la réparation transactionnelle PDF/A-4 pour la normalisation sûre d’en-tête, trailer, métadonnées, Catalogue et présentation avec annulation à l’octet exact et contenu de pages préservé, les ensembles de règles PDF/X-6 ISO 15930-9:2020 et à errata résolus sélectionnables, les contrôles réels d’en-tête ICC et de canaux, les output intents de document et de page, la couleur peinte réelle et la surimpression à travers les tableaux de contenu, formulaires imbriqués, motifs de tiling et de shading, images, masques d’images, shadings, glyphes Type 3, soft masks et apparences d’annotations, état graphique et de transparence hérités, composition combinée remplissage-et-trait, relations CIDFont et CMap, travail borné d’octets décodés et de tokens de contenu, éléments de structure consciente des espaces de noms, contrôles de métadonnées et de chaînes du document, contenu optionnel, possession physique des annotations, sémantique de formulaires, destinations de structure, signets, étiquettes de pages imbriquées, création de fichiers associés, boîtes de page de production héritées, diagnostics consciente des clauses avec provenance d’ensembles de règles, validation de génération automatique à échec fermé, et réparation transactionnelle PDF/UA-2 pour espaces de noms, attributs, listes, tableaux, Ruby, Warichu, prononciation, texte alternatif, héritage de langue, ordre de titres et tags Artifact

Les tableaux PDF balisé 2.0 reçoivent une expansion bornée de grille, des contrôles d’intersection et de groupes de lignes, une association d’en-têtes locale au tableau et une détection de cycles, tandis que les listes reçoivent des contrôles complets de numérotation et de chaînes de continuation ; les séquences exactes de Ruby et Warichu sont imposées, et les applications peuvent écrire des indices de prononciation par élément ou des lexiques PLS embarqués ordonnés via SetStructurePronunciation et AddPronunciationLexicon

Le cycle v2.119.32-51 a ajouté le façonnage arabe / persan / ourdou côté producteur (ligature obligatoire LAM-ALEF, 9 lettres Arabic Presentation Forms-A), un moteur de substitution OpenType GSUB complet en fonctionnalités couvrant chaque LookupType 1-8 avec sélection Script / LangSys et closure du subsetter TTF pour les glyphes de substitution, le support des conteneurs XFA (XML Forms Architecture) (AddXFAPacket / ClearXFAPackets / XFAPacketCount), une famille de déclencheurs de champs de formulaire AcroForm /AA /K + /F + /V + /C, l’enregistrement de polices multi-Unicode /DR via RegisterAcroFormFont, les setters d’attributs d’accessibilité d’éléments de structure (/Lang / /E / /T) avec une énumération des types de structure standard de la table 333 et une surcharge typée AddStructureElement, et les propriétés de séquences de contenu marqué sur BeginTaggedContent

Le cycle v2.119.52-68 a achevé le pipeline de façonnage automatique de la Phase 8 et élargi la couverture des scripts : Arabic Extended-A (y compris Arabic Supplement U+0750-077F et Arabic Extended-A U+08A0-08FF) et Persian / Urdu Form-B ont été étendues à la table complète des classes de jonction U+0672-06D5 plus 26 nouveaux mappings Forms-A, avec pliage en post-passe pour LAM-ALEF, paires YEH-HAMZA + voyelle (8 ligatures en U+FBEA-FBFB), la ligature Allah autonome (U+FDF2) et la phrase Bismillah à 22 points de code (U+FDFD). La nouvelle propriété en opt-in ShapingFeatures + l’énumération THPDFShapingFeature (sfArabicGSUB / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) fait émettre au producteur des substitutions GSUB rlig / liga / clig / rclt spécifiques à la police automatiquement, avec les ligatures latines standard (ff / fi / fl / ffi / ffl / ſt / st via U+FB00-FB06) et le réordonnancement syllabique Indic devanagari (Repha + I-matra pré-base) rejoignant le même pipeline. De nouvelles méthodes de capacité de façonnage pour le syriaque (GetSyriacJoiningClass / GetSyriacPosition), le mongol (GetMongolianJoiningClass / GetMongolianPosition) et le devanagari (GetDevanagariCategory / ApplyDevanagariReorder) permettent aux appelants de piloter les scripts complexes non arabes via le même moteur GSUB. GetCodepointAdvance expose la fraction d’em /W en cache pour les calculs d’enveloppage, et AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID permettent au producteur d’émettre tout GID de substitution GSUB (formes d’amas devanagari, alternates stylistiques, séquences de variation CJK) via des points de code de Private-Use-Area avec intégration complète /CIDToGIDMap + /ToUnicode + /W. La CMap ToUnicode cumulative embarque désormais 35 entrées de mapping inverse de ligatures (8 LAM-ALEF + 18 de la famille YEH-HAMZA + 1 Allah + 1 Bismillah + 7 latines) afin que le copier / coller dans les lecteurs consommateurs restitue les points de code sources. Les squelettes documentaires du ChangeLog sont désormais livrés en 11 langues (EN / CN / AR / DE / ES / FR / IT / JA / KO / PT / RU) avec une interface de choix de langue ; la limite de rétention du ChangeLog a été portée de 250 à 500 sections de versions

Le cycle v2.152-v2.190 a construit un moteur complet de positionnement OpenType GPOS et élargi la couverture des scripts complexes. Les options de façonnage en opt-in appliquent désormais le kerning propre de la police (par paires, contextuel et de droite à gauche), le placement des signes combinants (mark-to-base, mark-to-mark et mark-to-ligature par composant), les ancres de connexion cursive et le kerning vertical pour le texte vertical, le tout écrit comme des opérateurs de texte PDF standard afin que tout lecteur rende le même résultat. Le façonnage côté producteur couvre désormais l’arabe (y compris les blocs Supplement, Extended-A et Extended-B), le syriaque, le mongol, le N'Ko, l’Adlam, le Hanifi Rohingya, l’empilement de consonnes tibétain, le devanagari et les autres scripts Indic via la chaîne de fonctionnalités Indic de la police, le javanais, l’ordre des signes thai et lao, l’ordre des voyelles hébraïques, le khmer, le birman, le Tai Viet et le Meetei Mayek. Une famille de fonctionnalités typographiques OpenType optionnelles - ligatures standard, discrétionnaires et historiques, petites capitales, chiffres oldstyle / lining / proportionnels / tabulaires, exposants, indices, ordinaux, fractions, inférieurs scientifiques, numérateurs, dénominateurs, alternates stylistiques et contextuels, formes localisées, formes sensibles à la casse, zéro barré et alternates verticaux - peut être appliquée automatiquement pendant la sortie de texte. Copier, coller et la recherche de texte restituent les caractères d’origine sur toute la sortie façonnée, y compris les ligatures et les substitutions de fonctionnalités chaînées. La sortie des polices est aussi devenue plus petite : les programmes de polices embarqués sont toujours compressés en Flate, une police utilisée sur plusieurs pages est embarquée une fois par document, les tags de sous-ensembles sont dérivés de façon déterministe pour une sortie reproductible, et un mode compact optionnel écrit le texte ASCII simple avec des polices standard comme texte WinAnsi non embarqué

Couverture des normes PDF

HotPDF inclut un support spécifique à la version des fonctionnalités d’écriture PDF 1.3, PDF 1.4, PDF 1.5, PDF 1.6, PDF 1.7 et PDF 2.0 utilisées en pratique par les applications d’activité, d’imagerie, d’édition et d’automatisation documentaire. Les API publiques sont vérifiées contre la version PDF choisie afin que les fichiers générés évitent les entrées plus récentes lorsqu’une compatibilité stricte est requise

La matrice actuelle couvre filtres et prédicteurs, flux XRef, chaînes de mises à jour incrémentales, chiffrement AES, sécurité à clé publique, Ed25519, Ed448, vérification ML-DSA à extension exigée, fournisseurs de signature par callback, distants, PKCS#11 et CNG Windows, couleur DeviceCMYK et ICCBased, motifs de tiling, shadings axiaux, radiaux, multi-arrêts, Gouraud, Coons patch et tensor-product patch, images en ligne, calques, groupes de transparence, transitions de page, annotations, widgets AcroForm, métadonnées XMP, arbres de structure PDF balisé, OutputIntents, boîtes de page de production, ViewerPreferences, UserUnit, ordre Tabs, et embarquement et création de sous-ensembles de polices TrueType, Type 3, CFF, OpenType-CFF et CID-keyed CFF

C’est une couverture large consciente des normes pour la surface d’écriture prise en charge par HotPDF, pas une prétention que chaque cas limite d’ISO 32000-1 est implémenté

Pourquoi choisir HotPDF

Pipelines de filtres de flux personnalisés

Le registre IHPDFCustomStreamFilter compose des décodeurs push et pull définis par l’application avec les filtres intégrés, sous un budget d’octets agrégé unique, avec contrats de seek explicites, annulation coopérative, sortie temporaire isolée, statuts d’échec typés et télémétrie d’exécution

Le décodage RunLength valide les runs encodés avant de réserver exactement la taille de sortie décodée, et la lecture anticipée directe de fichiers abandonne les rechargements de cache incomplets après des échecs d’E/S

Intégration RAD Studio native

Utilisez les projets, paquets, flux, fiches et schémas de dessin Delphi et C++Builder familiers au lieu d’encapsuler un moteur PDF distinct

Fonctionnalités PDF modernes

Construisez des PDF avec formulaires, annotations, calques, transparence, transitions de page, structure balisée, chiffrement, espaces réservés de signature et mises à jour incrémentales

Sortie compacte et rapide

Réduisez la taille des PDF grâce à la compression zlib-ng, l'imagerie libjpeg-turbo, le sous-ensemblement TrueType, le sous-ensemblement OpenType-CFF et la prise en charge de CFF à clé CID pour les grandes polices CJK

Forces concurrentielles

Les capacités ci-dessous sont des différenciateurs techniques décisifs de HotPDF face aux composants Delphi PDF habituels. La plupart des composants commerciaux concurrents soit en manquent entièrement, soit sont nettement plus faibles en production. Chaque ligne correspond à une implémentation vérifiable et à une surface d’API publique de la bibliothèque

Façonnage et positionnement OpenType complets

Un moteur de substitution GSUB complet couvrant chaque LookupType 1-8 (Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual), associé à un moteur de positionnement GPOS couvrant les 9 LookupTypes (kerning par paires / simple / contextuel, mark-to-base, mark-to-mark, mark-to-ligature par composant de ligature, attachement cursif, distance, vkrn/vpal vertical). Tout le positionnement est émis avec les opérateurs de texte PDF standard, donc chaque lecteur rend à l’identique

Façonnage de scripts complexes côté producteur

Plus de 20 scripts façonnées côté producteur, pilotées par la chaîne de fonctionnalités GSUB de la police elle-même : arabe (y compris Supplement / Extended-A / Extended-B), syriaque, mongol, N'Ko, Adlam, Hanifi Rohingya, empilement tibétain, devanagari et famille Indic, javanais, ordre des signes Thai / Lao, ordre des voyelles hébraïques, khmer, birman, Tai Viet, Meetei Mayek. La sortie embarque le mapping inverse /ToUnicode complet, si bien que copier / coller restitue les points de code d’origine

Pile de signature en cours de processus, zéro dépendance externe

Le déballage PKCS#12 ASN.1, RSA, AES, PBES2 avec profils PBKDF2 AES-128 / AES-192 / AES-256 CBC et HMAC-SHA-1 / SHA-256 / SHA-384 / SHA-512, le déballage PFX historique PBE-SHA1-3DES, et le CMS SignedData (RFC 5652) sont traités au sein de HotPDF. SignPDFWithPFX signe les identités RSA et ECDSA en code natif et utilise un libcrypto OpenSSL 3 optionnel pour Ed25519 ou Ed448 PureEdDSA ; les fichiers PFX multi-identités exposent une sélection déterministe localKeyId et embarquent automatiquement la chaîne de certificats disponible correspondante avec une déduplication DER exacte, les signataires CMS peuvent utiliser des identités émetteur-et-série ou SubjectKeyIdentifier X.509 compact, les conteneurs CMS multi-signataires préservent attributs, algorithmes, certificats, fournisseurs et résultats de validation indépendants, la validation de politique de signature PAdES prend en charge les identifiants de politique explicites, les qualificatifs structurés, le hachage du document de politique et l’épinglage par l’appelant, et le preflight de profil PAdES rapporte chaque exigence baseline ou étendue avec des preuves de clause, d’objet et de révision, tandis que la vérification des signatures chargées prend en charge RSA PKCS#1 v1.5, RSA-PSS à paramètres validés, ECDSA NIST et Brainpool, Ed25519, Ed448, politiques de condensés SHA-2, SHA3 et SHAKE256, tokens d’horodatage RFC 3161, chemins de certificats contrôlés par l’appelant, validation OCSP ou CRL hors ligne, et diagnostics lisibles par machine à échec rapide pour les algorithmes de condensé CMS incohérents

Validation à long terme PAdES de bout en bout

Les flux de travail PAdES B-B, B-T, B-LT et B-LTA sont entièrement couverts : horodatages RFC 3161 timestamps, dictionnaires de validation à long terme DSS / VRI, signatures d'horodatage de document, contraintes Seed Value et XAdES-in-PDF ; il s'agit d'une exigence stricte pour les signatures électroniques conformes à la norme européenne eIDAS, là où la plupart des composants concurrents se limitent à une signature CMS de base

Conformité sur trois axes et contrôle en amont

Verrouillage de profil indépendant pour PDF/A-1/-2/-3, PDF/X-1a/-3/-4 et PDF/UA-1 simultanément - les appels non conformes lèvent des exceptions de diagnostic au lieu d’écrire silencieusement des PDF non conformes. CreatePreflightReport émet des rapports texte / JSON / HTML / CSV / XML avec des ID de règles et des emplacements stables, tandis que CreatePreflightMRR ajoute des plugins bornés de fonctionnalités et de validation déterministes pour des politiques CI personnalisées

API fichier directe multi-gigaoctets

Opère sur le PDF sur disque sans construire le graphe d’objets en mémoire. Sur un document de 2 Go avec 1,67 million d’objets : chiffrement AES-256 ~14 s, déchiffrement ~16 s, réécriture complète ~6 s ; la lecture du nombre de pages d’un document de 1,25 Go prend des millisecondes. Les tables xref classiques, les flux XRef, les fichiers à références hybrides et les documents mis à jour incrémentalement restent tous sur le chemin direct

Récupération bornée des PDF endommagés

Contrôle indépendant des profils pour PDF/A-1/-2/-3, PDF/X-1a/-3/-4 et PDF/UA-1 simultanément — les appels non conformes lèvent des exceptions de diagnostic au lieu d'écrire silencieusement des PDF non conformes ; CreatePreflightReport émet des rapports texte / JSON / HTML / CSV avec des profils INI, des préréglages intégrés, une agrégation par lots et l'intégration de preuves XMP, validés de bout en bout par rapport à veraPDF

Sous-ensembles CFF / OpenType-CFF / CID

Les polices TrueType, OpenType-CFF et CID-keyed CFF sont toutes sous-ensemblables tout en préservant les IDs de glyphes pour le texte Type0 / Identity-H. Les documents CJK qui embarquaient auparavant des programmes CID-keyed CFF de 14 Mo voyagent désormais à 500 Ko - 2 Mo sans perdre aucun glyphe rendu ; les programmes de polices embarqués sont toujours compressés en Flate, les polices multipages sont embarquées une fois par document, et les tags de sous-ensembles sont déterministes pour une sortie reproductible. Les sous-ensembles TrueType compacts optionnels renumérotent les glyphes conservés, si bien que quelques caractères CJK ne demandent que quelques kilooctets de données de police, et un seul commutateur CompressDocument les combine avec la compression Flate et les flux d’objets pour la sortie la plus compacte ; les PDF chargés reçoivent le même traitement sans perte via CompressLoadedDocument

Façade unifiée de journalisation runtime

THPDFLogger + le HPDFLog global offrent une façade de diagnostic commutable à l’exécution : filtrage par sévérité Error / Warning / Info / Debug, cibles simultanées fichier + OutputDebugString + console, thread-safe, rotation à sauvegarde unique de 10 Mo, chemin rapide désactivé sans surcoût. LoadFromFile, les rapports preflight et le chemin de repli des flux d’objets sont déjà câblés avec des diagnostics structurés commutables à l’exécution sans recompilation - une capacité opérationnelle que la plupart des composants concurrents n’ont pas du tout

Quatre adaptateurs de moteurs de rapports

Backends PDF enfichables pour FastReport (TfrxHotPDFExport), QuickReport (TQRHotPDFExportFilter), ReportBuilder (TppHotPDFDevice) et DevExpress ExpressPrinting (couvrant cxGrid / cxRichEdit / cxScheduler / cxPivotGrid). Les mises en page de rapports existants continuent de fonctionner - seul l’émetteur PDF est remplacé, avec sortie native FastReport texte / image / forme / ligne / lien / code-barres incluant rognage et cadres d’images, enregistrement de palette en conception FastReport, filtrage de plages de pages en base 1, sortie native ReportBuilder texte / vecteur / image / lien / code-barres, et portes de conformité PDF/A et PDF/X en opt-in sur les quatre adaptateurs de rapports

Ce sont des capacités livrées, pas des promesses de feuille de route. Chaque point ci-dessus est implémenté dans la bibliothèque actuelle, compile proprement et passe les tests DUnitX plus la validation veraPDF de bout en bout. Lors de l’évaluation de composants concurrents, demandez la preuve d’une couverture GSUB/GPOS LookupType complète, d’une chaîne PAdES B-LTA en cours de processus et d’un débit de chiffrement multi-gigaoctets mesuré

Capacités principales

  • Compilez le noyau portable Linux avec mapping de fichiers POSIX natif, décodage des objets et contenus PDF, données de polices sfnt partagées, compression, cryptographie et sérialisation PDF classique ; chargez les tables classiques, les xref streams, les références hybrides et les object streams compressés, extrayez le texte Unicode des pages et des Forms, et sauvegardez des valeurs de texte AcroForm indépendantes via l’API de document headless native ; la sécurité, les signatures et le rendu restent en cours d’intégration
  • Comparez le wording de contrats par paragraphes et tokens de mots ou de phrases, conservez les positions sources bilatérales, détectez la réorganisation de clauses, excluez le boilerplate explicite et créez des sorties de revue HTML ou PDF annoté
  • Reconnaissez plusieurs codes-barres dans un seul raster, préservez les payloads identiques à des emplacements distincts et échantillonnez les modules Data Matrix ECC 200 pivotés ou projectifs avec un travail borné, une géométrie à quatre coins, une annulation et une publication atomique des résultats
  • Créer des fichiers PDF, ajouter des pages, dessiner du texte, dessiner des graphiques vectoriels, et enregistrer vers des fichiers ou des flux possédés par l’appelant
  • Convertir et rendre XPS, EPUB et CBZ via des gestionnaires optionnels notés par contenu avec un travail d’archives et de conversion borné
  • Importer des médias paginés HTML5 avec un DOM tolérant, cascade CSS d’impression, tableaux, panneaux métier flex/grid imbriqués, lignes enveloppantes, spans de colonnes, images et contrôles AcroForm optionnels dans des boîtes parallèles, ressources de polices sfnt contrôlées par callback, et budgets bornés d’analyseur, de mise en page, de ressources et d’images décodées
  • Importer du SVG comme Form XObjects réutilisables avec géométrie native, CSS, dégradés, masques, texte Base 14, liens conscient du placement et budgets stricts d’analyseur et de ressources
  • Paginer du contenu RichEdit et RTF via le moteur de mise en forme Windows tout en préservant le texte vectoriel, les polices, les images, les présentations OLE prises en charge et des budgets de ressources explicites
  • Rendre des graphiques vectoriels natifs avec séries de lignes, barres, aires, secteurs et nuages de points, axes automatiques ou manuels, thèmes, légendes, étiquettes, données bornées et alternatives Figure PDF/UA optionnelles
  • Inspecter les diagnostics visuels de mise en page avec détection bornée de chevauchements, chemins d’éléments, mapping de sources en opt-in, superpositions vectorielles natives, statistiques et callbacks d’aperçu synchrones
  • Contrôler la sémantique des coordonnées Y du texte de page avec THPDFPage.TextFromBaseLine, contenir des opérateurs PDF bruts experts avec AppendScopedRawContent, et interroger la sortie de boîtes de texte enveloppées avec TextOutBoxEx / WideTextOutBoxEx
  • Gérer le texte Unicode, le texte de droite à gauche, le texte vertical Identity-V, le repli de polices conscient des scripts, les diagnostics de glyphes non résolus, les polices embarquées, les sous-ensembles TrueType, les sous-ensembles CFF/OpenType-CFF, les métriques de texte et les paragraphes
  • Appliquer le kerning OpenType de la police, le positionnement des signes combinants, la connexion cursive, le façonnage des scripts complexes et les fonctionnalités typographiques pendant la sortie de texte via des options de façonnage en opt-in
  • Ajouter métadonnées, annotations, commentaires popup, hyperliens, pièces jointes, préférences de lecteur, les six mises en page standard y compris les doubles pages avec couverture, comportement d’impression, calques et transitions de pages
  • Importer et écrire des flux d’images orientés JPEG, bitmap, TIFF, JPEG2000, JBIG2, WMF et EMF, avec réutilisation d’XObjects image encodés, helpers de masques d’images, helpers de transparence soft-mask, dérogations de qualité JPEG par image, options de rendu EMF/WMF par appel, contrôle de superposition de canvas, contrôle de redessin, rognage par cadre, préservation des motifs de pinceaux hachurés, diagnostics de plumes et pinceaux nuls, et sélection automatique en opt-in de compression monochrome
  • Décoder les tuiles de codestreams JPEG 2000 et les régions d’intérêt à résolution via des chemins natifs bornés et isolés contre les crashs, avec sélection automatique de la résolution du renderer et reconstruction parallèle de tuiles consciente du budget
  • Encoder des lots de pages JBIG2 avec entraînement de symboles inter-pages, un dictionnaire global partagé, réutilisation des pages dupliquées, budgets d’entrée bornés, repli natif et télémétrie de compression explicite ; décoder les dictionnaires de symboles de raffinement et agrégés et les instances de texte raffinées via le repli Pascal natif pour les flux arithmétiques et à Huffman standard, avec contextes retenus, tables de références en forme longue bornées, dictionnaires globaux chaînés et décodage de tuiles visibles
  • Décoder les flux d’images CCITT Group 3 et Group 4 chargés avec des lignes à une et deux dimensions, extensions non compressées T.4/T.6, reconnaissance stricte d’EOFB, gestion complète des DecodeParms et resynchronisation bornée des lignes endommagées
  • Charger des PDF existants, copier des pages, ajouter des pages, supprimer des pages, fusionner des documents, mettre à jour les informations, éditer les métadonnées et apparences d’annotations, tamponner des pages, inspecter, remplir ou aplatir des formulaires, et transcoder des flux chargés avec compression Flate consciente du niveau de compression ou décompression sûre des prédicteurs
  • Traiter des PDF multi-gigaoctets via l’API fichier directe : lire les nombres de pages, copier, réécrire les informations du document, et appliquer ou retirer la protection AES-256 de fichier à fichier en quelques secondes, sans charger le graphe d’objets du document
  • Appliquer mots de passe, AES-128, AES-256, AES-256 R6 PDF 2.0, chiffrement à clé publique, contrôle du chiffrement des métadonnées, flags de protection et contrôle des permissions
  • Créer des champs AcroForm, flux d’apparences de formulaires automatiques, champs de signature, espaces réservés de signature CMS externes et mises à jour incrémentales multi-signatures

Avantages pour les développeurs

  • L’intégration au niveau source garde le débogage et le déploiement sous votre contrôle
  • Les exemples partagés Delphi et C++Builder facilitent la vérification du comportement dans les deux piles de langages
  • L’intégration statique de bibliothèques C tierces garde les dépendances de compression et d’imagerie reproductibles
  • Des API helpers ciblées couvrent les filtres PDF, l’inversion bornée de prédicteurs TIFF et PNG, le décodage strict de flux LZW, FlateDecode, CCITT, les masques d’images, les codes-barres, le sous-ensemblage de polices et les flux de contenu de pages
  • Les portes de version PDF peuvent promouvoir automatiquement la version de sortie ou imposer une conformité stricte PDF 1.3/1.4/1.5/1.6/1.7 via StrictVersionLock
  • Des projets de paquets Delphi et C++Builder prêts à l’emploi couvrent les générations RAD Studio actuelles, y compris 13.1 Florence

Points saillants récents de la bibliothèque

Édition sans perte des flux de contenu

Le THPDFContentStreamAST retient chaque octet d’espacement, commentaire, délimiteur, orthographe d’opérande et charge utile d’image en ligne tout en exposant des nœuds liés d’opérations et de conteneurs, une analyse bornée, des surcouches d’édition triées et une sérialisation en mémoire ou en flux ; les visiteurs d’opérateurs de contenu ajoutent des callbacks bornés d’inspection, de mesure, de remplacement, de suppression, d’arrêt et de rejet avec instantanés d’état déterministes et mises à jour atomiques validées de pages chargées ; la comparaison sémantique canonicalise nombres, chaînes, images en ligne, matrices effectives, setters redondants et sauvegardes/restaurations d’état graphique avant une comparaison exacte d’événements ; le remplacement de texte de pages chargées ne change que les plages d’opérandes appariées

API fichier directe multi-gigaoctets

La famille DAOpenFileReadOnly / DACopyFile / DASetDocumentInfo / DASaveAsFile et les appels de fichier à fichier EncryptFile / DecryptFile travaillent directement sur le fichier PDF au lieu de construire le graphe d’objets en mémoire. Sur un document de référence de 2 Go avec 1,67 million d’objets, le chiffrement AES-256 prend environ 14 secondes, le déchiffrement environ 16 secondes et une réécriture complète environ 6 secondes ; l’ouverture d’un document de 1,25 Go pour son nombre de pages prend des millisecondes. Les tables classiques, flux de références croisées, fichiers à références hybrides et documents mis à jour incrémentalement restent tous sur le chemin direct

Rapports preflight

CreatePreflightReport et CreatePreflightReportWithProfile auditez un PDF contre les contrôles PDF/A, PDF/X et PDF/UA pris en charge et émettez des rapports texte, JSON, HTML, CSV ou XML. ValidatePDFWithPluginBundle combine les mêmes politiques intégrées avec des plugins bornés de fonctionnalités de confiance et de règles en un seul XML MRR déterministe

Boîte à outils de formulaires des documents chargés

L’échange FDF fichier et flux et l’échange XFDF multi-valeurs préservent les éléments sélectionnés séparés des champs de liste multi-sélection, y compris les valeurs d’options contenant des sauts de ligne, et reconstruisent les indices de sélection à l’import

HasFormFields et FormFieldExists répondent aux questions de formulaires sur un PDF chargé avant de le toucher, la création de champs chargés rejette les noms racine dupliqués avant d’enregistrer les widgets, les valeurs des champs se lisent et s’écrivent par index ou par nom, et FlattenFormFields incruste les champs AcroForm interactifs dans le contenu des pages et rapporte combien de champs il a aplatis - aux côtés de l’aplatissement XFA-vers-AcroForm qui garde utilisables dans tout lecteur les formulaires XFA de tableaux imbriqués, enveloppés, à colonnes fixes et à colonnes automatiques

Façonnage multi-scripts côté producteur

THotPDF.SignPDFWithPFX(InputPDF, OutputPDF, PFXFile, Password) signe un PDF à espace réservé existant en un seul appel. Les flux fichier, flux, signataire externe et fournisseur choisissent le condensé SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-384, SHA3-512 ou SHAKE256 512 bits exigé par Ed448, copient avec des tampons bornés de 256 Ko, patchent au seek les champs à largeur fixe /ByteRange et /Contents, et prennent en charge la signature dans le même flux sans retenir un second PDF complet en mémoire. La pile PKCS#12 ASN.1, AES et PBES2 accepte les clés privées RSA, ECDSA à courbe nommée, Ed25519 et Ed448 plus AES-128 / AES-192 / AES-256 CBC avec PBKDF2 HMAC-SHA-1 / SHA-256 / SHA-384 / SHA-512 ; la signature RSA et ECDSA emprunte des chemins natifs, tandis que la signature Ed25519 et Ed448 utilise un libcrypto OpenSSL 3 optionnel. HPDFEnumeratePFXIdentities, HPDFParsePFXByLocalKeyID et THPDFCMSSignOptions.PFXLocalKeyID sélectionnent les identifiants multi-identités de façon déterministe et emportent leur chaîne de certificats disponible correspondante dans le CMS ; les identifiants d’algorithme incohérents de signataire, conteneur, longueur de clé, mécanisme de signature ou RFC 6211 échouent avant le hachage du document ou le travail du fournisseur

Pipeline de façonnage automatique (phase 8)

Les workflows PAdES B-B, B-T, B-LT et B-LTA couvrent la création d’horodatages RFC 3161 SHA-2 ou SHA3 et leur vérification cryptographique, le renouvellement append-only des horodatages d’archive qui étend le DSS avant de sceller la nouvelle révision, la validation à long terme DSS / VRI avec des preuves hors ligne de certificats, OCSP et CRL, des chemins de certificats contrôlés par l’appelant, des contraintes de Seed Value et XAdES-in-PDF

Ligatures standard latines et point de code synthétique PUA

HotPDF verrouille les méthodes de fonctionnalités contre les profils PDF/A-1 / -2 / -3 / -4 / -4e / -4f, PDF/X-1a / -3 / -4 et PDF/UA-1 / -2, tandis que la génération PDF/A-4 exécute un validateur borné du graphe d’objets avant la sérialisation. Les appels qui casseraient le profil sélectionné lèvent des exceptions de diagnostic au lieu de produire silencieusement des PDF non conformes

Adaptateurs de moteurs de rapports tiers

Backends PDF enfichables pour les quatre moteurs de rapports Delphi les plus courants : TfrxHotPDFExport (FastReport 4 / FastReport VCL, y compris la sortie d’objets natifs pour le texte, les images, les formes, les lignes, les liens et les codes-barres pris en charge, plus le filtrage par plages de pages, les contrôles d’embarquement de polices, la sécurité par mot de passe, les opt-ins des portes PDF/A ou PDF/X et l’unité d’enregistrement en conception frxHotPDFDesign), TQRHotPDFExportFilter (QuickReport avec opt-ins des portes PDF/A ou PDF/X), TppHotPDFDevice (ReportBuilder, y compris la sortie native de commandes de dessin en opt-in pour le texte, primitives vectorielles, images, liens, codes-barres pris en charge et opt-ins PDF/A ou PDF/X), et dxHotPDFExportReportLinkToFile/Stream (DevExpress ExpressPrinting System couvrant cxGrid / cxRichEdit / cxScheduler / cxPivotGrid avec opt-ins PDF/A ou PDF/X). Les rapports existants continuent de fonctionner - seul l’émetteur PDF est remplacé

Sous-ensemblement de polices et PDF CJK

Positionnement du texte en opt-in piloté par les données GPOS de la police elle-même : kerning par paires et contextuel pour le texte de gauche à droite et de droite à gauche, mark-to-base, mark-to-mark, placement de marque par composant de ligature, alignement d’entrée/sortie cursif, positionnement par distance et kerning vertical pour les polices verticales. Le positionnement est émis avec les opérateurs de texte PDF standard, donc chaque lecteur PDF rend le même résultat

Couverture de façonnage de scripts complexes

Le façonnage côté producteur rend correctement un texte joint et réordonnancé pour l’arabe (y compris les blocs Supplement, Extended-A et Extended-B), le syriaque, le mongol, le N'Ko, l’Adlam, le Hanifi Rohingya, le tibétain, le devanagari et les autres scripts Indic, le javanais, le thai, le lao, l’hébreu, le khmer, le birman, le Tai Viet et le Meetei Mayek, sans dépendre d’un façonneur côté lecteur. Chaque script est un commutateur en opt-in, si bien que la sortie existante reste identique octet par octet jusqu’à activation, et copier/coller restitue les caractères d’origine

Fonctions typographiques OpenType automatiques

Les commutateurs de façonnage optionnels appliquent automatiquement en sortie de texte les ligatures standard, discrétionnaires et historiques de la police, les petites capitales, les chiffres oldstyle / lining / proportionnels / tabulaires, exposants, indices, ordinaux, fractions, inférieurs scientifiques, numérateurs, dénominateurs, variantes stylistiques et contextuelles, formes localisées, formes sensibles à la casse, zéro barré et alternates verticaux, avec l’extraction de texte ramenée aux caractères sources

Sortie de polices compacte

Les programmes de polices embarqués sont toujours compressés en Flate, une police utilisée sur plusieurs pages est embarquée une seule fois pour tout le document, et les tags de sous-ensemble sont dérivés de façon déterministe des glyphes réellement utilisés, si bien que des exécutions répétées produisent une sortie identique. Un mode optionnel écrit le texte ASCII simple avec des polices standard sous forme de texte WinAnsi compact non embarqué, faisant passer une page de texte simple de centaines de kilooctets à quelques kilooctets

Signature PFX / PKCS#12 en cours de processus

Le façonnage côté producteur replie les séquences d’entrée Unicode vers leurs Presentation Forms avant l’émission du texte PDF. L’arabe couvre la table complète des classes de jonction U+0672-06D5 plus plus de 40 mappings Forms-A, avec une post-passe automatique de ligatures pour LAM-ALEF, YEH-HAMZA + voyelles (U+FBEA-FBFB), Allah (U+FDF2) et Bismillah (U+FDFD). Les surfaces de capacité pour le syriaque (GetSyriacJoiningClass), le mongol (GetMongolianJoiningClass) et le devanagari (GetDevanagariCategory / ApplyDevanagariReorder) permettent aux appelants de piloter les scripts complexes non arabes via le même moteur GSUB

Validation à long terme PAdES

La propriété en opt-in ShapingFeatures + l’énumération THPDFShapingFeature (sfArabicGSUB / sfCursiveAttachment / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) élève les moteurs GSUB et GPOS OpenType en un pipeline automatique côté producteur. Les init / medi / fina / isol arabes natifs, rlig, calt, rclt, l’attachement cursif GPOS, les liga / clig latines et le réordonnancement Indic devanagari interviennent pendant l’émission du texte, avec un mapping inverse /ToUnicode complet pour l’exactitude du copier / coller

Conformité PDF/A, PDF/X et PDF/UA

Les ligatures latines standard (ff / fi / fl / ffi / ffl / ſt / st via U+FB00-FB06) sont émises automatiquement via ApplyLatinLigatureRefinement lorsque sfStandardLigatures est activé. Pour les GIDs de substitution GSUB sans point de code Unicode naturel - formes d’amas devanagari, alternates stylistiques, séquences de variation idéographiques CJK - AssignSyntheticCodepointForGID alloue un point de code de Private-Use-Area (U+E000-F8FF) avec une intégration miroir /CIDToGIDMap + /W + /ToUnicode

Moteur de substitution OpenType GSUB

Chaque OpenType GSUB LookupType 1-8 (Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual) est implémenté comme une surface de requête par capacité (GetSingleSubstituteGlyph, ApplyLigatureSubstitution, ApplyContextualSubst, ApplyReverseChainedContextualSubst et les helpers Multiple / Alternate / Script / LangSys / Feature). MarkUnicodeGlyphUsed tire chaque glyphe de substitution dans le subsetter TTF afin que les sous-ensembles de polices embarqués restent autoportants

Actions de page + formulaires XFA + déclencheurs AcroForm + /DR Unicode

Les actions additionnelles du cycle de vie de documents PDF exposent les déclencheurs /AA /WC, /AA /WS, /AA /DS, /AA /WP et /AA /DP du catalogue via des helpers d’installation et d’effacement basés sur des builders, tandis que les actions additionnelles de niveau page exposent les déclencheurs d’ouverture /AA /O et de fermeture /AA /C via les wrappers THPDFPage et THotPDF indexés par page. Les paquets de conteneurs XFA PDF 1.7 §12.7.6 / §12.7.8 voyagent aux côtés (ou à la place) des /Fields statiques via AddXFAPacket. La famille complète de déclencheurs de champs de formulaire AcroForm (/AA /K Keystroke, /F Format, /V Validate, /C Calculate) est exposée en méthodes wrapper, les déclencheurs souris, focus et visibilité de widgets (/E, /X, /D, /U, /Fo, /Bl, /PO, /PC, /PV, /PI) peuvent désormais être définis par nom de champ, et les helpers d’effacement correspondants gardent les dictionnaires de déclencheurs faciles à remplacer. THPDFActionBuilder couvre les actions de cycle de vie de document, de page, de formulaire, d’annotation, de calque, multimédia, de transition, de vue 3D et de navigation embarquée GoToE, tandis que l’API de graphe d’actions chargé inspecte sans risque les 18 types d’actions standard et les chaînes /Next ordonnées

Étiquettes de pages + fils d’articles

THotPDF.SetPageLabel et ses helpers dédiés par style écrivent des entrées d’arbre à numéros /PageLabels du catalogue pour une numérotation de pages décimale, romaine ou alphabétique, tandis que RegisterArticleThread plus THPDFPage.AddArticleBead émettent des dictionnaires de fils d’articles et des chaînes de beads pour une navigation guidée du lecteur

Moteur de positionnement OpenType GPOS

THotPDF.EnableFontSubsetting crée des sous-ensembles des polices TrueType, OpenType-CFF, CID-keyed CFF et CFF2 en préservant les IDs de glyphes pour le texte Type0 / Identity-H. Les contours TrueType gvar et points fantômes, les blends CFF2, les axes mappés et les métriques horizontales, verticales et globales sont cuits dans un sfnt statique à checksum correct avant embarquement

Signatures de certification et verrous de champs

AddCertificationSignatureField, ConfigureCertificationSignature et AttachSignatureFieldLock créent des structures de permissions DocMDP et FieldMDP avec liaison au catalogue et politiques de verrou de champs, tandis que GetLoadedSignaturePermissions inspecte chaque méthode de transformation standard, y compris les droits d’usage UR/UR3 et les scopes Identity, AnalyzeLoadedSignatureRevisions classifie les changements ultérieurs — validation, formulaire, signature, annotation, fichier embarqué et autres — par rapport aux politiques reconstruites depuis le snapshot signé, et SaveIncrementalUpdateAuthenticated authentifie chaque signature de contrôle avant de publier atomiquement une révision autorisée

Couverture des fonctionnalités PDF avancées

  • Portes API spécifiques à la version PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7 + PDF 2.0 sélectionné pour le Catalogue, ViewerPreferences, annotations, JavaScript, polices Type0, maps ToUnicode, transparence, calques et chiffrement
  • Portes de conformité PDF/A-1 / -2 / -3 / -4 / -4e / -4f, PDF/X-1a / -3 / -4 et PDF/UA-1 / -2 plus une validation structurelle PDF/A-4 bornée qui refuse les appels de fonctionnalités ou la sortie non conformes au lieu de violer silencieusement le profil
  • Arbres de structure PDF balisé avec role maps, sortie StructParents, ParentTree et éléments de structure pour les flux orientés accessibilité
  • OutputIntents, profils ICC, boîtes de page, rotation, UserUnit, ordre Tabs, motifs de tiling, alpha ExtGState, modes de fusion, soft masks de luminosité gérés en couleur sur du contenu ICCBased, Lab, Separation et DeviceN, halftones exécutables Type 1 / 5 / 6 / 10 / 16 avec écrans de composantes couleur indépendants, tableaux de seuillage compactés en cache, tableaux de fonctions de transfert complets, fonctions échantillonnées en cache avec toutes les profondeurs compactées standard et ordres d’interpolation, et références de Function de génération de noir / retrait de sous-couleur
  • Contrôle d'API spécifiques aux versions PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7 + PDF 2.0 sélectionnées pour Catalog, ViewerPreferences, les annotations, JavaScript, les polices Type0, les mappages ToUnicode, la transparence, les calques et le chiffrement
  • Destinations nommées, vignettes de pages, style de signets au niveau page (couleur, gras, italique), registre de JavaScript nommé au niveau document, et la famille complète d’extras Line / PolyLine / Polygon (légende, extrémités de ligne, intent, effet de bordure)
  • Le façonnage arabe côté producteur couvre la table complète des classes de jonction U+0672-06D5 plus plus de 40 mappings statiques Arabic Presentation Forms-A, avec pliage en post-passe des ligatures LAM-ALEF, paires YEH-HAMZA + voyelle (U+FBEA-FBFB), ligature Allah (U+FDF2) et phrase Bismillah (U+FDFD)
  • Surfaces de capacité de façonnage multi-scripts : syriaque (GetSyriacJoiningClass / GetSyriacPosition), mongol (GetMongolianJoiningClass / GetMongolianPosition), devanagari (GetDevanagariCategory / ApplyDevanagariReorder) - pilotent le même moteur GSUB pour les scripts complexes non arabes
  • Pipeline de façonnage Phase 8 automatique piloté par la propriété en opt-in ShapingFeatures : sfArabicGSUB applique les init / medi / fina / isol arabes natifs plus rlig / calt / rclt pour émettre des IDs de glyphes contextuels spécifiques à la police, sfCursiveAttachment applique les ancres cursives GPOS, sfStandardLigatures / sfContextualLigatures émettent les liga / clig latines (FB00-FB06 : ff / fi / fl / ffi / ffl / ſt / st), et sfIndicShaping réordonnance les amas devanagari (Repha + I-matra pré-base) avant l’émission
  • Moteur de substitution OpenType GSUB complet en fonctionnalités (LookupType 1-8) avec sélection Script / LangSys, closure du subsetter TTF (MarkUnicodeGlyphUsed), couverture Cmap format 12 SMP, analyse GDEF, émission automatique de CMap ToUnicode avec 35 entrées de mapping inverse de ligatures, et une recherche GetUnicodeGlyphForCodepoint pour les appelants qui pilotent l’émission glyphe par glyphe
  • Émission de points de code synthétiques PUA (AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID) permet aux producteurs d’émettre tout GID de substitution GSUB (formes d’amas devanagari, alternates stylistiques, séquences de variation CJK) via la Private Use Area U+E000-F8FF avec intégration miroir /CIDToGIDMap + /W. GetCodepointAdvance expose la fraction d’em /W en cache pour les calculs d’enveloppage
  • Moteur de positionnement OpenType GPOS derrière les commutateurs de façonnage en opt-in : kerning par paires, simple et contextuel (Context / Chained Context) pour le texte de gauche à droite et de droite à gauche, placement mark-to-base / mark-to-mark / mark-to-ligature avec précision par composant sur les ligatures, attachement cursif entrée-sortie, positionnement par distance, et kerning vertical vkrn / vpal appliqué à la sortie de texte vertical
  • Façonnage de scripts complexes côté producteur pour Arabic Supplement / Extended-A / Extended-B, syriaque, mongol, N'Ko, Adlam, Hanifi Rohingya, empilement tibétain, famille de scripts Indic via la chaîne de fonctionnalités Indic de la police, javanais, ordre des signes Thai / Lao, ordre des voyelles hébraïques, khmer, birman, Tai Viet et Meetei Mayek, chacun derrière son propre commutateur en opt-in avec mapping inverse ToUnicode pour le copier / coller
  • Fonctionnalités typographiques OpenType automatiques pendant la sortie de texte : ligatures liga / clig / dlig / hlig, petites capitales smcp / c2sc, styles de chiffres onum / lnum / pnum / tnum, sups / subs / ordn / frac / sinf / numr / dnom, alternates stylistiques salt, alternates contextuels calt / rclt, formes localisées locl, formes case, zéro barré zero, et alternates verticaux vert / vrt2, avec les substitutions chaînées résolues vers le texte source dans la CMap ToUnicode
  • Optimisation de l’embarquement de polices : programmes de polices embarqués toujours compressés, une copie embarquée par document pour les polices utilisées sur plusieurs pages, tags de sous-ensembles déterministes pour une sortie reproductible, et un mode WinAnsi non embarqué optionnel pour le texte ASCII simple avec polices standard
  • Champs texte AcroForm, listes, zones combinées, cases à cocher, boutons radio, actions de boutons poussoirs (y compris Named / Hide / Show / ImportData / SubmitForm étendus avec /Flags contrôlés par l’utilisateur et chaînes d’actions avancées THPDFActionBuilder), champs de signature et flux d’apparences générés (Tx multi-lignes + comb + texte enrichi + /AP police CID)
  • Famille de déclencheurs de champs de formulaire AcroForm (/AA /K Keystroke, /F Format, /V Validate, /C Calculate) avec une méthode wrapper par déclencheur JavaScript, un évaluateur typé borné pour les expressions conditionnelles, chaîne, date et tableau, des helpers nommés d’installation et d’effacement THPDFActionBuilder, des wrappers par nom de champ pour les déclencheurs souris et focus de widgets (/E, /X, /D, /U, /Fo, /Bl), l’enregistrement de polices multi-Unicode /DR via RegisterAcroFormFont, le support des conteneurs XFA (XML Forms Architecture) (PDF 1.7 §12.7.6 / §12.7.8) avec AddXFAPacket / ClearXFAPackets / XFAPacketCount, les requêtes et éditions DOM de flux XDP et de tableaux de paquets préservant l’octet exact avec sérialisation bornée canonique d’espaces de noms, CDATA et entités, et des portes de conformité PDF/A + PDF/X, plus l’aplatissement XFA vers AcroForm (ApplyXFAAsAcroForm pour les octets XDP bruts, FlattenLoadedXFA pour le formulaire embarqué d’un PDF chargé) qui transforme le XFA statique en champs AcroForm natifs, styles, champs texte de lignes de tableaux à colonnes fixes et automatiques mesurés en flux avec layout="tb" imbriqué, layout="lr-tb" enveloppé, et graphiques de page afin que le formulaire reste visible et remplissable dans les lecteurs sans moteur XFA
  • Métadonnées de navigation de documents générés : plages /PageLabels du catalogue via THPDFPageLabelStyle, SetPageLabel et les méthodes helpers décimales / romaines / alphabétiques, plus /Threads du catalogue et beads d’articles par page via RegisterArticleThread et THPDFPage.AddArticleBead
  • Famille de déclencheurs de champs de formulaire AcroForm (/AA /K Keystroke, /F Format, /V Validate, /C Calculate) avec une méthode d'enveloppement par déclencheur ; enregistrement de polices multi-Unicode /DR via RegisterAcroFormFont ; prise en charge du conteneur XFA (XML Forms Architecture) (PDF 1.7 §12.7.6 / §12.7.8) avec AddXFAPacket / ClearXFAPackets / XFAPacketCount et barrières de conformité PDF/A + PDF/X, plus aplatissement XFA-vers-AcroForm (ApplyXFAAsAcroForm pour les octets XDP bruts, FlattenLoadedXFA pour un formulaire intégré d'un PDF chargé) qui transforme le XFA statique en champs AcroForm natifs, style et graphiques de page de sorte que le formulaire reste visible et remplissable dans les lecteurs sans moteur XFA
  • Surface d’accessibilité PDF balisé PDF/UA-1 : propriétés des séquences de contenu marqué §14.8.4 sur BeginTaggedContent (/Lang / /Alt / /ActualText / /E), setters d’attributs d’éléments de structure (/Lang / /E / /T), énumération des types de structure standard de la table 333 (THPDFStandardStructureType) plus une surcharge typée AddStructureElement
  • Support d’annotations pour surlignages, texte libre, liens, pièces jointes, popups, caviardure, filigrane, rich media, 3D / U3D / PRC, styles de bordure et popups de commentaires liés
  • Sécurité standard par mot de passe, gestionnaires de sécurité AES-128 / AES-256, hachage PDF 2.0 R6, chiffrement à clé publique par destinataires de certificats via enveloppes PKCS#7 fournies par l’appelant, effacement explicite des copies de mots de passe, clés de fichier et d’objets dérivées, calendriers AES en cache, PKCS#12 en clair, et scratch de texte en clair en flux sur chaque chemin de succès ou d’échec, et gestion binaire-sûre des noms de colorants / polices non ASCII
  • Prise en charge des annotations pour les surbrillances, le texte libre, les liens, les pièces jointes de fichiers, les fenêtres contextuelles, la biffure, le filigrane, les médias enrichis, la 3D / U3D / PRC, les styles de bordure et les fenêtres contextuelles de commentaires liées
  • Signature PFX / PKCS#12 en cours de processus : profils ASN.1, RSA, AES, PBES2 AES-128 / AES-192 / AES-256 CBC et HMAC-SHA-1 / SHA-256 / SHA-384 / SHA-512 PBKDF2 fournis avec la bibliothèque, PFX historique PBE-SHA1-3DES, sélection déterministe multi-identités localKeyId, préservation de la chaîne de certificats disponible correspondante, et pile CMS SignedData qui signe RSA et ECDSA nativement ou Ed25519 et Ed448 via un libcrypto OpenSSL 3 optionnel
  • Backends PDF enfichables pour FastReport 4 / FastReport VCL, QuickReport, ReportBuilder et DevExpress ExpressPrinting System, plus un exporteur de tableaux TDBGrid VCL avec opt-ins des portes PDF/A et PDF/X

Pile de compression et d'imagerie haute performance

Les builds HotPDF actuels utilisent zlib-ng en mode compatible zlib pour le backend Flate fourni. Les flux de pages, flux de polices embarqués, CMaps ToUnicode, flux d’images Flate, sorties liées à TIFF et helpers FlateDecode sont routés via la couche zlib de HotPDF

Les builds Win64x et MSVC Win64 de diagnostic de zlib-ng incluent un dispatch CPU à l’exécution pour les chemins SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ et AVX2 avec replis génériques conservés. Win32 reste sur l’ensemble d’objets OMF zlib-ng générique via bcc32c, tandis que les objets JPEG et TIFF Win32 continuent d’emprunter le chemin OMF bcc32 classique

Les flux JPEG standard utilisent l’ensemble d’objets libjpeg-turbo 3.1.90 fourni via l’API compatible libjpeg exposée par HPDFJpeg.pas. Les builds natifs Win32, Win64 et Win64x incluent désormais les ensembles d’objets SIMD NASM pertinents, et le même backend JPEG natif est disponible pour la couche d’intégration TIFF pour la gestion des TIFF compressés en JPEG

Le pont runtime C dans HPDFCLibs.pas résout désormais malloc, free, realloc, calloc, memcpy, memmove et memset via une seule couche tournée vers Pascal, avec allocation alignée 32 octets pour des tampons natifs adaptés au SIMD

Le dépôt inclut des scripts de build d’objets reproductibles : Lib\thirdparty\build-bcc32.bat, Lib\thirdparty\build-bcc64x.bat et Lib\thirdparty\build-vc64.bat pour l’ensemble complet de bibliothèques C natives, plus des scripts zlib-ng seuls pour des recompils de compression ciblées

Exemple rapide Delphi

program HelloHotPDF;

uses
  System.SysUtils,
  HPDFDoc;

var
  PDF: THotPDF;
begin
  PDF := THotPDF.Create(nil);
  try
    PDF.AutoLaunch := False;
    PDF.FileName := 'HelloHotPDF.pdf';
    PDF.Compression := cmFlateDecode;
    PDF.EnableFontSubsetting := True;
    PDF.BeginDoc;
    PDF.CurrentPage.SetFont('Arial', [], 18);
    PDF.CurrentPage.TextOut(50, 50, 0, 'Hello HotPDF');
    PDF.EndDoc;
  finally
    PDF.Free;
  end;
end.

Contenu du package

Cas d'utilisation typiques