การสร้างไฟล์ Word DOCX แบบไดนามิกผ่าน API C++ ฟรี

ไลบรารี C++ DOCX แบบเปิดแหล่งที่มาที่ใช้สร้างเอกสาร Word (รูปแบบ .docx) โดยตรงจากโค้ด C++ มันทำให้คุณเพิ่มตารางและรูปภาพ, ใช้รูปแบบและสไตล์กับข้อความ และอื่น ๆ

MiniDocx คืออะไร?

DocxFactory เป็นไลบรารี C++ แบบเปิดแหล่งที่มาที่ทรงพลังและข้ามแพลตฟอร์มที่ออกแบบเพื่อสร้างไฟล์ Microsoft Word DOCX (รูปแบบ OpenXML) ผ่านการสร้างเอกสารตามเท็มเพลต ไลบรารีฟรีนี้มาพร้อมกับ wrapper สำหรับหลายภาษาโปรแกรมรวมถึง C#, Java, Python, และ Progress 4GL พร้อมเครื่องมือบรรทัดคำสั่ง สิ่งที่ทำให้ DocxFactory โดดเด่นคือแนวทางที่ขับเคลื่อนด้วยเท็มเพลตซึ่งทำให้ไม่จำเป็นต้องให้ผู้พัฒนาต้องเข้าใจรูปแบบไฟล์ OpenXML ที่ซับซ้อน ไลบรารีได้รวมการสนับสนุนฟีเจอร์การประมวลผลคำสำคัญหลายอย่าง เช่น การสร้างเอกสารตามเท็มเพลต, แทรก/ลบย่อหน้าหรือรูปภาพ, การจัดรูปแบบข้อความ, การทำงานกับตาราง, การรวมหรือแยกเซลล์, การจัดการรายการ, การสนับสนุนหลายภาษา, การสนับสนุนรหัสบาร์โค้ดอย่างกว้างขวาง, การสนับสนุนรูปแบบผลลัพธ์หลายรูปแบบ ฯลฯ

DocxFactory เป็นไลบรารี C/C++ ที่สมบูรณ์, ฟรี, ข้ามแพลตฟอร์ม (พร้อม wrapper หลายภาษา) ที่ทำให้การทำงานกับไฟล์ Microsoft Word .docx ง่ายขึ้น ไลบรารีทำงานข้ามแพลตฟอร์มและทำงานได้อย่างราบรื่นบนระบบปฏิบัติการหลัก (Windows, UNIX/Linux) — ให้ความยืดหยุ่นในการติดตั้งบนเซิร์ฟเวอร์, เดสก์ท็อป หรือระบบฝังตัว ไลบรารีนี้ใช้สัญญาอนุญาต Apache 2.0 ทำให้เป็นฟรีโดยสมบูรณ์สำหรับการใช้งานส่วนตัวและเชิงพาณิชย์โดยไม่มีข้อจำกัดฟีเจอร์หรือระยะเวลาการใช้งาน ไม่ว่าคุณจะสร้างระบบการรายงานขององค์กร, workflow เอกสารอัตโนมัติ, หรือแอปพลิเคชันรวมจดหมายอย่างง่าย DocxFactory จะให้เครื่องมือที่จำเป็นในการสร้างเอกสารระดับมืออาชีพอย่างมีประสิทธิภาพ

Previous Next

เริ่มต้นใช้งาน MiniDocx

วิธีที่แนะนำให้ติดตั้ง MiniDocx คือผ่าน GitHub โปรดใช้คำสั่งต่อไปนี้เพื่อการติดตั้งที่ราบรื่น

ติดตั้ง MiniDocx ผ่าน GitHub

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

สร้างเอกสาร Word Docx ด้วย C++

ปรัชญาหลักของ DocxFactory เน้นความเรียบง่าย แทนการสร้างเอกสารแบบโปรแกรมเมติกทีละส่วน คุณสร้างเท็มเพลตใน Microsoft Word — ไฟล์ DOCX ปกติกับ placeholder — แล้วผสานข้อมูลของคุณเข้าไป วิธีนี้ให้ข้อได้เปรียบหลายอย่าง เช่น การพัฒนาเร็วกว่า, การแก้ไข WYSIWYG, การพัฒนาเร็วกว่า ฯลฯ ตัวอย่างที่เป็นประโยชน์นี้แสดงวิธีการสร้างเอกสาร Word ใหม่จากเท็มเพลตโดยใช้ไลบรารี C++

วิธีสร้างเอกสาร Word ด้วยไลบรารี 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;
}

เพิ่มตารางในเอกสารผ่านไลบรารี 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;
}

แทรกรูปภาพและภาพประกอบในไฟล์ Word DOCX

ไลบรารี DocxFactory สามารถเติมข้อมูลแผนภูมิโดยไดนามิก ทำให้คุณสร้างการแสดงผลที่ขับเคลื่อนด้วยข้อมูลได้ แผนภูมิที่กำหนดในเท็มเพลตของคุณสามารถอัปเดตชุดข้อมูลแบบโปรแกรมเมติก ทำให้สามารถสร้างแดชบอร์ดผู้บริหารและรายงานเชิงวิเคราะห์ได้ ไลบรารียังรวมการสนับสนุนรายการเต็มของประเภทแผนภูกิกว่า 70 ประเภทที่มีใน Microsoft Word รวมถึงคอลัมน์, เส้น, พาย, แถบ, พื้นที่, กระจาย, หุ้น, พื้นผิว, ดอนัท, บับเบิล, เรดาร์ ฯลฯ ฟีเจอร์นี้ทำให้สามารถสร้างรายงานการเงินแบบไดนามิกพร้อมการแสดงผลข้อมูลแบบเรียลไทม์, เอกสารการวิเคราะห์สถิติ, แดชบอร์ดปัญญาประดิษฐ์ธุรกิจ, รายงานการวิจัยทางวิทยาศาสตร์, เอกสารการติดตามประสิทธิภาพ ฯลฯ

วิธีแทรกรูปภาพในเอกสาร Word ผ่านไลบรารี C++?

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

ส่วนของเอกสารและการจัดหน้า

ไลบรารีโอเพ่นซอร์สของ DocxFactory รักษาการจัดรูปแบบดั้งเดิมของ Word ขณะปรับสไตล์ภายในแอปพลิเคชัน C++ อย่างไดนามิก ไลบรารีรวมการสนับสนุนคุณลักษณะการจัดรูปแบบต่างๆ เช่น สไตล์ฟอนต์, ขนาด, สี, การจัดแนวและช่องว่างของย่อหน้า, ตารางที่กำหนดขอบเอง, ส่วนหัวและส่วนท้าย, หมายเลขหน้าและการแบ่งส่วน, สไตล์และธีมที่กำหนดเอง ฯลฯ เอกสารที่สร้างขึ้นจะคงการจัดรูปแบบทั้งหมดจากเท็มเพลต เพื่อให้แบรนด์สอดคล้องและดูเป็นมืออาชีพ ตัวอย่างโค้ดต่อไปนี้แสดงวิธีที่นักพัฒนาสามารถใช้การจัดรูปแบบตามเงื่อนไขโดยอิงจากข้อมูลในแอป C++

วิธีทำงานกับหลายส่วนของเอกสาร Word ผ่านไลบรารี C++?


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

 ไทย