In this topic, we will learn how to create DOCX in C++. Word documents are created programmatically especially in C++ and used many applications to achieve automation like utility bill generation. You can create DOCX on the fly in C++ using simple API interface.
Steps to Create DOCX in C++
- Include Aspose.Words.Cpp using NuGet package Manager
- Add reference to Aspose::Words and Aspose::Words::Saving and System::Drawing namespaces
- Create instance of Document Class to add a blank Word document
- Create DocumentBuilder Class instance to process the Word Document
- Add text in document along with formatting
- Save the Word document with custom formatting in DOCX format using Save method
In the following example we have shown, how you can create word document in C++ by adding text and setting its formatting. You will also see, how you can hyperlink the text in your document as well.
Code to Create DOCX in C++
#include <Aspose.Words.Cpp/Document.h> | |
#include <Aspose.Words.Cpp/DocumentBuilder.h> | |
#include <Aspose.Words.Cpp/Saving/DocSaveOptions.h> | |
#include <Aspose.Words.Cpp/Saving/SaveOutputParameters.h> | |
#include <Aspose.Words.Cpp/Font.h> | |
#include <Aspose.Words.Cpp/Border.h> | |
#include <Aspose.Words.Cpp/License.h> | |
#include <Aspose.Words.Cpp/Saving/CompressionLevel.h> | |
#include <Aspose.Words.Cpp/Saving/OoxmlCompliance.h> | |
#include <Aspose.Words.Cpp/Saving/OoxmlSaveOptions.h> | |
#include <system/io/file.h> | |
#include <drawing/color.h> | |
using System::ArrayPtr; | |
using System::MakeArray; | |
using System::MakeObject; | |
using System::SharedPtr; | |
using System::String; | |
using namespace Aspose::Words; | |
using namespace Aspose::Words::Saving; | |
using namespace System::Drawing; | |
class CreatingWordDocumentinCPP | |
{ | |
public: | |
void CreateWordDocumentinCPP() | |
{ | |
// Access liense file and set for API | |
System::String WordsLicenseFileName = u"Aspose.Total.NET.lic"; | |
SharedPtr<License> wordsLic = System::MakeObject<License>(); | |
wordsLic->SetLicense(WordsLicenseFileName); | |
// Create Document Class instance to add a blank Word document | |
SharedPtr<Document> WordDocUsingCPP = MakeObject<Document>(); | |
// Create instance of DocumentBuilder class to process the Word Document | |
SharedPtr<DocumentBuilder> WordDocBuilder = MakeObject<DocumentBuilder>(WordDocUsingCPP); | |
// Insert a string surrounded by a border | |
WordDocBuilder->get_Font()->get_Border()->set_Color(Color::get_Green()); | |
WordDocBuilder->get_Font()->get_Border()->set_LineWidth(2.5); | |
WordDocBuilder->get_Font()->get_Border()->set_LineStyle(LineStyle::DashDotStroker); | |
WordDocBuilder->Write(u"Text with a green border around it."); | |
// Remove the font formatting and set it explicitly | |
WordDocBuilder->get_Font()->ClearFormatting(); | |
// Adding paragraph break for text | |
WordDocBuilder->InsertBreak(BreakType::ParagraphBreak); | |
WordDocBuilder->Write(u"For more info, please visit oue site"); | |
// Add a hyperlink and using custom formatting. The hyperlink shall | |
// be a clickable text which will redirect to URL set inside it | |
WordDocBuilder->get_Font()->set_Color(Color::get_Blue()); | |
WordDocBuilder->get_Font()->set_Underline(Underline::Single); | |
WordDocBuilder->InsertHyperlink(u"Aspose Knowledge Base", u"https://kb.aspose.com/", false); | |
WordDocBuilder->get_Font()->ClearFormatting(); | |
WordDocBuilder->Writeln(u"."); | |
SharedPtr <OoxmlSaveOptions> DocSaveOptions = MakeObject<OoxmlSaveOptions>(); | |
DocSaveOptions->set_Compliance(OoxmlCompliance::Iso29500_2008_Strict); | |
DocSaveOptions->set_SaveFormat(SaveFormat::Docx); | |
// Save the generated DOCX file using Save method | |
WordDocUsingCPP->Save(u"Word_Doc_Created_using_CPP.docx", DocSaveOptions); | |
} | |
}; |
In previous example, we looked in to How to Add Rows to Table in DOCX using C++. This topic focuses on generating a Word Document from scratch using C++.