API C++ gratuite pour créer des fichiers Word DOCX basés sur des modèles
Une bibliothèque de traitement de texte Word C++ open source et gratuite permet de créer, éditer, fusionner et convertir les fichiers Word DOCX de façon programmatique. Ajoutez des graphiques, du texte, des images et appliquez le formatage.
Qu’est‑ce que DocxFactory ?
DocxFactory est une bibliothèque C++ puissante, multiplateforme et open source conçue pour générer des fichiers Microsoft Word DOCX (format OpenXML) grâce à la création de documents basée sur des modèles. Cette bibliothèque gratuite est fournie avec des wrappers pour plusieurs langages de programmation, dont C#, Java, Python et Progress 4GL, ainsi que des outils en ligne de commande. Ce qui distingue DocxFactory, c’est son approche basée sur les modèles qui élimine le besoin pour les développeurs de comprendre le format de fichier OpenXML complexe. La bibliothèque prend en charge diverses fonctionnalités importantes de traitement de texte, telles que la génération de documents basée sur des modèles, l’insertion / suppression de paragraphes ou d’images, le formatage du texte, le travail avec les tableaux, la fusion ou le fractionnement de cellules, la gestion des listes, le support multilingue, le support étendu des codes‑barres, le support de plusieurs formats de sortie, etc.
DocxFactory est une bibliothèque C/C++ mûre, gratuite et multiplateforme (avec des wrappers multilingues) qui simplifie le travail avec les fichiers Microsoft Word .docx. La bibliothèque fonctionne sur toutes les principales systèmes d’exploitation (Windows, UNIX/Linux), offrant ainsi une flexibilité pour le déploiement sur serveurs, postes de travail ou systèmes embarqués. Elle est sous licence Apache 2.0, ce qui la rend totalement gratuite tant pour un usage privé que commercial, sans aucune limitation de fonctionnalités ni contrainte de temps. Que vous construisiez des systèmes de reporting d’entreprise, des flux de travail de documents automatisés ou de simples applications de fusion de courrier, DocxFactory fournit les outils nécessaires pour générer efficacement des documents professionnels.
Premiers pas avec DocxFactory
La manière recommandée d'installer DocxFactory est via GitHub. Veuillez utiliser la commande suivante pour une installation fluide.
Installer DocxFactory via GitHub
git clone https://github.com/DocxFactory/DocxFactory.git You can also download it directly from Aspose product page.Génération de documents basés sur des modèles via C++
La philosophie centrale de DocxFactory repose sur la simplicité. Au lieu de construire programmatique les documents élément par élément, vous créez un modèle dans Microsoft Word — un fichier DOCX ordinaire avec des espaces réservés — et vous y fusionnez vos données. Cette approche offre plusieurs avantages, tels qu’un développement plus rapide, une édition WYSIWYG, etc. Voici un exemple utile qui montre comment générer de nouveaux documents Word à partir d’un modèle en utilisant la bibliothèque C++.
Comment créer un nouveau document à partir d’un modèle via la bibliothèque C++ ?
#include "DocxFactory/DocxMerger/DocxMerger.h"
#include "DocxFactory/DocxMerger/DocxMergerItem.h"
// Create a new document from template
DocxFactory::DocxMerger docxMerger;
DocxFactory::DocxMergerItem* item = docxMerger.load("template.docx");
// Set field values
item->setFieldValue("customer.name", "John Smith");
item->setFieldValue("invoice.date", "2024-01-15");
item->setFieldValue("invoice.total", 1250.75);
// Save generated document
docxMerger.save("generated_invoice.docx");
Ajout de tableaux aux documents via la bibliothèque C++
La bibliothèque open source DocxFactory prend en charge une large gamme de codes‑barres 1D et 2D, notamment Code39, Code128, EAN, UPC, ISBN, Databar, codes postaux, PDF417, Data Matrix, QR Code et Maxi Code. Les codes‑barres sont insérés comme champs dans les modèles et rendus automatiquement en fonction des données que vous fournissez. Cela la rend idéale pour les systèmes de gestion d’inventaire, les applications d’expédition et de logistique, les solutions d’étiquetage de produits, les systèmes de suivi de documents, l’intégration de points de vente au détail, etc.
Insérer des images et des illustrations dans un fichier Word DOCX
La bibliothèque DocxFactory peut remplir dynamiquement les données des graphiques, vous permettant de créer des visualisations basées sur les données. Les graphiques définis dans votre modèle peuvent voir leurs séries de données mises à jour programmatiquement, ce qui rend possible la génération de tableaux de bord exécutifs et de rapports analytiques. La bibliothèque inclut le support d’une liste complète de plus de 70 types de graphiques disponibles dans Microsoft Word, y compris Column, Line, Pie, Bar, Area, Scatter, Stock, Surface, Doughnut, Bubble, Radar, etc. Cette fonctionnalité permet de créer des rapports financiers dynamiques avec visualisation de données en temps réel, des documents d’analyse statistique, des tableaux de bord d’intelligence d’affaires, des rapports de recherche scientifique, de la documentation de suivi des performances, etc.
Sections du document et mise en page
La bibliothèque open source DocxFactory conserve le formatage natif de Word tout en ajustant dynamiquement les styles à l’intérieur des applications C++. Elle inclut la prise en charge de diverses fonctionnalités de formatage telles que les styles de police, tailles et couleurs, l’alignement et l’espacement des paragraphes, les tableaux avec bordures personnalisées, les en‑têtes et pieds de page, la numérotation des pages et les sauts de section, les styles et thèmes personnalisés, etc. Le document généré préserve tous les formats du modèle, assurant une cohérence de la marque et une apparence professionnelle. L’exemple de code suivant montre comment les développeurs peuvent appliquer un formatage conditionnel basé sur les données dans les applications C++.
Comment appliquer un formatage et un style avancés dans les documents Word via la bibliothèque C++ ?
// Advanced Conditional formatting based on data
item->setFieldValue("status.text", "OVERDUE");
item->setFieldValue("status.color", "#FF0000"); // Red color for overdue
// Dynamic table row formatting
for (size_t i = 0; i < invoiceItems.size(); i++) {
if (i % 2 == 0) {
item->setFieldValue("items.rowColor", "#F5F5F5");
}
}