Once the base of the tutorial application is completed, you can extend it with PDF support using the following steps:
- First, you need to add reference to the ImageGear for .NET PDF Assembly.
- In the Solution Explorer, right-click on References, and click Add Reference.
- Choose the Browse tab and go to "ImageGear for .NET v21\Bin" directory.
- Select ImageGear21.Formats.Pdf.dll and click OK.
You should now have the ImageGear21.Formats.Pdf assembly listed under References in the Solution Explorer.
- Next, add the PDF import statement. Open the code for Form1.vb by right-clicking on the form and clicking View Code. At the top of the code, add the following statement:
VB .NET |
Copy Code |
Imports ImageGear.Formats.PDF |
- Add the following statements right before a call to InitializeComponent()in Form1 constructor:
VB .NET |
Copy Code |
ImGearFileFormats.Filters.Insert(0, ImGearPDF.CreatePDFFormat())
ImGearFileFormats.Filters.Insert(0, ImGearPDF.CreatePSFormat())
ImGearPDF.Initialize() |
This will add PDF and PS formats to the ImageGear formats list and initialize the PDF engine. ImGearPDF.Initialize() must be called once per process, unless you are using multi-threading.
- Now we should add a call to terminate the PDF engine. The best place to terminate the PDF engine would be the FormClosed() event handler. Add it using the Events tab in Form1 property window and paste the following code:
VB .NET |
Copy Code |
ImGearPDF.Terminate() |
This will terminate the PDF engine. Every ImGearPDF.Initialize() must have a corresponding ImGearPDF.Terminate() call.
- The next step is to open project properties and change the output path to "...\ ImageGear for .NET v21\Bin". (As an alternative, you can define a directory containing ImageGear binaries and PDF resources explicitly, as a parameter for ImGearPDF.CreatePDFFormat, ImGearPDF.CreatePSFormat and ImGearPDF.Initialize methods).
- Now, add the following code to the main form class to dispose the PDF page object:
VB .NET |
Copy Code |
Private Sub DisposePDFObjects()
If Not igPage Is Nothing AndAlso TypeOf igPage Is ImGearPDFPage Then
ImGearPageView1.Display = Nothing
Dim page As ImGearPDFPage
page = igPage
page.Dispose()
End If
End Sub |
- Add a call to DisposePDFObjects()to Form1_FormClosed event handler before terminating the PDF engine.
- Remove all "Not igPageDisplay.Page.DIB.IsEmpty" checks from all menu handlers, because PDF Page always has an empty DIB field. These checks will occur two times; disable both.
- In loadPageToolStripMenuItem_Click: remove "And Also Not igPage.DIB Is Nothing" check and add a call to DisposePDFObjects()right before the ImGearFileFormats.LoadPage call. It is required to clean up the unmanaged PDF page resources.
- And now you are ready to compile and run the finished application supporting PDF pages. If you want to deal with PDF documents, here is what needs to be added/changed:
- Replace
VB .NET |
Copy Code |
Private igPage As ImGearPage |
with
VB .NET |
Copy Code |
Private igPage As ImGearPage
Private igDocument As ImGearDocument |
- In loadPageToolStripMenuItem_Click find the following code:
VB .NET |
Copy Code |
// Load the image into the page
igPage = ImGearFileFormats.LoadPage(stream, 0) |
and replace it with:
VB .NET |
Copy Code |
igDocument = ImGearFileFormats.LoadDocument(stream, 0, 1)
igPage = igDocument.Pages.Item(0) |
It does the same thing, but using the ImGearDocument API.
- Note that ImGearPDFDocument must be disposed just like ImGearPDFPage. To do it, replace the implementation of DisposePDFObjects() method with the following:
VB .NET |
Copy Code |
Private Sub DisposePDFObjects()
If Not igDocument Is Nothing AndAlso TypeOf igDocument Is ImGearPDFDocument Then
ImGearPageView1.Display = Nothing
Dim doc As ImGearPDFDocument
doc = igDocument
doc.Dispose()
End If
End Sub |
- Now you are ready to compile and run the finished application working with PDF documents.