VB Converter - SDK sample

Download Sample
Download size: 39.5KB
[Format: ZIP]
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 VB Converter sample demonstrates how to convert an existing file by printing it to novaPDF Printer using the ShellExecute function. It also demonstrates how to set different options and manage profiles.

The same approach should be used if you print using a "Print()" method from another object (like an internet browser or a report control). Just replace the ShellExecute call with the call of your Print method.

When the application starts, it creates a few profiles and makes different settings in the profiles. Then it shows a dialog from where the user can select the active profile and change its settings using the controls from the dialog. After that a document can be selected from the harddisk and printed to novaPDF Printer using the ShellExecute function call.

When using this technique to convert a file to PDF, you have to take care of the fact that ShellExecute prints to the default printer. This function returns immediately and does not wait until the print is finished (it may return before the printing is actually started). Therefore you have to set the default printer to novaPDF Printer before calling ShellExecute (using the SetDefaultPrinter method), register FileSaved message (or any other novaPDF Printer message) to be sure that the print job was started. In this message handler restore the default printer (with the RestoreDefaultPrinter method). This way you made sure that the default printer was restored and your document is printed to novaPDF Printer.


Source Code Snippets

1. Declare INovaPdfOptions variable 

'create the NovaPdfOptions object
Public m_NovaOptions As New NovaPdfOptions 

2. Register novaPDF Printer messages 

Public wm_Nova_FileSaved As Long
Public wm_Nova_PrintError As Long 

Sub Main()
  ' Registering the messages send by the print in order to listen for them
  wm_Nova_FileSaved = RegisterWindowMessage(MSG_NOVAPDF2_FILESAVED)
  wm_Nova_PrintError = RegisterWindowMessage(MSG_NOVAPDF2_PRINTERROR)
  Form1.Show
End Sub 

' Sub that will handle the windows messages
Public Function VB_WindowProc(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  ' For the registered messages perform specific tasks
  If wMsg = wm_Nova_FileSaved Then
      OnNovaPDFFileSaved wParam, lParam
      Exit Function
  End If
  If wMsg = wm_Nova_PrintError Then
      OnNovaPDFPrintError wParam, lParam
      Exit Function
  End If 

  ' For other messages just send them via normal (old) handling process
  VB_WindowProc = CallWindowProc(oldHandler, hwnd, wMsg, wParam, lParam)
End Function 

3. Initialize INovaPdfOptions 

Private Sub Form_Load() 

  On Error GoTo ErrorHandler:
  Dim strProfile As String
  Dim strActiveProfile As String 

  ' 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
  ' m_NovaOptions.Initialize(PRINTER_NAME, "<registration name>", "<license key>");
  m_NovaOptions.Initialize PRINTER_NAME, "", "", "" 

  ' sets the value of the windows messages handler to VB_WindowProc and sets the old handler address of function in oldHandler
  oldHandler = SetWindowLongApi(Me.hwnd, GWL_WNDPROC, AddressOf VB_WindowProc) 

  cmbProfiles.Clear 

....
  Exit Sub
ErrorHandler:
  Debug.Print err.Number & ":" & err.Description
End Sub 

4. Set novaPDF Printer Options 

Private Sub AddSmallSize()
  On Error GoTo ErrHandler 

  m_NovaOptions.AddProfile2 SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC 

  ' Set some options to this profile 

  ' disable the "Save PDF file as" prompt
  m_NovaOptions.SetOptionLong2 NOVAPDF_SAVE_PROMPT, False, SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC
  ' set generated Pdf files destination folder  "c:\"
  m_NovaOptions.SetOptionString2 NOVAPDF_SAVE_FOLDER, "c:\", SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC
  ' set output file name
  m_NovaOptions.SetOptionString2 NOVAPDF_SAVE_FILE, "PDF Converter small size.pdf", SMALL_SIZE_PROFILE,
PROFILE_IS_PUBLIC

  ' if file exists in the destination folder, append a counter to the end of the file name
  m_NovaOptions.SetOptionLong2 NOVAPDF_SAVE_CONFLICT_STRATEGY, FILE_CONFLICT_STRATEGY_AUTONUMBER_NEW, SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC
  ' don't detect URLs
  m_NovaOptions.SetOptionLong2 NOVAPDF_URL_ANALIZE, False, SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC 

  ' Set image compression method to JPEG and quality to 75, possible values are from 10 to 100
  m_NovaOptions.SetOptionLong2 NOVAPDF_USE_IMAGE_COMPRESSION, True, SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC
  m_NovaOptions.SetOptionLong2 NOVAPDF_IMAGE_COMPRESSION_METHOD, COMPRESS_METHOD_JPEG, SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC
  m_NovaOptions.SetOptionLong2 NOVAPDF_IMAGE_COMPRESSION_LEVEL, 75, SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC 

  ' make sure text compression is enabled, and set compression level to 9  maximum   possible values are 1-9
   m_NovaOptions.SetOptionLong2 NOVAPDF_USE_TEXT_COMPRESSION, True, SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC
   m_NovaOptions.SetOptionLong2 NOVAPDF_TEXT_COMPRESSION_LEVEL, 9, SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC

  ' disable unused font embedding
   m_NovaOptions.SetOptionLong2 NOVAPDF_EMBED_ALL_FONTS, False, SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC
  Exit Sub
ErrHandler:
  If err.Number <> NV_PROFILE_EXISTS Then Debug.Print err.Number & ":" & err.Description 

End Sub 

5. Start a print job 

Private Sub btnStartPrinting_Click()
......
  m_NovaOptions.SetActiveProfile2 cmbProfiles.Text, PROFILE_IS_PUBLIC
  m_NovaOptions.SetDefaultPrinter
  Dim strToExecute As String
  Dim r As Long
  m_NovaOptions.RegisterEventWindow Me.hwnd
  m_NovaOptions.LicenseShellExecuteFile txtFileToConvert
  r = ShellExecute(Me.hwnd, "print", txtFileToConvert, "", "", SW_HIDE)
  btnStartPrinting.Enabled = True
  Exit Sub
.....
End Sub 

6. Restore default printer when printing finished 

Private Sub OnNovaPDFFileSaved(wParam As Long, lParam As Long)
  m_NovaOptions.UnRegisterEventWindow
  m_NovaOptions.RestoreDefaultPrinter
End Sub 

Private Sub OnNovaPDFPrintError(wParam As Long, lParam As Long)
  Select Case wParam
      Case ERROR_MSG_TEMP_FILE:
          MsgBox "Error saving temporary file on printer server", vbOKOnly, "novaPDF"
      Case ERROR_MSG_LIC_INFO:
          MsgBox "Error reading license information", vbOKOnly, "novaPDF"
      Case ERROR_MSG_SAVE_PDF:
          MsgBox "Error saving PDF file", vbOKOnly, "novaPDF"
      Case ERROR_MSG_JOB_CANCELED:
          MsgBox "Print job was canceled", vbOKOnly, "novaPDF"
  End Select
  m_NovaOptions.UnRegisterEventWindow
  m_NovaOptions.RestoreDefaultPrinter
End Sub

© 2002-2008 Softland. All Rights Reserved.
PDF Creator novaPDF
Create PDF for your paperless office
home Home   contact usContact us   partnershipsPartnerships   bookmarkBookmark   Site updated: 14-August-2008
Downloads Download Now

Download, install and use novaPDF. Latest version: 5.4 build 270

Download PDF creator
promotionsSpecial Offers

Current discounts:
- up to 25% for Desktop Editions
- up to 25% for Server Editions
- 20% Academic Discount
- up to 16% for Developer Tools

buyBuy Now
Professional edition $39.95
(Save $10)
Standard edition $29.95
(Save $10)
Lite edition $19.95
(Save $5)
Buy Now
newsLatest News

novaPDF 5.4 released
February 11, 2008

What’s new (read more):
 » Added Copy Text/Image Watermarks dialog
 » Added "Lookup Address" option when sending emails
 » Corrected rotated and vertical texts conversion
 » Corrected conversion from WordArt, MS Word backgrounds and MS Visio drawings
 » Uninstaller deletes now the driver files

sdkDeveloper Tools

novaPDF SDK is a software development toolkit that can be used by software developers and programmers to add the ability to create PDF files in their applications.
novaPDF OEM is a PDF solution that programmers can use to generate PDF files that will be post-processed by their applications. […]

Reviews & User QuotesPDF Creator Reviews
"novaPDF is a really neat tool. Basically, it’s a PDF printer driver that prints to a PDF file instead of paper.
See more reviews about nova PDF
[…] novaPDF is a great product that works without forcing the user to configure anything. The convenience alone is worth the money." […]
Jason Pullara, Editor
Currently supported languagesLanguages

News:
- Norwegian language added.

Help us translate novaPDF and we will give you licenses for novaPDF Professional and mention you on the Languages page. […]

awardsAwards

novaPDF received the Editor’s Pick from Soft32, a major download site:

PDF creator reviews

See the Awards page for more ratings.

NewsletterKnowledgebase articles

Latest articles on how to:
 » Create PDF files
 » Convert JPG to PDF
 » Convert Powerpoint to PDF
 » Convert Publisher to PDF
 » Convert web pages to PDF
Full article list in the knowledgebase.