Aspose.Words — це багатофункціональна колекція API, яка дозволяє створювати, редагувати та конвертувати документи MS Word програмним шляхом. Він надає широкий спектр базових і розширених функцій для роботи з документами обробки текстів. У цій статті ви дізнаєтеся, як використовувати Aspose.Words for C++ і створювати документи MS Word з нуля за допомогою C++. Покроковий посібник, а також зразки коду допоможуть вам дізнатися, як вставляти текст, зображення, таблиці, списки та інші елементи в документи Word.
- C++ Word Processing API
- Створення документів MS Word за допомогою C++
- Редагувати або оновлювати наявний MS Word DOC/DOCX за допомогою C++
- Вставте зображення в документи Word за допомогою C++
- Вставте таблицю в документи Word за допомогою C++
- Додайте списки в документи Word за допомогою C++
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 використовує об’єктну модель документа (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 або завантажте наявний за допомогою класу Document.
- Створіть об’єкт DocumentBuilder та ініціалізуйте його об’єктом Document.
- Вставте зображення за допомогою методу DocumentBuilder->InsertImage(String fileName, RelativeHorizontalPosition horzPos, double left, RelativeVerticalPosition vertPos, double top, double width, double height, WrapType wrapType).
- Збережіть документ як файл Word.
У наведеному нижче прикладі коду показано, як вставити зображення в документ 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 та ініціалізуйте його об’єктом Document.
- Створіть список за допомогою методу 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 за допомогою документації.