Skapa dynamisk Word DOCX-fil via gratis C++‑API
Öppet källkods‑C++‑DOCX‑bibliotek för att generera Word‑dokument (.docx-format) direkt från C++‑kod. Det möjliggör att lägga till tabeller & bilder, tillämpa format & stilar på text & mer.
Vad är MiniDocx?
Att arbeta med Microsoft Word‑dokument programmatisk har traditionellt varit en utmanande uppgift för C++‑utvecklare, ofta med krav på tunga beroenden eller proprietära programvaruinstallationer. MiniDocx förändrar detta landskap genom att erbjuda en lättviktig, modern och användarvänlig lösning för att skapa Word‑dokument direkt från C++‑applikationer. Detta öppna källkods‑bibliotek eliminerar behovet av Microsoft Office eller WPS Office‑installationer samtidigt som det ger robust funktionalitet för dokumentmanipulation. MiniDocx levereras med ett antal viktiga funktioner som täcker de grundläggande aspekterna av att skapa Word‑dokument. Det stöder sektioner, stycken, rik textformatering, tabeller, bilder, stilar och listor. Detta omfattande funktionspaket gör det möjligt för utvecklare att skapa komplexa, välformaterade dokument som uppfyller professionella standarder.
MiniDocx är ett modernt, öppet källkods‑bibliotek i C++ som gör det möjligt för utvecklare att skapa och manipulera Microsoft Word .docx‑dokument programmatisk – utan att behöva installera Microsoft Word eller WPS Office. Bibliotekets arkitektur är byggd kring moderna C++20‑standarder och utnyttjar de senaste språkfunktionerna för bättre prestanda, typ‑säkerhet och kodklarhet. En av MiniDocx:s framstående egenskaper är dess plattformsoberoende kompatibilitet. Biblioteket fungerar sömlöst på Windows, Linux och macOS, vilket gör det till ett utmärkt val för utvecklare som bygger applikationer som måste köras på flera plattformar.
Kom igång med MiniDocx
Det rekommenderade sättet att installera MiniDocx är via GitHub. Använd följande kommando för en smidig installation.
Installera MiniDocx via GitHub
git clone git@github.com:totravel/minidocx.git
cd minidocx You can also download it directly from Aspose product page.Skapa Word‑dokument Docx via C++
Det öppna källkods‑biblioteket MiniDocx gör det enkelt för mjukvaruutvecklare att skapa och manipulera Word‑Docx‑dokument i C++‑applikationer. Biblioteket har inkluderat stöd för att tillämpa formatering, lägga till text, tabeller och bilder i Word‑dokument. Det enklaste sättet att förstå MiniDocx är genom ett praktiskt exempel. Att skapa ett grundläggande Word‑dokument med formaterad text visar på bibliotekets intuitiva API‑design och enkla arbetsflöde.
Hur skapar man Word‑dokument med C++‑biblioteket?
#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;
}
Lägg till tabeller i dokument via C++‑bibliotek
Tabeller är avgörande för att presentera strukturerad data i Word‑dokument, och MiniDocx erbjuder omfattande möjligheter för skapande och formatering av tabeller. Tabeller består av rader och celler, där varje cell kan innehålla text, formatering och även inbäddat innehåll. Att skapa en tabell innefattar flera steg: definiera tabellstrukturen, lägga till rader, fylla cellerna med innehåll och tillämpa formatering. Här är ett detaljerat exempel som visar hur mjukvaruutvecklare kan skapa en formaterad tabell i C++‑appar.
Hur skapar man en formaterad tabell i ett Word‑dokument via C++‑biblioteket?
#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;
}
Infoga bilder och illustrationer i Word DOCX‑fil
Visuellt innehåll förbättrar läsbarheten och engagemanget i dokument, vilket gör stöd för bilder till en kritisk funktion i alla dokumentgenereringsbibliotek. MiniDocx möjliggör att mjukvaruutvecklare kan infoga bilder i dokument med kontroll över storlek och placering. Att lägga till bilder i ett dokument kräver att du specificerar bildfilens sökväg och eventuellt ställer in dimensionerna. Här är ett exempel som visar hur man infogar en bild i ett Word‑dokument via C++‑biblioteket.
Hur infogar man en bild i ett Word‑dokument via C++‑biblioteket?
#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;
}
Dokumentsektioner och sidlayout
Sektioner ger ramen för att kontrollera sidlayoutsegenskaper i Word‑dokument. Varje sektion kan ha olika sidinställningar, inklusive sidstorlek, orientering, marginaler, rubriker och fotnoter. Den sektion‑baserade arkitekturen möjliggör komplexa dokumentlayouter med varierande sidkonfigurationer. Ett typiskt användningsfall för flera sektioner är att skapa dokument med både stående och liggande sidor, t.ex. rapporter som innehåller breda tabeller eller diagram som kräver liggande orientering. Här är ett exempel som visar hur man arbetar med flera sektioner i Word‑dokument i C++‑applikationer.
Hur arbetar man med flera sektioner i Word‑dokument via C++‑biblioteket?
#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;
}