Twórz dokumenty Worda w C++

Aspose.Words to bogata w funkcje kolekcja interfejsów API, która umożliwia programowe tworzenie, edytowanie i konwertowanie dokumentów MS Word. Zapewnia szeroką gamę podstawowych i zaawansowanych funkcji do manipulowania dokumentami edytora tekstu. W tym artykule dowiesz się, jak korzystać z Aspose.Words for C++ i tworzyć od podstaw dokumenty MS Word przy użyciu C++. Przewodnik krok po kroku oraz przykłady kodu pozwolą Ci dowiedzieć się, jak wstawiać tekst, obrazy, tabele, listy i inne elementy w dokumentach programu Word.

C++ API do tworzenia dokumentów MS Word

Aspose.Words for C++ pozwala generować i przetwarzać dokumenty tekstowe w aplikacjach C++ bez MS Word. Możesz pobrać interfejs API lub zainstalować go w swoich aplikacjach C++ za pomocą NuGet za pomocą następującego polecenia.

PM> Install-Package Aspose.Words.Cpp

Twórz dokumenty MS Word przy użyciu C++

Najpierw utwórzmy prosty dokument programu Word i zapiszmy go jako plik .doc lub .docx. W tym celu musisz wykonać poniższe kroki:

Poniższy przykładowy kod pokazuje, jak utworzyć dokument programu Word DOCX przy użyciu języka C++.

// Zainicjuj dokument.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
// Użyj narzędzia do tworzenia dokumentów, aby dodać treść do dokumentu.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Dodaj tekst
builder->Writeln(u"Hello World!"); 
// Zapisz dokument na dysku.
doc->Save(u"document.docx");

Edytuj lub aktualizuj istniejące Word DOC/DOCX za pomocą C++

Możesz także edytować istniejące dokumenty Worda za pomocą Aspose.Words for C++. W tym celu API używa Document Object Model (DOM) do reprezentacji dokumentu w pamięci. DOM umożliwia dostęp do elementów dokumentu Word, takich jak nagłówek/stopka, akapity, tabele itp. Przeczytaj więcej o DOM tutaj.

Aby zaktualizować dokument programu Word, po prostu załaduj go za pomocą klasy Document i przetwórz zgodnie z potrzebami. Poniżej przedstawiono kroki edytowania i aktualizowania istniejącego dokumentu programu Word.

  • Załaduj dokument programu Word, używając klasy Document.
  • Utwórz obiekt klasy DocumentBuilder, aby uzyskać dostęp do treści.
  • Uzyskaj dostęp do żądanego akapitu (lub dowolnego innego elementu) i zaktualizuj treść.
  • Zapisz zaktualizowany dokument metodą Document->Save().

Poniższy przykładowy kod pokazuje, jak zaktualizować tekst akapitu w dokumencie programu Word przy użyciu języka C++.

// Zainicjuj dokument.
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"document.docx");
// Użyj narzędzia do tworzenia dokumentów, aby dodać treść do dokumentu.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Pobierz sekcję
auto section = doc->get_Sections()->idx_get(0);
// Zdobądź ciało
auto body = section->get_Body();
// Pobierz pierwszy akapit
auto para = body->get_FirstParagraph();
// Zaktualizuj tekst
auto run = para->get_Runs()->idx_get(0);
run->set_Text(u"This is the updated text."); 
// Zapisz dokument na dysku.
doc->Save(u"updated_document.docx");

Wstaw obrazy do dokumentu programu Word za pomocą C++

Poniżej przedstawiono kroki, aby wstawić obraz w dokumentach MS Word przy użyciu C++.

Poniższy przykładowy kod pokazuje, jak wstawić obraz do dokumentu programu Word przy użyciu języka C++.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc); 
// Dodaj logo w lewym górnym rogu strony. Obraz jest umieszczany przed wszystkimi pozostałymi tekstami.
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");

Wstaw tabelę do dokumentów programu Word przy użyciu C++

Tabela jest ważnym elementem dokumentów Worda do przechowywania danych w postaci wierszy i kolumn. Aby wygenerować tabelę w dokumentach programu Word, wykonaj poniższe kroki.

  • Utwórz nowy dokument programu Word, używając klasy Document.
  • Utwórz obiekt klasy Tabela.
  • Wstaw tabelę do dokumentu za pomocą metody Document->getFirstSection()->getBody()->AppendChild().
  • Utwórz nowy wiersz, używając klasy Row.
  • Wstaw wiersz do tabeli za pomocą metody Table->AppendChild(row).
  • Utwórz i nową Komórkę i wstaw do niej tekst za pomocą metody Komórka->getFirstParagraph()->AppendChild().
  • Wstaw komórkę do wiersza za pomocą metody Row->AppendChild().
  • Powtórz proces dodawania wielu wierszy.
  • Zapisz dokument metodą Document->Save().

Poniższy przykładowy kod pokazuje, jak wstawić tabelę do dokumentu programu Word przy użyciu języka C++.

System::SharedPtr<Document> doc = System::MakeObject<Document>(); 
System::SharedPtr<Table> table = System::MakeObject<Table>(doc);
// Dodaj tabelę do dokumentu.
doc->get_FirstSection()->get_Body()->AppendChild(table); 
System::SharedPtr<Row> row = System::MakeObject<Row>(doc);
row->get_RowFormat()->set_AllowBreakAcrossPages(true);
table->AppendChild(row);
// Możemy teraz zastosować dowolne ustawienia automatycznego dopasowania.
table->AutoFit(AutoFitBehavior::FixedColumnWidths);
// Utwórz komórkę i dodaj ją do wiersza
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);
// Dodaj akapit do komórki, a także nowy przebieg z tekstem.
cell->AppendChild(System::MakeObject<Paragraph>(doc));
cell->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 1 Text"));
// Dodaj komórkę do wiersza.
row->AppendChild(cell);
// Następnie powtórzylibyśmy ten proces dla innych komórek i wierszy w tabeli.
// Możemy również przyspieszyć działanie, klonując istniejące komórki i wiersze.
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"));
// Zapisz dokument na dysku.
doc->Save(u"document_with_table.docx");

Dodaj listy w dokumentach programu Word przy użyciu języka C++

Na koniec tworzenie listy w dokumentach Worda. Poniżej przedstawiono kroki tworzenia listy wypunktowanej.

  • Utwórz nowy dokument programu Word lub załaduj istniejący, używając klasy Document.
  • Zdefiniuj nowy obiekt DocumentBuilder i zainicjuj go obiektem Document.
  • Utwórz listę za pomocą metody DocumentBuilder->getListFormat()->setList(Document->getLists()->Add(ListTemplate::NumberArabicDot)).
  • Wypełnij listę i ustaw poziom listy.
  • Zapisz dokument jako plik.

Poniższy przykładowy kod pokazuje, jak utworzyć listę w dokumencie programu Word przy użyciu języka C++.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Utwórz listę numerowaną na podstawie jednego z szablonów list Microsoft Word i
// zastosuj go do bieżącego akapitu w kreatorze dokumentów.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::NumberArabicDot));
// Na tej liście jest 9 poziomów, wypróbujmy je wszystkie.
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// Utwórz listę wypunktowaną na podstawie jednego z szablonów list programu Microsoft Word
// and zastosuj go do bieżącego akapitu w kreatorze dokumentów.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::BulletDiamonds));
// Na tej liście jest 9 poziomów, wypróbujmy je wszystkie.
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// Jest to sposób na zatrzymanie formatowania listy. 
builder->get_ListFormat()->set_List(nullptr); 
// Zapisz dokument na dysku.
builder->get_Document()->Save(u"document_with_list.docx");

Wniosek

W tym artykule widziałeś, jak tworzyć dokumenty MS Word od podstaw przy użyciu C++. Ponadto nauczyłeś się wstawiać elementy, takie jak tekst, obrazy, tabele i listy w nowych lub istniejących dokumentach programu Word. Możesz dowiedzieć się więcej o zaawansowanych funkcjach API, korzystając z dokumentacji.

Zobacz też