Penciptaan Fail Word DOCX Dinamik melalui API C++ Percuma

Perpustakaan C++ DOCX Sumber Terbuka untuk Menjana Dokumen Word (Format .docx) secara langsung daripada kod C++. Ia membolehkan Penambahan Jadual & Imej, Menerapkan Format & Gaya pada Teks & lain-lain.

Apakah MiniDocx?

Mengendalikan dokumen Microsoft Word secara programatik telah lama menjadi tugas yang mencabar bagi pembangun C++, selalunya memerlukan kebergantungan yang besar atau pemasangan perisian proprietari. MiniDocx mengubah landskap ini dengan menawarkan penyelesaian ringan, moden, dan mesra pengguna untuk mencipta dokumen Word secara langsung daripada aplikasi C++. Perpustakaan sumber terbuka ini menghilangkan keperluan pemasangan Microsoft Office atau WPS Office sambil menyediakan fungsi yang kuat untuk manipulasi dokumen. MiniDocx dilengkapi dengan ciri penting yang merangkumi aspek asas penciptaan dokumen Word. Ia menyokong bahagian, perenggan, pemformatan teks kaya, jadual, gambar, gaya, dan senarai. Set ciri yang komprehensif ini membolehkan pembangun mencipta dokumen yang kompleks dan berformat baik yang memenuhi standard profesional.

MiniDocx ialah perpustakaan C++ moden, sumber terbuka yang membolehkan pembangun mencipta dan memanipulasi dokumen Microsoft Word .docx secara programatik — tanpa memerlukan pemasangan Microsoft Word atau WPS Office. Seni bina perpustakaan dibina berasaskan piawaian C++20 moden, memanfaatkan ciri bahasa terbaru untuk prestasi yang lebih baik, keselamatan jenis, dan kejelasan kod. Salah satu ciri menonjol MiniDocx ialah keserasian merentas platformnya. Perpustakaan ini berfungsi tanpa gangguan pada sistem operasi Windows, Linux, dan macOS, menjadikannya pilihan tepat bagi pembangun yang membina aplikasi yang perlu dijalankan pada pelbagai platform.

Previous Next

Mula Menggunakan MiniDocx

Cara yang disyorkan untuk memasang MiniDocx ialah melalui GitHub. Sila gunakan perintah berikut untuk pemasangan yang lancar.

Pasang MiniDocx melalui GitHub

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

Mencipta Dokumen Word Docx melalui C++

Perpustakaan MiniDocx sumber terbuka memudahkan pembangun perisian untuk mencipta dan memanipulasi dokumen Word Docx dalam aplikasi C++. Perpustakaan ini menyertakan sokongan untuk menerapkan pemformatan, menambah teks, jadual dan imej dalam dokumen Word. Cara paling mudah untuk memahami MiniDocx ialah melalui contoh praktikal. Mencipta dokumen Word asas dengan teks berformat menunjukkan reka bentuk API yang intuitif dan aliran kerja yang jelas.

Bagaimana untuk Mencipta Dokumen Word menggunakan Perpustakaan 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;
}

Tambah Jadual ke Dokumen melalui Perpustakaan C++

Jadual adalah penting untuk mempersembahkan data terstruktur dalam dokumen Word, dan MiniDocx menyediakan keupayaan penciptaan dan pemformatan jadual yang komprehensif. Jadual terdiri daripada baris dan sel, dengan setiap sel boleh mengandungi teks, pemformatan, dan bahkan kandungan bersarang. Mencipta jadual melibatkan beberapa langkah: menentukan struktur jadual, menambah baris, mengisi sel dengan kandungan, dan menerapkan pemformatan. Berikut ialah contoh terperinci yang menunjukkan bagaimana pembangun perisian boleh mencipta jadual berformat dalam aplikasi C++.

Bagaimana untuk Mencipta Jadual Berformat dalam Dokumen Word melalui Perpustakaan 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;
}

Sisip Imej dan Gambar ke Fail Word DOCX

Kandungan visual meningkatkan kebolehbacaan dan keterlibatan dokumen, menjadikan sokongan imej ciri kritikal bagi mana-mana perpustakaan penjanaan dokumen. MiniDocx membolehkan pembangun perisian menyisip imej ke dalam dokumen dengan kawalan ke atas saiz dan penempatan. Menambah imej ke dokumen memerlukan penentuan laluan fail imej dan secara pilihan menetapkan dimensi. Berikut ialah contoh yang menunjukkan cara menyisip imej ke dalam dokumen Word melalui perpustakaan C++.

Bagaimana untuk Menyisip Imej ke dalam Dokumen Word melalui perpustakaan 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;
}

Bahagian Dokumen dan Susun Atur Halaman

Bahagian menyediakan rangka kerja untuk mengawal sifat susun atur halaman dalam dokumen Word. Setiap bahagian boleh mempunyai tetapan halaman yang berbeza, termasuk saiz halaman, orientasi, margin, pengepala, dan peng kaki. Seni bina berasaskan bahagian ini membolehkan susun atur dokumen yang kompleks dengan konfigurasi halaman yang pelbagai. Kes penggunaan tipikal untuk pelbagai bahagian ialah mencipta dokumen dengan halaman potret dan landskap, seperti laporan yang mengandungi jadual lebar atau carta yang memerlukan orientasi landskap. Berikut ialah contoh yang menunjukkan cara bekerja dengan pelbagai bahagian dokumen Word dalam aplikasi C++.

Bagaimana untuk Bekerja dengan Pelbagai Bahagian Dokumen Word melalui Perpustakaan 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;
}

 Melayu