สร้างเอกสาร Word ใน C++

Aspose.Words เป็นคอลเล็กชัน API ที่มีคุณสมบัติหลากหลายซึ่งช่วยให้คุณสร้าง แก้ไข และแปลงเอกสาร MS Word ได้ด้วยโปรแกรม มีคุณสมบัติพื้นฐานและขั้นสูงที่หลากหลายสำหรับการจัดการเอกสารการประมวลผลคำ ในบทความนี้ คุณจะได้เรียนรู้วิธีใช้ Aspose.Words for C++ และสร้างเอกสาร MS Word ตั้งแต่เริ่มต้นโดยใช้ C++ คำแนะนำทีละขั้นตอนและตัวอย่างโค้ดจะช่วยให้คุณทราบวิธีแทรกข้อความ รูปภาพ ตาราง รายการ และองค์ประกอบอื่นๆ ในเอกสาร Word

C ++ API เพื่อสร้างเอกสาร MS Word

Aspose.Words for C++ ให้คุณสร้างและจัดการเอกสารประมวลผลคำภายในแอปพลิเคชัน C++ โดยไม่ต้องใช้ MS Word คุณสามารถ ดาวน์โหลด API หรือติดตั้งภายในแอปพลิเคชัน C++ โดยใช้ NuGet ด้วยคำสั่งต่อไปนี้

PM> Install-Package Aspose.Words.Cpp

สร้างเอกสาร MS Word โดยใช้ C++

ก่อนอื่นมาสร้างเอกสาร Word อย่างง่ายแล้วบันทึกเป็นไฟล์ .doc หรือ .docx สำหรับสิ่งนี้ คุณต้องทำตามขั้นตอนด้านล่าง:

  • สร้างเอกสาร Word เปล่าโดยใช้คลาส Document
  • สร้างวัตถุของคลาส DocumentBuilder เพื่อเพิ่มเนื้อหาลงในเอกสาร
  • เพิ่มข้อความโดยใช้เมธอด DocumentBuilder->Writeln()
  • บันทึกเอกสารเป็นไฟล์ .doc หรือ .docx โดยใช้วิธี Document->Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างเอกสาร Word DOCX โดยใช้ C++

// เริ่มต้นเอกสาร
System::SharedPtr<Document> doc = System::MakeObject<Document>();
// ใช้ตัวสร้างเอกสารเพื่อเพิ่มเนื้อหาลงในเอกสาร
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// เพิ่มข้อความ
builder->Writeln(u"Hello World!"); 
// บันทึกเอกสารลงดิสก์
doc->Save(u"document.docx");

แก้ไขหรืออัปเดต Word DOC/DOCX ที่มีอยู่โดยใช้ C++

คุณยังสามารถแก้ไขเอกสาร Word ที่มีอยู่โดยใช้ Aspose.Words for C++ สำหรับสิ่งนี้ API ใช้ Document Object Model (DOM) สำหรับการแสดงเอกสารในหน่วยความจำ DOM ช่วยให้คุณเข้าถึงองค์ประกอบของเอกสาร Word เช่น ส่วนหัว/ส่วนท้าย ย่อหน้า ตาราง และอื่นๆ อ่านเพิ่มเติมเกี่ยวกับ DOM ที่นี่

สำหรับการอัปเดตเอกสาร Word เพียงโหลดโดยใช้คลาส Document และประมวลผลตามต้องการ ต่อไปนี้เป็นขั้นตอนในการแก้ไขและอัปเดตเอกสาร Word ที่มีอยู่

  • โหลดเอกสาร Word โดยใช้คลาส Document
  • สร้างวัตถุของคลาส DocumentBuilder เพื่อเข้าถึงเนื้อหา
  • เข้าถึงย่อหน้าที่ต้องการ (หรือองค์ประกอบอื่นๆ) และอัปเดตเนื้อหา
  • บันทึกเอกสารที่อัปเดตโดยใช้เมธอด Document->Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีอัปเดตข้อความของย่อหน้าในเอกสาร Word โดยใช้ C++

// เริ่มต้นเอกสาร
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"document.docx");
// ใช้ตัวสร้างเอกสารเพื่อเพิ่มเนื้อหาลงในเอกสาร
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// รับส่วน
auto section = doc->get_Sections()->idx_get(0);
// รับร่างกาย
auto body = section->get_Body();
// รับวรรคแรก
auto para = body->get_FirstParagraph();
// ปรับปรุงข้อความ
auto run = para->get_Runs()->idx_get(0);
run->set_Text(u"This is the updated text."); 
// บันทึกเอกสารลงดิสก์
doc->Save(u"updated_document.docx");

แทรกรูปภาพในเอกสาร Word โดยใช้ C++

ต่อไปนี้เป็นขั้นตอนในการแทรกรูปภาพภายในเอกสาร MS Word โดยใช้ C++

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแทรกรูปภาพลงในเอกสาร Word โดยใช้ C++

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc); 
// เพิ่มโลโก้ที่ด้านบนซ้ายของหน้า ภาพจะอยู่หน้าข้อความอื่นทั้งหมด
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");

แทรกตารางในเอกสาร Word โดยใช้ C++

ตารางเป็นองค์ประกอบที่สำคัญของเอกสาร Word เพื่อเก็บข้อมูลในรูปแบบของแถวและคอลัมน์ หากต้องการสร้างตารางภายในเอกสาร Word ให้ทำตามขั้นตอนด้านล่าง

  • สร้างเอกสาร Word ใหม่โดยใช้คลาส Document
  • สร้างวัตถุของคลาส Table
  • แทรกตารางลงในเอกสารโดยใช้เมธอด Document->getFirstSection()->getBody()->AppendChild()
  • สร้างแถวใหม่โดยใช้คลาส Row
  • แทรกแถวลงในตารางโดยใช้เมธอด Table->AppendChild(row)
  • สร้างและใหม่ Cell และแทรกข้อความเข้าไปโดยใช้เมธอด Cell->getFirstParagraph()->AppendChild()
  • แทรกเซลล์ลงในแถวโดยใช้เมธอด Row->AppendChild()
  • ทำซ้ำขั้นตอนเพื่อเพิ่มหลายแถว
  • บันทึกเอกสารโดยใช้วิธี Document->Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแทรกตารางในเอกสาร Word โดยใช้ C++

System::SharedPtr<Document> doc = System::MakeObject<Document>(); 
System::SharedPtr<Table> table = System::MakeObject<Table>(doc);
// เพิ่มตารางลงในเอกสาร
doc->get_FirstSection()->get_Body()->AppendChild(table); 
System::SharedPtr<Row> row = System::MakeObject<Row>(doc);
row->get_RowFormat()->set_AllowBreakAcrossPages(true);
table->AppendChild(row);
// ตอนนี้เราสามารถใช้การตั้งค่าพอดีอัตโนมัติใดๆ
table->AutoFit(AutoFitBehavior::FixedColumnWidths);
// สร้างเซลล์และเพิ่มลงในแถว
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);
// เพิ่มย่อหน้าลงในเซลล์และเรียกใช้ใหม่ด้วยข้อความบางส่วน
cell->AppendChild(System::MakeObject<Paragraph>(doc));
cell->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 1 Text"));
// เพิ่มเซลล์ลงในแถว
row->AppendChild(cell);
// จากนั้นเราจะทำซ้ำขั้นตอนสำหรับเซลล์และแถวอื่นๆ ในตาราง
// นอกจากนี้ เรายังสามารถเร่งความเร็วด้วยการโคลนเซลล์และแถวที่มีอยู่
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"));
// บันทึกเอกสารลงดิสก์
doc->Save(u"document_with_table.docx");

เพิ่มรายการในเอกสาร Word โดยใช้ C ++

สุดท้าย แต่ไม่ท้ายสุด การสร้างรายการในเอกสาร Word ต่อไปนี้เป็นขั้นตอนในการสร้างรายการหัวข้อย่อย

  • สร้างเอกสาร Word ใหม่หรือโหลดเอกสารที่มีอยู่โดยใช้คลาส Document
  • กำหนดวัตถุ DocumentBuilder ใหม่และเริ่มต้นด้วยวัตถุเอกสาร
  • สร้างรายการโดยใช้เมธอด DocumentBuilder->getListFormat()->setList(Document->getLists()->Add(ListTemplate::NumberArabicDot))
  • เติมรายการและตั้งค่าระดับรายการ
  • บันทึกเอกสารเป็นไฟล์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างรายการในเอกสาร Word โดยใช้ C++

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// สร้างรายการลำดับเลขตามหนึ่งในเทมเพลตรายการ Microsoft Word และ
// นำไปใช้กับย่อหน้าปัจจุบันในตัวสร้างเอกสาร
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::NumberArabicDot));
// รายการนี้มีทั้งหมด 9 ระดับ มาลองทั้งหมดกันเถอะ
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// สร้างรายการสัญลักษณ์แสดงหัวข้อย่อยตามเทมเพลตรายการ Microsoft Word แบบใดแบบหนึ่ง
// and นำไปใช้กับย่อหน้าปัจจุบันในตัวสร้างเอกสาร
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::BulletDiamonds));
// รายการนี้มีทั้งหมด 9 ระดับ มาลองทั้งหมดกันเถอะ
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// นี่เป็นวิธีหยุดการจัดรูปแบบรายการ 
builder->get_ListFormat()->set_List(nullptr); 
// บันทึกเอกสารลงดิสก์
builder->get_Document()->Save(u"document_with_list.docx");

บทสรุป

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

ดูสิ่งนี้ด้วย