Dynamische Word DOCX‑bestandcreatie via Gratis C++‑API
Open‑source C++ DOCX‑bibliotheek om Word‑documenten (.docx‑formaat) direct vanuit C++‑code te genereren. Het maakt het toevoegen van tabellen & afbeeldingen, het toepassen van formaten & stijlen op tekst & meer mogelijk.
Wat is MiniDocx?
Werken met Microsoft Word‑documenten op programmeerbare wijze is traditioneel een uitdagende taak voor C++‑ontwikkelaars, vaak vereist het omvangrijke afhankelijkheden of propriëtaire software‑installaties. MiniDocx verandert dit landschap door een lichtgewicht, moderne en gebruiksvriendelijke oplossing te bieden voor het creëren van Word‑documenten direct vanuit C++‑toepassingen. Deze open‑source bibliotheek elimineert de noodzaak van Microsoft Office of WPS Office‑installaties terwijl het robuuste functionaliteit voor documentmanipulatie levert. MiniDocx wordt geleverd met essentiële functies die de fundamentele aspecten van het maken van Word‑documenten dekken. Het ondersteunt secties, alinea’s, rich‑text‑opmaak, tabellen, afbeeldingen, stijlen en lijsten. Deze uitgebreide feature‑set stelt ontwikkelaars in staat om complexe, goed opgemaakte documenten te maken die aan professionele normen voldoen.
MiniDocx is een moderne, open‑source C++‑bibliotheek die ontwikkelaars in staat stelt om Microsoft Word .docx‑documenten programmeermatig te creëren en te manipuleren — zonder dat Microsoft Word of WPS Office geïnstalleerd hoeft te zijn. De architectuur van de bibliotheek is gebouwd rond moderne C++20‑standaarden, waarbij de nieuwste taalfeatures worden benut voor betere prestaties, type‑veiligheid en code‑duidelijkheid. Een opvallende eigenschap van MiniDocx is de cross‑platform compatibiliteit. De bibliotheek werkt naadloos op Windows, Linux en macOS, waardoor het een uitstekende keuze is voor ontwikkelaars die applicaties bouwen die op meerdere platformen moeten draaien.
Aan de slag met MiniDocx
De aanbevolen manier om MiniDocx te installeren is via GitHub. Gebruik alstublieft het volgende commando voor een vlotte installatie.
Installeer MiniDocx via GitHub
git clone git@github.com:totravel/minidocx.git
cd minidocx You can also download it directly from Aspose product page.Een Word Docx‑document maken via C++
De open‑source MiniDocx‑bibliotheek maakt het voor softwareontwikkelaars eenvoudig om Word Docx‑documenten te creëren en te manipuleren binnen C++‑applicaties. De bibliotheek biedt ondersteuning voor het toepassen van opmaak, het toevoegen van tekst, tabellen en afbeeldingen in Word‑documenten. De eenvoudigste manier om MiniDocx te begrijpen is via een praktisch voorbeeld. Het creëren van een basis‑Word‑document met opgemaakte tekst toont het intuïtieve API‑ontwerp en de eenvoudige workflow van de bibliotheek.
Hoe maak je Word‑documenten met C++‑bibliotheek?
#include "minidocx/minidocx.hpp"
#include
int main()
{
using namespace md;
try {
Document doc;
SectionPointer sect = doc.addSection();
ParagraphPointer para = sect->addParagraph();
para->prop_.align_ = Alignment::Centered;
RichTextPointer rich = para->addRichText("Happy Chinese New Year!");
rich->prop_.fontSize_ = 32;
rich->prop_.color_ = "FF0000";
doc.saveAs("a.docx");
}
catch (const Exception& ex) {
std::cerr << ex.what() << std::endl;
}
return 0;
}
Tabellen toevoegen aan documenten via C++‑bibliotheek
Tabellen zijn essentieel voor het presenteren van gestructureerde gegevens in Word‑documenten, en MiniDocx biedt uitgebreide mogelijkheden voor het maken en formatteren van tabellen. Tabellen bestaan uit rijen en cellen, waarbij elke cel tekst, opmaak en zelfs geneste inhoud kan bevatten. Het maken van een tabel omvat verschillende stappen: de tabelstructuur definiëren, rijen toevoegen, cellen vullen met inhoud en opmaak toepassen. Hier volgt een gedetailleerd voorbeeld dat laat zien hoe softwareontwikkelaars een opgemaakte tabel in C++‑apps kunnen creëren.
Hoe maak je een opgemaakte tabel in een Word‑document via C++‑bibliotheek?
#include "minidocx/minidocx.hpp"
int main()
{
using namespace md;
try {
Document doc;
SectionPointer sect = doc.addSection();
// Create a table with 3 rows and 2 columns
TablePointer table = sect->addTable(3, 2);
// Access and populate cells
// First row - header
auto cell00 = table->cell(0, 0);
auto para00 = cell00->addParagraph();
auto text00 = para00->addRichText("Name");
text00->prop_.bold_ = true;
auto cell01 = table->cell(0, 1);
auto para01 = cell01->addParagraph();
auto text01 = para01->addRichText("Age");
text01->prop_.bold_ = true;
// Second row
auto cell10 = table->cell(1, 0);
auto para10 = cell10->addParagraph();
para10->addRichText("Alice");
auto cell11 = table->cell(1, 1);
auto para11 = cell11->addParagraph();
para11->addRichText("25");
// Third row
auto cell20 = table->cell(2, 0);
auto para20 = cell20->addParagraph();
para20->addRichText("Bob");
auto cell21 = table->cell(2, 1);
auto para21 = cell21->addParagraph();
para21->addRichText("30");
doc.saveAs("table_document.docx");
}
catch (const Exception& ex) {
std::cerr << ex.what() << std::endl;
}
return 0;
}
Afbeeldingen en plaatjes invoegen in Word DOCX‑bestand
Visuele inhoud verbetert de leesbaarheid en betrokkenheid van een document, waardoor afbeeldingsondersteuning een cruciale functie is voor elke documentgeneratiebibliotheek. MiniDocx stelt softwareontwikkelaars in staat om afbeeldingen in documenten in te voegen met controle over grootte en positionering. Het toevoegen van afbeeldingen aan een document vereist het specificeren van het afbeeldingspad en optioneel het instellen van afmetingen. Hier is een voorbeeld dat laat zien hoe je een afbeelding in een Word‑document invoegt via de C++‑bibliotheek.
Hoe voeg je een afbeelding in een Word‑document in via C++‑bibliotheek?
#include "minidocx/minidocx.hpp"
int main()
{
using namespace md;
try {
Document doc;
SectionPointer sect = doc.addSection();
// Add a paragraph before the image
ParagraphPointer para1 = sect->addParagraph();
para1->addRichText("Below is an important diagram:");
// Add a paragraph containing the image
ParagraphPointer para2 = sect->addParagraph();
para2->prop_.align_ = Alignment::Centered;
// Insert the picture
PicturePointer pic = para2->addPicture("path/to/image.png");
pic->prop_.width_ = 400;
pic->prop_.height_ = 300;
// Add a paragraph after the image
ParagraphPointer para3 = sect->addParagraph();
para3->addRichText("Figure 1: Important visualization");
doc.saveAs("document_with_image.docx");
}
catch (const Exception& ex) {
std::cerr << ex.what() << std::endl;
}
return 0;
}
Documentsecties en paginalay-out
Secties vormen het kader voor het beheren van paginalay-out eigenschappen binnen Word‑documenten. Elke sectie kan verschillende pagina‑instellingen hebben, zoals paginagrootte, oriëntatie, marges, kop‑ en voetteksten. Deze op secties gebaseerde architectuur maakt complexe documentlay-outs met variërende pagina‑configuraties mogelijk. Een typisch gebruiksscenario voor meerdere secties is het maken van documenten met zowel staande als liggende pagina’s, zoals rapporten die brede tabellen of diagrammen bevatten die een liggende oriëntatie vereisen. Hier volgt een voorbeeld dat laat zien hoe je met meerdere secties van Word‑documenten binnen C++‑applicaties kunt werken.
Hoe werk je met meerdere secties van Word‑documenten via C++‑bibliotheek?
#include "minidocx/minidocx.hpp"
int main()
{
using namespace md;
try {
Document doc;
// First section with portrait orientation
SectionPointer sect1 = doc.addSection();
sect1->prop_.orientation_ = Orientation::Portrait;
sect1->prop_.pageWidth_ = 8.5 * 1440; // Letter size in twips
sect1->prop_.pageHeight_ = 11 * 1440;
ParagraphPointer para1 = sect1->addParagraph();
para1->addRichText("This is content in portrait orientation.");
// Second section with landscape orientation
SectionPointer sect2 = doc.addSection();
sect2->prop_.orientation_ = Orientation::Landscape;
sect2->prop_.pageWidth_ = 11 * 1440;
sect2->prop_.pageHeight_ = 8.5 * 1440;
ParagraphPointer para2 = sect2->addParagraph();
para2->addRichText("This content appears in landscape orientation.");
doc.saveAs("multi_section_document.docx");
}
catch (const Exception& ex) {
std::cerr << ex.what() << std::endl;
}
return 0;
}