Export PDF Pages to Images
- 2 minutes to read
Use the PdfDocument.exportToImages() method to render PDF pages as DXImage objects. You can export specific pages and optionally specify ImageExportOptions to customize the export.
Call the exportToImages(int[] pageIndexes) method to export the specified pages to images using default export options.
The following code snippet exports all pages of a PDF document to DXImage objects and saves each page as a separate PNG image:
import com.devexpress.drawing.*;
import com.devexpress.docs.pdf.*;
import java.nio.channels.*;
import java.nio.file.*;
public class Main {
public static void main(String[] args) throws Exception {
try (PdfDocument pdfDocument =
new PdfDocument(FileChannel.open(Path.of("document.pdf")))) {
// Export all pages to images.
int pageCount = pdfDocument.getPages().size();
int[] pageIndexes = new int[pageCount];
for (int i = 0; i < pageCount; i++) {
pageIndexes[i] = i;
}
DXImage[] images = pdfDocument.exportToImages(pageIndexes);
try {
// Save each page as a PNG image.
for (int i = 0; i < images.length; i++) {
images[i].save(
"page-" + (i + 1) + ".png",
DXImageFormat.getPng());
}
} finally {
// Release image resources.
for (DXImage image : images) {
image.close();
}
}
}
}
}
Note
The exportToImages method returns an array of DXImage objects. Dispose of each image after use to release resources.
Export Pages to Images with Custom Settings
Call the exportToImages(ImageExportOptions options, int[] pageIndexes) method to specify image export settings.
The following code snippet exports the first two pages to SVG images using custom image export options:
import com.devexpress.drawing.*;
import com.devexpress.docs.pdf.*;
import java.nio.channels.*;
import java.nio.file.*;
public class Main {
public static void main(String[] args) throws Exception {
try (PdfDocument pdfDocument =
new PdfDocument(FileChannel.open(Path.of("document.pdf")))) {
// Configure image export settings.
ImageExportOptions options = new ImageExportOptions();
options.setImageExportType(ImageExportType.SVG);
options.setLargestEdgeLength(1000);
// Export pages 1 and 2 to images.
DXImage[] images = pdfDocument.exportToImages(
options,
new int[] { 0, 1 });
try {
// Save each exported page as an SVG file.
for (int i = 0; i < images.length; i++) {
images[i].save("page-" + (i + 1) + ".svg");
}
} finally {
// Release image resources.
for (DXImage image : images) {
image.close();
}
}
}
}
}