Convert a Multi-page Document to an Image

Aspose.Words for C++ allows users to export multi-page documents to raster images. This can be useful for generating previews, archives, or visual representations of documents for non-editable use.

What Formats Support Multi-page Export?

Aspose.Words supports multi-page export to the following raster image formats:

  • Jpeg
  • Gif
  • Png
  • Bmp
  • Tiff
  • WebP

How to Export a Multi-page Document to an Image

The feature of exporting a multi-page document to an image is implemented using the MultiPageLayout class – you can specify how the pages should be organized when saving to an image:

  • SinglePage – save only the first of the specified pages
  • Grid – arrange the pages in a grid, left-to-right and top-to-bottom, while specifying the number of columns
  • Horizontal – arrange the pages horizontally side-by-side, left-to-right, in a single output
  • Vertical – arrange the pages vertically one below the other in a single output
  • TiffFrames – arrange each page as a separate frame in a multi-frame TIFF image, applies only to TIFF image formats

The following code example shows how to save a multi-page DOCX document as JPEG image with Horizontal layout:

You can also customize the output file page appearance – specify get_BackColor(), get_BorderColor(), and get_BorderWidth().

The following code example shows how to save a multi-page DOCX document as PNG image with Grid layout:


FAQ

  1. Q: How can I export each page of a document as a separate image file?
    A: Use the SinglePage layout together with the PageSet property of ImageSaveOptions. Set PageSet to the desired page index (zero‑based) and call Save inside a loop for all pages.

  2. Q: Can I create a multi‑frame TIFF where each page becomes a separate frame?
    A: Yes. Set options->set_PageLayout(Aspose::Words::Saving::MultiPageLayout::TiffFrames()); and use SaveFormat::Tiff. Each document page will be stored as an individual frame in the resulting TIFF file.

  3. Q: How do I control the resolution (DPI) of the exported images?
    A: Use options->set_Resolution(int dpi);. For example, options->set_Resolution(300); will generate 300 DPI images, which is useful for high‑quality prints.

  4. Q: Is it possible to export only a subset of pages, e.g., pages 2‑5?
    A: Yes. Set the PageSet property with a page range (page indexes are zero‑based): options->set_PageSet(System::MakeObject<Aspose::Words::Saving::PageSet>(System::MakeArray<System::SharedPtr<Aspose::Words::Saving::PageRange>>({System::MakeObject<Aspose::Words::Saving::PageRange>(1, 4)})));. The export will include only the specified pages using the chosen layout.

  5. Q: How can I change the background color of the exported image pages?
    A: Access the layout object via options->get_PageLayout() and call set_BackColor. Example: options->get_PageLayout()->set_BackColor(System::Drawing::Color::get_White());. This color fills the area around each page when using grid‑type layouts.