Buat Dokumen Word di C++

Aspose.Words adalah kumpulan API kaya fitur yang memungkinkan Anda membuat, mengedit, dan mengonversi dokumen MS Word secara terprogram. Ini menyediakan berbagai fitur dasar serta lanjutan untuk memanipulasi dokumen pengolah kata. Pada artikel ini, Anda akan mempelajari cara menggunakan Aspose.Words for C++ dan membuat dokumen MS Word dari awal menggunakan C++. Panduan langkah demi langkah serta contoh kode akan memberi tahu Anda cara menyisipkan teks, gambar, tabel, daftar, dan elemen lain dalam dokumen Word.

C++ API untuk Membuat Dokumen MS Word

Aspose.Words for C++ memungkinkan Anda membuat dan memanipulasi dokumen pengolah kata dalam aplikasi C++ tanpa MS Word. Anda dapat mengunduh API atau menginstalnya di dalam aplikasi C++ Anda menggunakan NuGet dengan perintah berikut.

PM> Install-Package Aspose.Words.Cpp

Buat Dokumen MS Word menggunakan C++

Mari pertama-tama buat dokumen Word sederhana dan simpan sebagai file .doc atau .docx. Untuk ini, Anda perlu mengikuti langkah-langkah di bawah ini:

Contoh kode berikut menunjukkan cara membuat dokumen Word DOCX menggunakan C++.

// Inisialisasi Dokumen.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
// Gunakan pembuat dokumen untuk menambahkan konten ke dokumen.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Tambahkan teks
builder->Writeln(u"Hello World!"); 
// Simpan dokumen ke disk.
doc->Save(u"document.docx");

Edit atau Perbarui Word DOC/DOCX yang Ada menggunakan C++

Anda juga dapat mengedit dokumen Word yang ada menggunakan Aspose.Words for C++. Untuk ini, API menggunakan Document Object Model (DOM) untuk representasi dokumen dalam memori. DOM memungkinkan Anda mengakses elemen dokumen Word seperti header/footer, paragraf, tabel, dan lain-lain. Baca selengkapnya tentang DOM di sini.

Untuk memperbarui dokumen Word, cukup muat menggunakan kelas Document dan proses sesuai keinginan. Berikut adalah langkah-langkah untuk mengedit dan memperbarui dokumen Word yang sudah ada.

  • Muat dokumen Word menggunakan kelas Document.
  • Buat objek kelas DocumentBuilder untuk mengakses konten.
  • Akses paragraf yang diinginkan (atau elemen lainnya) dan perbarui konten.
  • Simpan dokumen yang diperbarui menggunakan metode Document->Save().

Contoh kode berikut menunjukkan cara memperbarui teks paragraf dalam dokumen Word menggunakan C++.

// Inisialisasi Dokumen.
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"document.docx");
// Gunakan pembuat dokumen untuk menambahkan konten ke dokumen.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Dapatkan bagian
auto section = doc->get_Sections()->idx_get(0);
// Dapatkan tubuh
auto body = section->get_Body();
// Dapatkan paragraf pertama
auto para = body->get_FirstParagraph();
// Perbarui teks
auto run = para->get_Runs()->idx_get(0);
run->set_Text(u"This is the updated text."); 
// Simpan dokumen ke disk.
doc->Save(u"updated_document.docx");

Sisipkan Gambar di Dokumen Word menggunakan C++

Berikut adalah langkah-langkah menyisipkan gambar ke dalam dokumen MS Word menggunakan C++.

Contoh kode berikut menunjukkan cara menyisipkan gambar ke dalam dokumen Word menggunakan C++.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc); 
// Tambahkan logo ke kiri atas halaman. Gambar ditempatkan di depan semua teks lainnya.
System::SharedPtr<Shape> shape = builder->InsertImage( u"Aspose Logo.png", RelativeHorizontalPosition::Page, 60.0, RelativeVerticalPosition::Page, 60.0, -1.0, -1.0, WrapType::None);
doc->Save(u"document_with_image.docx");

Sisipkan Tabel di Dokumen Word menggunakan C++

Tabel merupakan elemen penting dari dokumen Word untuk menyimpan data dalam bentuk baris dan kolom. Untuk membuat tabel di dalam dokumen Word, ikuti langkah-langkah di bawah ini.

  • Buat dokumen Word baru menggunakan kelas Document.
  • Buat objek kelas Tabel.
  • Sisipkan tabel ke dalam dokumen menggunakan metode Document->getFirstSection()->getBody()->AppendChild().
  • Buat baris baru menggunakan kelas Baris.
  • Sisipkan baris ke dalam tabel menggunakan metode Table->AppendChild(row).
  • Buat dan baru Cell dan sisipkan teks ke dalamnya menggunakan metode Cell->getFirstParagraph()->AppendChild().
  • Sisipkan sel ke dalam baris menggunakan metode Row->AppendChild().
  • Ulangi proses untuk menambahkan beberapa baris.
  • Simpan dokumen menggunakan metode Document->Save().

Contoh kode berikut menunjukkan cara menyisipkan tabel di dokumen Word menggunakan C++.

System::SharedPtr<Document> doc = System::MakeObject<Document>(); 
System::SharedPtr<Table> table = System::MakeObject<Table>(doc);
// Tambahkan tabel ke dokumen.
doc->get_FirstSection()->get_Body()->AppendChild(table); 
System::SharedPtr<Row> row = System::MakeObject<Row>(doc);
row->get_RowFormat()->set_AllowBreakAcrossPages(true);
table->AppendChild(row);
// Kami sekarang dapat menerapkan pengaturan penyesuaian otomatis apa pun.
table->AutoFit(AutoFitBehavior::FixedColumnWidths);
// Buat sel dan tambahkan ke baris
System::SharedPtr<Cell> cell = System::MakeObject<Cell>(doc);
cell->get_CellFormat()->get_Shading()->set_BackgroundPatternColor(System::Drawing::Color::get_LightBlue());
cell->get_CellFormat()->set_Width(80);
// Tambahkan paragraf ke sel serta proses baru dengan beberapa teks.
cell->AppendChild(System::MakeObject<Paragraph>(doc));
cell->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 1 Text"));
// Tambahkan sel ke baris.
row->AppendChild(cell);
// Kami kemudian akan mengulangi proses untuk sel dan baris lain dalam tabel.
// Kami juga dapat mempercepat dengan mengkloning sel dan baris yang ada.
row->AppendChild((System::StaticCast<Node>(cell))->Clone(false));
row->get_LastCell()->AppendChild(System::MakeObject<Paragraph>(doc));
row->get_LastCell()->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 2 Text"));
// Simpan dokumen ke disk.
doc->Save(u"document_with_table.docx");

Tambahkan Daftar di Dokumen Word menggunakan C++

Last but not least, membuat daftar di dokumen Word. Berikut langkah-langkah membuat bullet list.

  • Buat dokumen Word baru atau muat yang sudah ada menggunakan kelas Document.
  • Tentukan objek DocumentBuilder baru dan lakukan inisialisasi dengan objek Document.
  • Buat daftar menggunakan metode DocumentBuilder->getListFormat()->setList(Document->getLists()->Add(ListTemplate::NumberArabicDot)).
  • Isi daftar dan atur level daftar.
  • Simpan dokumen sebagai file.

Contoh kode berikut menunjukkan cara membuat daftar di dokumen Word menggunakan C++.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Buat daftar bernomor berdasarkan salah satu templat daftar Microsoft Word dan
// menerapkannya ke paragraf saat ini di pembuat dokumen.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::NumberArabicDot));
// Ada 9 level dalam daftar ini, mari kita coba semuanya.
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// Buat daftar berpoin berdasarkan salah satu templat daftar Microsoft Word
// and menerapkannya ke paragraf saat ini di pembuat dokumen.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::BulletDiamonds));
// Ada 9 level dalam daftar ini, mari kita coba semuanya.
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// Ini adalah cara untuk menghentikan pemformatan daftar. 
builder->get_ListFormat()->set_List(nullptr); 
// Simpan dokumen ke disk.
builder->get_Document()->Save(u"document_with_list.docx");

Kesimpulan

Pada artikel ini, Anda telah melihat cara membuat dokumen MS Word dari awal menggunakan C++. Selanjutnya, Anda telah mempelajari cara menyisipkan elemen seperti teks, gambar, tabel, dan daftar dalam dokumen Word baru atau yang sudah ada. Anda dapat mempelajari lebih lanjut tentang fitur lanjutan API menggunakan dokumentasi.

Lihat juga