Work with XPS Documents in Qt

Aspose.Page for C++ can be used for creating cross-platform applications to create, read, and convert XPS files to other formats using Qt. Qt applications can target a variety of desktop, mobile, web, and embedded system applications. This article shows how to integrate our C++ Page library to work with XPS files in Qt applications.

Using Aspose.Page for C++ within Qt

To use Aspose.Page for C++ in your Qt application, download the latest version of the API from the downloads section (for Windows Operating System). The API can be used with Qt using two options:

  • With Qt Creator
  • With Visual Studio

In this article, we show to integrate and use Aspose.Page for C++ within a Qt console application using Qt Creator.

Create Qt Console Application

  • Open Qt Creator and create a new Qt Console Application.


  • Select the QMake option from the Build System dropdown.


  • Select the appropriate kit and finish the wizard.

At this point, you should have a workable executing Qt Console Application that should compile without issues.

Integrate Aspose.Page for C++ API with Qt

  • Extract the Aspose.Page for C++ archive that you have downloaded earlier
  • Copy Aspose.Page.Cpp and CodePorting.Native.Cs2Cpp_vc14_20.4 folders from the extracted package of Aspose.Page for C++ into the root of the project. Your project should like as shown in the following image.


  • In order to add paths to lib and include folders, right-click on the project in LHS panel and select Add Library.


  • Select the External Library option and browse paths to include and lib folders one by one.


  • Once done, your .pro project file will contain the following entries:


  • Build the application and you are done with the integration.

Create XPS Document in Qt

Now that Aspose.Page for C++ has been integrated with Qt, we are ready to create an XPS document with some text and save it to disc. To do this:

  • Insert the following code in main function to generate an XPS document and save to disc
 QString text = "Hello World";

// Create new XPS Document

auto doc = System::MakeObject<XpsDocument>();

//Create a brush 

System::SharedPtr<XpsSolidColorBrush> textFill = doc->CreateSolidColorBrush(System::Drawing::Color::get_Black());

//Add glyph to the document

System::SharedPtr<XpsGlyphs> glyphs = doc->AddGlyphs(u"Arial", 12.0f, System::Drawing::FontStyle::Regular, 300.f, 450.f, text.toStdU16String().c_str());


// Save resultant XPS document

doc->Save(outDir() + u"AddText_out.xps");