יצירת קובץ Word DOCX דינמי באמצעות API של C++ חינמי

ספריית C++ בקוד פתוח ל‑DOCX ליצירת מסמכי Word (פורמט .docx) ישירות מקוד C++. היא מאפשרת הוספת טבלאות ותמונות, החלת פורמטים וסגנונות על טקסט ועוד.

מהי DocxFactory?

DocxFactory היא ספרייה חזקה, חוצת פלטפורמות וקוד פתוח של C++ שנועדה לייצר קבצי Microsoft Word DOCX (פורמט OpenXML) באמצעות יצירת מסמכים על בסיס תבנית. ספרייה חינמית זו מגיעה עם עטיפות לשפות תכנות מרובות כולל C#, Java, Python ו‑Progress 4GL, וכן כלי שורת פקודה. מה שמייחד את DocxFactory הוא הגישה מבוססת תבנית שלה שמסירה את הצורך שהמפתחים יבינו את פורמט הקובץ OpenXML המורכב. הספרייה כוללת תמיכה במגוון תכונות חשובות של עיבוד טקסט, כגון יצירת מסמכים על בסיס תבנית, הוספה/הסרה של פסקאות או תמונות, עיצוב טקסט, עבודה עם טבלאות, מיזוג או פיצול תאים, ניהול רשימות, תמיכה מרובת שפות, תמיכה נרחבת בקוד ברקוד, תמיכה במספר פורמטים של פלט ועוד.

MiniDocx היא ספרייה מודרנית וקוד פתוח של C++ המאפשרת למפתחים ליצור ולנהל מסמכי Microsoft Word .docx באופן תכנותי — ללא צורך בהתקנת Microsoft Word או WPS Office. ארכיטקטורת הספרייה נבנתה סביב תקן C++20 מודרני, מנצלת את תכונות השפה העדכניות לביצועים טובים יותר, בטיחות טיפוס וקריאות קוד. אחת המאפיינים הבולטים של MiniDocx היא התאימות שלה למספר פלטפורמות. הספרייה עובדת באופן חלק על Windows, Linux ו‑macOS, מה שהופך אותה לבחירה מצוינת עבור מפתחים הבונים יישומים שנדרשים לרוץ על פלטפורמות מרובות.

Previous Next

התחלה עם DocxFactory

הדרך המומלצת להתקנת DocxFactory היא דרך GitHub. אנא השתמשו בפקודה הבאה להתקנה חלקה.

התקנת DocxFactory דרך GitHub

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

יצירת מסמכים מבוססי תבנית באמצעות C++

הפילוסופיה המרכזית של DocxFactory מתמקדת בפשטות. במקום לבנות מסמכים תכנותית פריט אחרי פריט, אתם יוצרים תבנית ב‑Microsoft Word — קובץ DOCX רגיל עם מצייני מיקום — וממזגים לתוכו את הנתונים שלכם. גישה זו מציעה יתרונות רבים, כגון פיתוח מהיר יותר, עריכה WYSIWYG ועוד. הנה דוגמה שימושית שמדגימה איך ליצור מסמכי World חדשים מתבנית באמצעות ספריית C++.

איך ליצור מסמך חדש מתבנית באמצעות ספריית C++?

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

הוספה וניהול גרפים בקבצי World באמצעות C+

ספריית DocxFactory בקוד פתוח תומכת בטווח רחב של קודי ברקוד 1D ו‑2D, כולל Code39, Code128, EAN, UPC, ISBN, Databar, קודי מיקוד, PDF417, Data Matrix, QR Code ו‑Maxi Code. הברקודים מוזרקים כשדות בתבניות ומוצגים אוטומטית על בסיס הנתונים שהוזנו. זה הופך אותה לאידיאלית למערכות ניהול מלאי, יישומי שריקה ולוגיסטיקה, פתרונות תיוג מוצרים, מערכות מעקב מסמכים, אינטגרציה של קופה בנק קמעונאית ועוד.

איך להחיל עיצוב וסגנון מתקדמים בתוך מסמכי Word באמצעות ספריית C++?



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

Insert Images and Pictures to Word DOCX File

ספריית DocxFactory יכולה למלא נתוני גרפים בצורה דינמית, מה שמאפשר ליצור ויזואליזציות מונעות נתונים. גרפים המוגדרים בתבנית שלכם יכולים לקבל עדכון של סדרת הנתונים באופן תכנותי, כך שניתן ליצור לוחות מחוונים מנהליים ודוחות אנליטיים. הספרייה כוללת תמיכה ברשימה מלאה של יותר מ‑70 סוגי גרפים זמינים ב‑Microsoft Word, כולל עמודות, קווים, פאי, ברים, אזורים, פיזור, מניות, משטח, דונאט, בועות, רדאר ועוד. תכונה זו מאפשרת דוחות פיננסיים דינמיים עם ויזואליזציה בזמן אמת, מסמכי ניתוח סטטיסטיים, לוחות מחוונים למודיעין עסקי, דוחות מחקר מדעי, תיעוד מעקב ביצועים ועוד.

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

Document Sections and Page Layout

ספריית DocxFactory בקוד פתוח משמרת את העיצוב המקורי של Word תוך התאמת סגנונות באופן דינמי בתוך יישומי C++. הספרייה כוללת תמיכה במגוון תכונות עיצוב כגון סגנונות גופן, גדלים, צבעים, יישור פסקאות וריווח, טבלאות עם גבולות מותאמים, כותרות ותחתיות, מספרי עמודים ושבירות מקטעים, סגנונות ונושאים מותאמים ועוד. המסמך שנוצר שומר על כל העיצוב מהתבנית, מה שמבטיח מיתוג עקבי ומראה מקצועי. דוגמת הקוד הבאה מציגה כיצד מפתחים יכולים להחיל עיצוב מותנה על בסיס נתונים ביישומי C++.

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

 עִברִית