|
HotPDF est une bibliothèque de composants VCL pour Delphi et C++Builder qui génère des documents PDF sans DLL PDF externe. Le point d’entrée principal est la classe THotPDF, qui gère la création de documents, l’accès aux pages, la compression, les métadonnées, la sécurité et les flux de sortie
Les types de flux de travail incluent le dessin de texte et de graphiques vectoriels, l'intégration de contenu bitmap et de métafichier, l'import d'images TIFF et JPEG2000, l'ajout de fichiers, la configuration des préférences de l'afficheur, la protection du document final par mots de passe et autorisations, ainsi que le chargement de PDF Standard chiffrés RC4-40 / RC4-128 avec un mot de passe pour la sortie du document chargé non chiffré
Points forts actuels
- Prise en charge étendue des images TIFF, JPEG2000, JBIG2, WMF et EMF
- Prise en charge LZW intégrée, compression Flate basée sur zlib-ng en mode compatible zlib, répartition SIMD au runtime 64 bits de zlib-ng, et traitement JPEG standard basé sur libjpeg-turbo 3.1.90 avec accélération SIMD des objets NASM
- Pont de runtime C partagé dans HPDFCLibs.pas pour les objets OMF Win32 bcc32c/bcc32, les objets COFF64 Win64 et les objets COFF Win64x de zlib-ng, avec allocation C alignée sur 32 octets
- Préférences d'affichage et d'impression étendues, notamment le sens du document, la mise à l'échelle à l'impression, le mode recto-verso, les limites de page et le comportement de zoom initial
- Intégration des polices améliorée, sortie de texte Unicode et rendu du texte de droite à gauche
- La sortie PDF/A niveau A active les bases du PDF balisé pour la conformité d'archivage tout en gardant l'identification PDF/UA-1 comme option explicite via PDFUACompliance
- Les flux de travail PDF/A-1, PDF/A-2, PDF/A-3, PDF/X-1a, PDF/X-3, PDF/X-4 et PDF/UA-1 incluent des contrôles de production sensibles au profil, la génération de métadonnées, la prise en charge d'OutputIntent lorsqu'elle s'applique, et une couverture de smoke test pour PDF/A-2A / PDF/A-3A validée avec veraPDF
- Applications de démonstration mises à jour pour ViewerPreferences et la validation des polices intégrées
Positionnement de conformité aux normes
- La prise en charge PDF/A est exposée via PDFACompliance. HotPDF fournit les métadonnées PDF/A, les restrictions de profil, l’application des contraintes d’intégration des polices, les points d’accroche OutputIntent et la couverture de smoke test de validation ; l’application fournit toujours des profils ICC valides, les valeurs de titre et de langue, les polices et le contenu adapté au profil
- La prise en charge PDF/UA est exposée via PDFUACompliance et les API PDF balisé. HotPDF fournit l’enveloppe au niveau document, la structure d’arbre, le mappage des rôles, les aides de contenu balisé, le câblage ParentTree et les aides alternate-text / ActualText ; l’application conserve la vraie structure sémantique et l’ordre de lecture
- PDF/A niveau A et PDF/UA-1 sont deux revendications distinctes. Le niveau A active la base PDF balisé requise pour la conformité d’archivage, tandis que l’identité XMP PDF/UA-1 n’est émise que lorsque PDFUACompliance est activé explicitement
Notes de compilation et de plateforme
- Les builds Win32 lient les objets OMF zlib-ng générés par bcc32c et les objets OMF JPEG/TIFF générés par bcc32 stockés dans Lib\thirdparty\Win32
- Les builds Win64 lient les objets COFF64 stockés dans Lib\thirdparty\Win64 ; le backend zlib-ng lie actuellement les objets COFF générés par bcc64x stockés dans Lib\thirdparty\Win64x
- La validation de la reconstruction des objets natifs passe à partir de sorties propres : 206 objets Win32, 205 objets Win64x et 206 objets MSVC Win64
- L’unité HPDFOpenJpeg.pas sert actuellement de couche d’interface et de point d’extension ; elle ne doit pas être considérée comme un binding natif OpenJPEG complet au runtime
Diagnostic
- Les diagnostics généraux de la bibliothèque sont contrôlés par withDEBUG dans HotPDF.inc, qui écrit HotPDF-Debug.log lorsqu’il est activé
- Le traçage de la fusion du contenu de page est contrôlé séparément par PAGECONTENT_DEBUG_FILE, qui écrit PageContent_Debug.txt uniquement lorsqu'il est activé explicitement
Validation automatisée
- La suite de régression DUnitX Delphi passe 20 tests sur Win32 et 20 tests sur Win64 via Tests\Delphi\Run-HotPDFDelphiTests.bat
- La suite de régression GoogleTest C++Builder passe 17 tests sur Win32 et 17 tests sur Win64x via Tests\C++Builder\Run-HotPDFCBuilderTests.bat
- La couverture automatisée exerce les métadonnées générées, le texte Unicode et RTL, les annotations, les pièces jointes, le placement standard des images JPEG, l’import d’images et de TIFF, la compression Flate zlib-ng, la sortie de codes-barres, la sortie sur flux mémoire, la configuration de page, le chiffrement, les hyperliens, les paragraphes, les flux de copie/fusion/édition, les tableaux, les graphiques, la sortie numérique, les métafiles et les rapports structurés
HotPDF convient à la génération de rapports, à la documentation technique, aux workflows d’imagerie et aux autres applications qui exigent un contrôle programmatique direct de la sortie PDF
|