Hello World VBNet - SDK sample


Related Articles Add comment Email article Print article

Hello World VBNet sample is a simple Windows console application that prints one page with the "novaPDF says Hello World from VB.Net" text to the novaPDF Printer. It demonstrates the basic use of the INovaPDFOptions interface with this type of code.

Note: To be able to use the samples you must install novaPDF SDK as samples work only with it. Download it here: nova PDF SDK.

The printing job is made using the package "System.Drawing.Printing" Basically the sample determines the active profile, makes a copy of it into a profile called "Test VBNet", sets the new profile as active, sets the subject of the generated PDF document, prints a page, and restores original printer settings. The location of the generated document depends on whatever the settings are for the current active profile.

Notice
Because of the specific exception based error handling in .NET, all calls to methods in the INovaPDFOptions interface must be nested within a try–catch block. Consider for example that we want to add a profile called "test", but the profile "test" already exists. Then the call pNova.AddProfile("test") will throw an "System.Runtime.InteropServices.COMException". with the ErrorCode property set to NV_PROFILE_EXISTS (0xD5DA0006).

Source Code

Imports System
Imports System.Drawing
Imports System.Drawing.Printing
Imports System.Windows.Forms
' the novapiLib package must be added as a COM reference
Imports novapiLib

Module Module1
  '    <summary>
  '    The    main entry point for the application.
  '    </summary>
  Const PRINTER_NAME As String = "novaPDF Pro v6"
  Const PROFILE_NAME As String = "Test VBNet"
  Const PROFILE_IS_PUBLIC As Integer = 0
  Const NOVAPDF_INFO_SUBJECT As String = "Document Subject"
  Const NV_PROFILE_EXISTS As Long = -707133434 


  Sub Main()
      Try
          ' create the NovaPdfOptions object
          Dim pNova As NovaPdfOptions
          pNova = New NovaPdfOptions
          ' initialize the NovaPdfOptions object
          ' if you have an application license for novaPDF SDK,
          ' pass both the registration name and the license key to the Initialize() function
          ' pNova.Initialize(PRINTER_NAME, "<registration name>", "<license key>");
          pNova.Initialize(PRINTER_NAME, "", "", "")
          ' get the active profile ...
          Dim activeProfile As String
           Dim nActivePublic As Integer
          pNova.GetActiveProfile(activeProfile, nActivePublic)
          Try
              ' and make    a copy of it
              pNova.CopyProfile(activeProfile, PROFILE_NAME, PROFILE_IS_PUBLIC)
          Catch e As System.Runtime.InteropServices.COMException
              ' ignore profile exists error
              If (NV_PROFILE_EXISTS = e.ErrorCode) Then
                  System.Console.WriteLine("Profile already exists")
              Else
                  ' more    serious    error, propagate it
                  Throw e
              End If
          End Try
          ' set the copy    profile    as active profile ...
          pNova.SetActiveProfile(PROFILE_NAME, PROFILE_IS_PUBLIC)
          ' and set some    options
          pNova.SetOptionString(NOVAPDF_INFO_SUBJECT, "VB.Net Hello document", PROFILE_NAME, PROFILE_IS_PUBLIC)
          ' print a test    page, using    the    previously set active profile settings
          Dim pd As PrintDocument = New PrintDocument
          pd.PrinterSettings.PrinterName = PRINTER_NAME
          AddHandler pd.PrintPage, AddressOf PrintPageFunction
          pd.Print()
          pNova.SetActiveProfile(activeProfile, nActivePublic)
          pNova.DeleteProfile(PROFILE_NAME, PROFILE_IS_PUBLIC)
      Catch e As System.Runtime.InteropServices.COMException
          MessageBox.Show(e.Message)
      Catch e As Exception
          MessageBox.Show(e.Message)
      End Try
  End Sub 

  ' and finally the function that actually prints the page
  Private Sub PrintPageFunction(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
      Dim str As String = "novaPDF says Hello World from VB.Net"
      Dim font As Font = New Font("Arial", 16)
      Dim brush As Brush = New SolidBrush(Color.Black)
      ev.Graphics.DrawString(Str, font, brush, 20.0!, 20.0!)
      ev.HasMorePages = False
  End Sub 

End Module

Related articles

Comments