The sample demonstrates how to export PDF pages as images by PdfDocumentViewer Component.
Download PDFViewer.pdf
using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using Spire.PdfViewer.Forms;
namespace Spire.PdfView.Demos.Export
{
class Program
{
private static PdfDocumentViewer viewer = null;
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
viewer = new PdfDocumentViewer();
viewer.LoadFromFile("PDFViewer.pdf");
//form and child components
Form mainForm = new Form();
mainForm.Text = "Spire.PdfView Demo - Export";
mainForm.Size = new System.Drawing.Size(800, 600);
mainForm.StartPosition = FormStartPosition.CenterScreen;
TableLayoutPanel table = new TableLayoutPanel();
table.ColumnCount = 3;
table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50));
table.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 20));
table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50));
table.RowCount = 2;
table.RowStyles.Add(new RowStyle(SizeType.Percent, 100));
table.RowStyles.Add(new RowStyle(SizeType.Absolute, 30));
table.Controls.Add(viewer, 0, 0);
table.SetColumnSpan(viewer, 3);
viewer.Dock = DockStyle.Fill;
//Export current page to one image
Button button = new Button();
button.Text = "Export to one image";
button.Size = new Size(180, 24);
button.TextAlign = ContentAlignment.MiddleCenter;
table.Controls.Add(button, 0, 1);
button.Dock = DockStyle.Right;
button.Click += ExportToOneImage;
//Export current pdf document to multiple images
button = new Button();
button.Text = "Export to multiple images";
button.Size = new Size(180, 24);
button.TextAlign = ContentAlignment.MiddleCenter;
table.Controls.Add(button, 2, 1);
button.Dock = DockStyle.Left;
button.Click += ExportToMultipleImages;
mainForm.Controls.Add(table);
table.Dock = DockStyle.Fill;
Application.Run(mainForm);
}
private static void ExportToOneImage(object sender, EventArgs e)
{
if (viewer.PageCount > 0)
{
SaveFileDialog dialog = new SaveFileDialog();
dialog.Filter = "PNG Format(*.png)|*.png";
if (dialog.ShowDialog() == DialogResult.OK)
{
int currentPage = viewer.CurrentPageNumber;
Bitmap image = viewer.SaveAsImage(currentPage - 1);
image.Save(dialog.FileName);
}
}
}
private static void ExportToMultipleImages(object sender, EventArgs e)
{
if (viewer.PageCount > 0)
{
FolderBrowserDialog dialog = new FolderBrowserDialog();
if (dialog.ShowDialog() == DialogResult.OK)
{
int currentPage = viewer.CurrentPageNumber;
Bitmap[] images = viewer.SaveAsImage(0, currentPage - 1);
for (int i = 0; i < images.Length; i++)
{
String fileName = Path.Combine(dialog.SelectedPath, String.Format("PDFViewer-{0}.png", i));
images[i].Save(fileName);
}
}
}
}
}
}
Imports System.Drawing
Imports System.IO
Imports System.Windows.Forms
Imports Spire.PdfViewer.Forms
Namespace Spire.PdfView.Demos.Export
Friend NotInheritable Class Program
Private Shared viewer As PdfDocumentViewer = Nothing
_
Shared Sub Main()
Application.EnableVisualStyles()
Application.SetCompatibleTextRenderingDefault(False)
viewer = New PdfDocumentViewer()
viewer.LoadFromFile("PDFViewer.pdf")
'form and child components
Dim mainForm As New Form()
mainForm.Text = "Spire.PdfView Demo - Export"
mainForm.Size = New System.Drawing.Size(800, 600)
mainForm.StartPosition = FormStartPosition.CenterScreen
Dim table As New TableLayoutPanel()
table.ColumnCount = 3
table.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 50))
table.ColumnStyles.Add(New ColumnStyle(SizeType.Absolute, 20))
table.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 50))
table.RowCount = 2
table.RowStyles.Add(New RowStyle(SizeType.Percent, 100))
table.RowStyles.Add(New RowStyle(SizeType.Absolute, 30))
table.Controls.Add(viewer, 0, 0)
table.SetColumnSpan(viewer, 3)
viewer.Dock = DockStyle.Fill
'Export current page to one image
Dim button As New Button()
button.Text = "Export to one image"
button.Size = New Size(180, 24)
button.TextAlign = ContentAlignment.MiddleCenter
table.Controls.Add(button, 0, 1)
button.Dock = DockStyle.Right
AddHandler button.Click, AddressOf ExportToOneImage
'Export current pdf document to multiple images
button = New Button()
button.Text = "Export to multiple images"
button.Size = New Size(180, 24)
button.TextAlign = ContentAlignment.MiddleCenter
table.Controls.Add(button, 2, 1)
button.Dock = DockStyle.Left
AddHandler button.Click, AddressOf ExportToMultipleImages
mainForm.Controls.Add(table)
table.Dock = DockStyle.Fill
Application.Run(mainForm)
End Sub
Private Shared Sub ExportToOneImage(ByVal sender As Object, ByVal e As EventArgs)
If viewer.PageCount > 0 Then
Dim dialog As New SaveFileDialog()
dialog.Filter = "PNG Format(*.png)|*.png"
If dialog.ShowDialog() = DialogResult.OK Then
Dim currentPage As Integer = viewer.CurrentPageNumber
Dim image As Bitmap = viewer.SaveAsImage(currentPage - 1)
image.Save(dialog.FileName)
End If
End If
End Sub
Private Shared Sub ExportToMultipleImages(ByVal sender As Object, ByVal e As EventArgs)
If viewer.PageCount > 0 Then
Dim dialog As New FolderBrowserDialog()
If dialog.ShowDialog() = DialogResult.OK Then
Dim currentPage As Integer = viewer.CurrentPageNumber
Dim images As Bitmap() = viewer.SaveAsImage(0, currentPage - 1)
For i As Integer = 0 To images.Length - 1
Dim fileName As [String] = Path.Combine(dialog.SelectedPath, [String].Format("PDFViewer-{0}.png", i))
images(i).Save(fileName)
Next
End If
End If
End Sub
End Class
End Namespace