PDFOne .NET
Powerful all-in-one PDF library for .NET
Compatibility
VS 2005/2008/2010/2012/2013

How To Rasterize A PDF Document In .NET

Learn to convert text, shapes, and images in a PDF page as a single graphic item using PDFOne .NET.
By V. Subhash

A page in a PDF document can contain any combination of text, images, shapes, and other page elements. Sometimes, it becomes necessary to convert all these page elements as a single image element, say, to prevent text from being copied word by word.

PDFOne .NET ProPlus edition can export PDF pages as images. It can also draw images on PDF pages. Combining these two capabilities, you can convert your existing PDF documents with heterogeneous content to PDF documents with just images. Such documents are called rasterized documents.

Here is the code to do it.

In VB In C#
Imports Gnostice.PDFOne
Imports System.Drawing.Imaging

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, _
                                  ByVal e As System.EventArgs) _
                    Handles Button1.Click

      'Create two PDFDocument instances for input and output documents
      Dim PDFDocument1 As New PDFDocument("your licence key")
      Dim PDFDocument2 As New PDFDocument("your licence key")

      Dim MetaFile1 As Metafile
      Dim PDFPage1, PDFPage2 As PDFPage
      Dim iCounter, iPageCount As Integer

      Try
        ' Load the input document and get its page count
        PDFDocument1.Load("input_doc.pdf")
        iPageCount = PDFDocument1.GetPageCount

        ' Iterate through all pages in the input document, export
        ' each page as a vector image, convert each vector image
        ' to a raster image, and add raster image to the output
        ' document.
        For iCounter = 1 To iPageCount

          ' Export current page as vector image
          MetaFile1 = PDFDocument1.GetPageMetafile(iCounter)

          ' Save meta file as a raster image
          MetaFile1.Save("image_of_page_#" & iCounter & ".jpg", _
                         ImageFormat.Jpeg)

          ' Release resources used by the vector image
          MetaFile1.Dispose()

          ' Access current page
          PDFPage1 = PDFDocument1.GetPage(iCounter)

          ' Create a new page with current page dimensions
          PDFPage2 = New PDFPage( _
                         PDFPage1.GetWidth(PDFMeasurementUnit.Inches), _
                         PDFPage1.GetHeight(PDFMeasurementUnit.Inches))
      
          ' Draw raster image on the new page
          PDFPage2.DrawImage("image_of_page_#" & iCounter & ".jpg", 0, 0)
      
          ' Add the new page to the output document
          PDFDocument2.AddPage(PDFPage2)
      
        Next
      
        ' Save rasterized output document
        PDFDocument2.Save("rasterized_output_doc.pdf")
    
    Catch ex As Exception
      MsgBox(ex.Message)
    Finally
      PDFDocument1.Close()
      PDFDocument1.Dispose()

      PDFDocument2.Close()
      PDFDocument2.Dispose()

      Me.Close()
    End Try

  End Sub
End Class

Update (April 17, 2013): Higher Resolutions

In Version 5, we introduced new overloads of the PDFDocument.GetPageMetafile method which allow you to specify a DPI value at which the contents of the PDF pages need to be exported. Using this option, you will be able to export PDF page content at high resolutions.

---o0O0o---

Our .NET Developer Tools
Gnostice Document Studio .NET

Multi-format document-processing component suite for .NET developers.

PDFOne .NET

A .NET PDF component suite to create, edit, view, print, reorganize, encrypt, annotate, and bookmark PDF documents in .NET applications.

Our Delphi/C++Builder developer tools
Gnostice Document Studio Delphi

Multi-format document-processing component suite for Delphi/C++Builder developers, covering both VCL and FireMonkey platforms.

eDocEngine VCL

A Delphi/C++Builder component suite for creating documents in over 20 formats and also export reports from popular Delphi reporting tools.

PDFtoolkit VCL

A Delphi/C++Builder component suite to edit, enhance, view, print, merge, split, encrypt, annotate, and bookmark PDF documents.

Our Java developer tools
Gnostice Document Studio Java

Multi-format document-processing component suite for Java developers.

PDFOne (for Java)

A Java PDF component suite to create, edit, view, print, reorganize, encrypt, annotate, bookmark PDF documents in Java applications.

Our Platform-Agnostic Cloud and On-Premises APIs
StarDocs

Cloud-hosted and On-Premises REST-based document-processing and document-viewing APIs

Privacy | Legal | Feedback | Newsletter | Blog | Resellers © 2002-2023 Gnostice Information Technologies Private Limited. All rights reserved.