Vytvářejte dokumenty Word v C++

Aspose.Words je sbírka rozhraní API bohatá na funkce, která vám umožní vytvářet, upravovat a převádět dokumenty MS Word programově. Poskytuje širokou škálu základních i pokročilých funkcí pro manipulaci s dokumenty pro zpracování textu. V tomto článku se dozvíte, jak používat Aspose.Words for C++ a vytvářet dokumenty MS Word od začátku pomocí C++. Průvodce krok za krokem a ukázky kódu vám dají vědět, jak vkládat text, obrázky, tabulky, seznamy a další prvky do dokumentů aplikace Word.

C++ API pro vytváření dokumentů MS Word

Aspose.Words for C++ umožňuje generovat a manipulovat s dokumenty pro zpracování textu v aplikacích C++ bez MS Word. Rozhraní API si můžete stáhnout nebo jej nainstalovat do svých aplikací C++ pomocí NuGet s následujícím příkazem.

PM> Install-Package Aspose.Words.Cpp

Vytvářejte dokumenty MS Word pomocí C++

Nejprve vytvoříme jednoduchý dokument aplikace Word a uložíme jej jako soubor .doc nebo .docx. K tomu je třeba postupovat podle následujících kroků:

Následující ukázka kódu ukazuje, jak vytvořit dokument Word DOCX pomocí C++.

// Inicializujte dokument.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
// K přidání obsahu do dokumentu použijte tvůrce dokumentů.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Přidej text
builder->Writeln(u"Hello World!"); 
// Uložte dokument na disk.
doc->Save(u"document.docx");

Upravte nebo aktualizujte existující Word DOC/DOCX pomocí C++

Můžete také upravovat stávající dokumenty aplikace Word pomocí Aspose.Words for C++. K tomu rozhraní API používá Document Object Model (DOM) pro reprezentaci dokumentu v paměti. DOM vám umožňuje přístup k prvkům dokumentu aplikace Word, jako je záhlaví/zápatí, odstavce, tabulky atd. Další informace o modelu DOM zde.

Chcete-li aktualizovat dokument aplikace Word, jednoduše jej načtěte pomocí třídy Document a zpracujte jej podle potřeby. Následují kroky k úpravě a aktualizaci existujícího dokumentu aplikace Word.

  • Načtěte dokument aplikace Word pomocí třídy Document.
  • Pro přístup k obsahu vytvořte objekt třídy DocumentBuilder.
  • Otevřete požadovaný odstavec (nebo jakýkoli jiný prvek) a aktualizujte obsah.
  • Uložte aktualizovaný dokument pomocí metody Document->Save().

Následující ukázka kódu ukazuje, jak aktualizovat text odstavce v dokumentu aplikace Word pomocí C++.

// Inicializujte dokument.
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"document.docx");
// K přidání obsahu do dokumentu použijte tvůrce dokumentů.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Získat sekci
auto section = doc->get_Sections()->idx_get(0);
// Získejte tělo
auto body = section->get_Body();
// Získejte první odstavec
auto para = body->get_FirstParagraph();
// Aktualizovat text
auto run = para->get_Runs()->idx_get(0);
run->set_Text(u"This is the updated text."); 
// Uložte dokument na disk.
doc->Save(u"updated_document.docx");

Vložte obrázky do dokumentu Word pomocí C++

Následují kroky pro vložení obrázku do dokumentů MS Word pomocí C++.

Následující ukázka kódu ukazuje, jak vložit obrázek do dokumentu aplikace Word pomocí C++.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc); 
// Přidejte logo do levého horního rohu stránky. Obrázek je umístěn před veškerým ostatním textem.
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");

Vložit tabulku do dokumentů aplikace Word pomocí C++

Tabulka je důležitým prvkem dokumentů aplikace Word pro uchování dat ve formě řádků a sloupců. Chcete-li vygenerovat tabulku v dokumentech aplikace Word, postupujte podle níže uvedených kroků.

  • Vytvořte nový dokument aplikace Word pomocí třídy Document.
  • Vytvořte objekt třídy Tabulka.
  • Tabulku vložte do dokumentu pomocí metody Document->getFirstSection()->getBody()->AppendChild().
  • Vytvořte nový řádek pomocí třídy Row.
  • Vložení řádku do tabulky pomocí metody Table->AppendChild(row).
  • Vytvořte a novou Cell a vložte do ní text pomocí metody Cell->getFirstParagraph()->AppendChild().
  • Vložte buňku do řádku pomocí metody Row->AppendChild().
  • Pro přidání více řádků postup opakujte.
  • Uložte dokument pomocí metody Document->Save().

Následující ukázka kódu ukazuje, jak vložit tabulku do dokumentu aplikace Word pomocí C++.

System::SharedPtr<Document> doc = System::MakeObject<Document>(); 
System::SharedPtr<Table> table = System::MakeObject<Table>(doc);
// Přidejte tabulku 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);
// Nyní můžeme použít libovolné nastavení automatického přizpůsobení.
table->AutoFit(AutoFitBehavior::FixedColumnWidths);
// Vytvořte buňku a přidejte ji do řádku
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);
// Přidejte do buňky odstavec a také nový běh s nějakým textem.
cell->AppendChild(System::MakeObject<Paragraph>(doc));
cell->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 1 Text"));
// Přidejte buňku do řádku.
row->AppendChild(cell);
// Poté bychom postup opakovali pro další buňky a řádky v tabulce.
// Věci můžeme urychlit také klonováním existujících buněk a řádků.
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"));
// Uložte dokument na disk.
doc->Save(u"document_with_table.docx");

Přidejte seznamy do dokumentů aplikace Word pomocí C++

V neposlední řadě vytvoření seznamu v dokumentech Wordu. Následují kroky k vytvoření seznamu odrážek.

  • Vytvořte nový dokument aplikace Word nebo načtěte existující pomocí třídy Document.
  • Definujte nový objekt DocumentBuilder a inicializujte jej pomocí objektu Document.
  • Vytvořte seznam pomocí metody DocumentBuilder->getListFormat()->setList(Document->getLists()->Add(ListTemplate::NumberArabicDot)).
  • Naplňte seznam a nastavte úroveň seznamu.
  • Uložte dokument jako soubor.

Následující ukázka kódu ukazuje, jak vytvořit seznam v dokumentu aplikace Word pomocí C++.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Vytvořte číslovaný seznam založený na jedné ze šablon seznamu Microsoft Word a
// použijte jej na aktuální odstavec v nástroji pro tvorbu dokumentů.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::NumberArabicDot));
// V tomto seznamu je 9 úrovní, vyzkoušejte je všechny.
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// Vytvořte seznam s odrážkami založený na jedné ze šablon seznamu Microsoft Word
// and použijte jej na aktuální odstavec v nástroji pro tvorbu dokumentů.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::BulletDiamonds));
// V tomto seznamu je 9 úrovní, vyzkoušejte je všechny.
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// Toto je způsob, jak zastavit formátování seznamu. 
builder->get_ListFormat()->set_List(nullptr); 
// Uložte dokument na disk.
builder->get_Document()->Save(u"document_with_list.docx");

Závěr

V tomto článku jste viděli, jak vytvořit dokumenty MS Word od začátku pomocí C++. Dále jste se naučili, jak vkládat prvky, jako je text, obrázky, tabulky a seznamy, do nových nebo stávajících dokumentů aplikace Word. Více o pokročilých funkcích API můžete prozkoumat pomocí dokumentace.

Viz také