Dinamikus Word DOCX fájl készítése ingyenes C++ API-val

Nyílt forráskódú, ingyenes C++ Word feldolgozó könyvtár, amely lehetővé teszi Word DOCX fájlok programozott létrehozását, szerkesztését, egyesítését és konvertálását. Barcodes, charts, text, images hozzáadása és formázás alkalmazása.

Mi az a MiniDocx?

A Microsoft Word dokumentumok programozott kezelése hagyományosan kihívást jelentett a C++ fejlesztők számára, gyakran nagy függőségek vagy zárt forrású szoftverek telepítését igényelte. A MiniDocx megváltoztatja ezt a helyzetet, egy könnyű, modern és felhasználóbarát megoldást kínálva Word dokumentumok közvetlen létrehozásához C++ alkalmazásokból. Ez a nyílt forráskódú könyvtár megszünteti a Microsoft Office vagy WPS Office telepítésének szükségességét, miközben erős funkcionalitást biztosít a dokumentumok manipulálásához. A MiniDocx alapvető funkciókkal rendelkezik, amelyek lefedik a Word dokumentumok létrehozásának alapvető aspektusait. Támogatja a szekciókat, bekezdéseket, gazdag szövegformázást, táblázatokat, képeket, stílusokat és listákat. Ez a teljes körű funkciókészlet lehetővé teszi a fejlesztők számára, hogy komplex, jól formázott dokumentumokat hozzanak létre, amelyek megfelelnek a professzionális szabványoknak.

A MiniDocx egy modern, nyílt forráskódú C++ könyvtár, amely lehetővé teszi a fejlesztők számára a Microsoft Word .docx dokumentumok programozott létrehozását és manipulálását – anélkül, hogy a Microsoft Word vagy a WPS Office telepítése szükséges lenne. A könyvtár architektúrája a modern C++20 szabványok köré épül, kihasználva a legújabb nyelvi funkciókat a jobb teljesítmény, típusbiztonság és kódtisztaság érdekében. A MiniDocx egyike kiemelkedő jellemzőinek a több platformon való kompatibilitás. A könyvtár zökkenőmentesen működik Windows, Linux és macOS operációs rendszereken, így kiváló választás fejlesztők számára, akik olyan alkalmazásokat építenek, amelyeknek több platformon kell futniuk.

Previous Next

A MiniDocx használatának elkezdése

A MiniDocx telepítésének ajánlott módja a GitHub használata. Kérjük, használja a következő parancsot a zökkenőmentes telepítéshez.

MiniDocx telepítése GitHub-ról

git clone git@github.com:totravel/minidocx.git 
cd minidocx  
You can also download it directly from Aspose product page.

Sablon-alapú dokumentum generálás C++-val

A MiniDocx alapfilozófiája az egyszerűség. A dokumentumok elemenkénti programozott felépítése helyett egy sablont hoz létre a Microsoft Wordben – egy normál DOCX fájlt helyőrzőkkel –, majd egyesíti a benne lévő adatokat. Ez a megközelítés több előnyt kínál, például gyorsabb fejlesztést, WYSIWYG szerkesztést és így tovább. Itt egy hasznos példa, amely bemutatja, hogyan generáljunk új World dokumentumokat egy templátból C++ könyvtár használatával.

Hogyan készítsünk új dokumentumot sablonból C++ könyvtárral?

#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;
}

Kiterjedt vonalkód támogatás DOCX-ben

A nyílt forráskódú MiniDocx könyvtár széles körű 1D és 2D vonalkód támogatást nyújt, beleértve a Code39, Code128, EAN, UPC, ISBN, Databar, postai kódok, PDF417, Data Matrix, QR Code és Maxi Code formátumokat. A vonalkódok mezőként kerülnek beillesztésre a sablonokba, és automatikusan jelennek meg a megadott adatok alapján. Ez ideálissá teszi őket készletkezelő rendszerekhez, szállítási és logisztikai alkalmazásokhoz, termékcímkézési megoldásokhoz, dokumentumkövető rendszerekhez, kiskereskedelmi értékesítési pont integrációhoz stb.

Hogyan alkalmazzunk fejlett formázást és stílust Word dokumentumokban C++ könyvtárral?



#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;
}

Diagramok hozzáadása és kezelése World fájlokban C++-val

A MiniDocx könyvtár dinamikusan tudja kitölteni a diagramadatokat, lehetővé téve adat-vezérelt vizualizációk létrehozását. A sablonban meghatározott diagramok adat-sorozatait programozottan frissítheti, lehetővé téve vezetői irányítópultok és elemző jelentések generálását. A könyvtár több mint 70 diagramtípust támogat, amelyek elérhetők a Microsoft Wordben, beleértve a oszlop, vonal, kör, sáv, terület, szórt, részvény, felület, gyűrű, buborék, radar diagramok stb. Ez a funkció dinamikus pénzügyi jelentések, valós idejű adatvizualizációk, statisztikai elemzési dokumentumok, üzleti intelligencia irányítópultok, tudományos kutatási jelentések, teljesítménykövető dokumentációk és hasonlók készítését teszi lehetővé.

How to Insert an Image into a Word Document via C++ library?

#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;
}

Fejlett formázás és stílus DOCX fájlokban

A nyílt forráskódú MiniDocx könyvtár megőrzi a Word natív formázását, miközben dinamikusan hozzáigazítja a stílusokat a C++ alkalmazásokban. A könyvtár különféle formázási funkciókat támogat, mint például betűstílusok, méretek, színek, bekezdésigazítás és távolságok, egyéni szegélyekkel ellátott táblázatok, fejléc és lábléc, oldalszámok és szakaszhatárok, egyéni stílusok és témák stb. A generált dokumentum megtartja a sablon minden formázását, biztosítva az egységes márkaépítést és professzionális megjelenést. Az alábbi kódpélda azt mutatja, hogyan alkalmazhatnak a fejlesztők feltételes formázást adat alapján C++ alkalmazásokban.

How to Work with Multiple Sections of Word Documents via C++ Library?


#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;
}

 Magyar