Aspose.Words är en funktionsrik samling av API:er som låter dig skapa, redigera och konvertera MS Word-dokument programmatiskt. Den tillhandahåller ett brett utbud av grundläggande såväl som avancerade funktioner för att manipulera ordbehandlingsdokument. I den här artikeln kommer du att lära dig hur du använder Aspose.Words for C++ och skapar MS Word-dokument från grunden med C++. Steg-för-steg-guiden samt kodexempel låter dig veta hur du infogar text, bilder, tabeller, listor och andra element i Word-dokument.
- C++ Word Processing API
- Skapa MS Word-dokument med C++
- Redigera eller uppdatera befintliga MS Word DOC/DOCX med C++
- Infoga bilder i Word-dokument med C++
- Infoga tabell i Word-dokument med C++
- Lägg till listor i Word-dokument med C++
C++ API för att skapa MS Word-dokument
Aspose.Words for C++ låter dig generera och manipulera ordbehandlingsdokument i C++-program utan MS Word. Du kan ladda ner API:t eller installera det i dina C++-applikationer med hjälp av NuGet med följande kommando.
PM> Install-Package Aspose.Words.Cpp
Skapa MS Word-dokument med C++
Låt oss först skapa ett enkelt Word-dokument och spara det som en .doc- eller .docx-fil. För detta måste du följa stegen nedan:
- Skapa ett tomt Word-dokument med klassen Dokument.
- Skapa ett objekt av klassen DocumentBuilder för att lägga till innehåll i dokumentet.
- Lägg till text med metoden DocumentBuilder->Writeln().
- Spara dokumentet som .doc- eller .docx-fil med metoden Document->Save().
Följande kodexempel visar hur man skapar ett Word DOCX-dokument med C++.
// Initiera ett dokument.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
// Använd en dokumentbyggare för att lägga till innehåll i dokumentet.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Lägg till text
builder->Writeln(u"Hello World!");
// Spara dokumentet på disk.
doc->Save(u"document.docx");
Redigera eller uppdatera befintligt Word DOC/DOCX med C++
Du kan också redigera befintliga Word-dokument med Aspose.Words för C++. För detta använder API:n Document Object Model (DOM) för in-memory representation av ett dokument. DOM låter dig komma åt elementen i ett Word-dokument, såsom sidhuvud/sidfot, stycken, tabeller, etc. Läs mer om DOM här.
För att uppdatera ett Word-dokument laddar du det helt enkelt med klassen Dokument och bearbetar det efter önskemål. Följande är stegen för att redigera och uppdatera ett befintligt Word-dokument.
- Ladda Word-dokumentet med klassen Dokument.
- Skapa ett objekt av klassen DocumentBuilder för att komma åt innehållet.
- Gå till önskat stycke (eller något annat element) och uppdatera innehållet.
- Spara det uppdaterade dokumentet med metoden Dokument->Spara().
Följande kodexempel visar hur du uppdaterar texten i ett stycke i ett Word-dokument med C++.
// Initiera ett dokument.
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"document.docx");
// Använd en dokumentbyggare för att lägga till innehåll i dokumentet.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Skaffa avsnitt
auto section = doc->get_Sections()->idx_get(0);
// Få kropp
auto body = section->get_Body();
// Få första stycket
auto para = body->get_FirstParagraph();
// Uppdatera text
auto run = para->get_Runs()->idx_get(0);
run->set_Text(u"This is the updated text.");
// Spara dokumentet på disk.
doc->Save(u"updated_document.docx");
Infoga bilder i Word-dokument med C++
Följande är stegen för att infoga en bild i MS Word-dokument med C++.
- Skapa ett nytt Word-dokument eller ladda ett befintligt med klassen Dokument.
- Skapa ett DocumentBuilder-objekt och initiera det med Document-objektet.
- Infoga bild med hjälp av metoden DocumentBuilder->InsertImage(String fileName, RelativeHorizontalPosition horzPos, dubbel vänster, RelativeVerticalPosition vertPos, dubbel topp, dubbel bredd, dubbel höjd, WrapType wrapType).
- Spara dokumentet som en Word-fil.
Följande kodexempel visar hur man infogar en bild i ett Word-dokument med C++.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Lägg till en logotyp längst upp till vänster på sidan. Bilden placeras framför all annan text.
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");
Infoga tabell i Word-dokument med C++
Tabellen är en viktig del av Word-dokumenten för att hålla data i form av rader och kolumner. Följ stegen nedan för att skapa en tabell i Word-dokumenten.
- Skapa ett nytt Word-dokument med klassen Document.
- Skapa ett objekt av klassen Table.
- Infoga tabell i dokumentet med metoden Document->getFirstSection()->getBody()->AppendChild().
- Skapa en ny rad med klassen Row.
- Infoga rad i tabellen med Table->AppendChild(row)-metoden.
- Skapa och ny Cell och infoga text i den med metoden Cell->getFirstParagraph()->AppendChild().
- Infoga cell i raden med metoden Row->AppendChild().
- Upprepa processen för att lägga till flera rader.
- Spara dokumentet med metoden Dokument->Spara().
Följande kodexempel visar hur man infogar en tabell i Word-dokument med C++.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<Table> table = System::MakeObject<Table>(doc);
// Lägg till tabellen i dokumentet.
doc->get_FirstSection()->get_Body()->AppendChild(table);
System::SharedPtr<Row> row = System::MakeObject<Row>(doc);
row->get_RowFormat()->set_AllowBreakAcrossPages(true);
table->AppendChild(row);
// Vi kan nu tillämpa alla inställningar för automatisk passning.
table->AutoFit(AutoFitBehavior::FixedColumnWidths);
// Skapa en cell och lägg till den i raden
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);
// Lägg till ett stycke i cellen samt en ny körning med lite text.
cell->AppendChild(System::MakeObject<Paragraph>(doc));
cell->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 1 Text"));
// Lägg till cellen i raden.
row->AppendChild(cell);
// Vi skulle sedan upprepa processen för de andra cellerna och raderna i tabellen.
// Vi kan också påskynda saker och ting genom att klona befintliga celler och rader.
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"));
// Spara dokumentet på disk.
doc->Save(u"document_with_table.docx");
Lägg till listor i Word-dokument med C++
Sist men inte minst, skapa en lista i Word-dokumenten. Följande är stegen för att skapa en punktlista.
- Skapa ett nytt Word-dokument eller ladda ett befintligt med klassen Dokument.
- Definiera ett nytt DocumentBuilder-objekt och initiera det med Document-objektet.
- Skapa lista med metoden DocumentBuilder->getListFormat()->setList(Document->getLists()->Add(ListMall::NumberArabicDot)).
- Fyll i listan och ställ in listnivån.
- Spara dokumentet som en fil.
Följande kodexempel visar hur man skapar en lista i ett Word-dokument med C++.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Skapa en numrerad lista baserad på en av Microsoft Word-listmallarna och
// tillämpa det på det aktuella stycket i dokumentbyggaren.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::NumberArabicDot));
// Det finns 9 nivåer i den här listan, låt oss prova dem alla.
for (int32_t i = 0; i < 9; i++)
{
builder->get_ListFormat()->set_ListLevelNumber(i);
builder->Writeln(System::String(u"Level ") + i);
}
// Skapa en punktlista baserad på en av Microsoft Word-listmallarna
// and tillämpa det på det aktuella stycket i dokumentbyggaren.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::BulletDiamonds));
// Det finns 9 nivåer i den här listan, låt oss prova dem alla.
for (int32_t i = 0; i < 9; i++)
{
builder->get_ListFormat()->set_ListLevelNumber(i);
builder->Writeln(System::String(u"Level ") + i);
}
// Detta är ett sätt att stoppa listformatering.
builder->get_ListFormat()->set_List(nullptr);
// Spara dokumentet på disk.
builder->get_Document()->Save(u"document_with_list.docx");
Slutsats
I den här artikeln har du sett hur du skapar MS Word-dokument från början med C++. Vidare har du lärt dig att infoga element som text, bilder, tabeller och listor i nya eller befintliga Word-dokument. Du kan utforska mer om de avancerade funktionerna i API:t med hjälp av dokumentationen.