Buy Now

novaPDF Professional
$62.44 $49.95

novaPDF Standard
$53.27 $39.95

novaPDF Lite
$24.94 $19.95

Awards & Reviews

  • 1_ico
  • 2_ico
  • 3_ico
  • 4_ico

Lockergnome feature

novaPDF is really neat

"novaPDF – Print To PDF Without Breaking The Bank. After downloading and installing the program (which takes all of one minute) you’re ready to print to a PDF. Any program that can print via the standard Windows printer interface can print to PDF (i.e. convert a file to PDF), including text, Word, Excel, […] , novaPDF will convert your files into PDF format without making your wallet cry."

Editor’s Review

This application is great

"[...] Pluses: novaPDF supports multiple profiles. This means that all your settings can be easily saved or loaded. Another great feature is the program’s ability to put bookmarks into the PDF document it creates. Drawbacks/flaws: [none] In conclusion: This application is great for generating PDF documents out of any type of printable data."

Indezine Review

Provides a good balance

"[...] novaPDF provides a good balance between price and performance -- it's a very usable option between free and highly priced PDF creators so that you can provide PDF output capabilities to a large number of users at a reasonable cost."

AC Review

Extremely easy to use

"[...]I highly recommend NovaPDF as a great and very simple way to create standard PDF documents that are fully compatible with Adobe Acrobat Reader. Nova PDF creator is an extremely easy to use and simple PDF creator"

Latest News

April 12, 2010

novaPDF 7.1 was released.

Changes in version 7.1:
  • Added visibility layers for watermarks
  • Added Document Creator option
  • Added Page Scaling options
  • Added option to remove PDF after emailing
  • Added Lithuanian language

You can download version 7 here: Download novaPDF 7.1

Stay Updated

To join, simply enter your email address below and click on Subscribe.

About Us

Softland, the company that develops novaPDF, achieved the Microsoft Certified Partner status with an ISV/Software Solutions Competency. Microsoft Certified Partner
Share
Add comment
Votes: 0
Comments: 0
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 MFC Converter sample demonstrates how to convert an existing file by printing it to novaPDF using the ShellExecute function. It also demonstrates how to set different options and manage profiles.

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 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 before calling ShellExecute (using the SetDefaultPrinter method), register StartDoc (or any other Windows 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
//declare an INovaPdfOptions member variable
private :
  INovaPdfOptions *m_novaOptions; 

2. Register novaPDF Printer messages
const UINT  wm_Nova_FileSaved = RegisterWindowMessageW( MSG_NOVAPDF2_FILESAVED );
const UINT  wm_Nova_PrintError = RegisterWindowMessageW( MSG_NOVAPDF2_PRINTERROR ); 

BEGIN_MESSAGE_MAP(CnovaPrintDlg, CDialog) 

  //... 

  ON_REGISTERED_MESSAGE(wm_Nova_FileSaved, OnNovaPDFFileSaved)
  ON_REGISTERED_MESSAGE(wm_Nova_PrintError, OnNovaPDFPrintError) 

  //... 

END_MESSAGE_MAP() 

3. Initialize INovaPdfOptions 

BOOL CnovaPrintDlg::OnInitDialog()
{ 

  //... 

  HRESULT hr = S_OK;
  m_novaOptions = 0; 

  //create an instance of INovaPdfOptions
  hr = CoCreateInstance(__uuidof(NovaPdfOptions), NULL, CLSCTX_INPROC_SERVER, __uuidof(INovaPdfOptions), (LPVOID*) &m_novaOptions);
  if (SUCCEEDED(hr)) {
      //initialize NovaPdfOptions and pass printer name
      // if you have an application license for novaPDF SDK,
      // pass both the registration name and the license key to the Initialize() function
      // hr = m_novaOptions->Initialize(PRINTER_NAME, L"<registration name>", L"<license key>");
      hr = m_novaOptions->Initialize(PRINTER_NAME, L"", L"", L"");
  }
  else {
      ::MessageBoxW(NULL, L"Failed to create novaPDF COM object", L"novaPDF", MB_OK);
  }
  //... 

} 

4. Release INovaPDFOptions
CnovaPrintDlg::~CnovaPrintDlg()
{
  //... 

  //delete profiles
  m_novaOptions->DeleteProfile(SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC); 

  // destroy our nova options object
  if (m_novaOptions) {
      m_novaOptions->Release();
  }
  // uninitialize COM libraries
  CoUninitialize(); 

  //... 

}
5. Set novaPDF Printer Options 

BOOL CnovaPrintDlg::OnInitDialog()
{ 

  //...
  //initialize m_novaOptions (see above)
  //... 

  // Add a profile called "Small size". If profile L"Small size" exists this will fail
  hr = m_novaOptions->AddProfile(SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC); 

  // Set some options to this profile 

  // disable the "Save PDF file as" prompt
  hr = m_novaOptions->SetOptionLong(NOVAPDF_SAVE_PROMPT, FALSE, SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC);
  // set generated Pdf files destination folder ("c:\")
  hr = m_novaOptions->SetOptionString(NOVAPDF_SAVE_FOLDER, L"", SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC);
  // set output file name
  hr = m_novaOptions->SetOptionString(NOVAPDF_SAVE_FILE, L"PDF Converter small size.pdf", SMALL_SIZE_PROFILE, PROFILE_IS_PUBLIC); 

  //Set other options
  //...
}

6. Start a print job
void CnovaPrintDlg::OnBnClickedOk()
{ 

  //... 

  HRESULT hr = S_OK; 

  // set the active profile to be used for printing
  hr = m_novaOptions->SetActiveProfile(m_strProfile, PROFILE_IS_PUBLIC); 

  // register our window to receive messages from the printer
  hr = m_novaOptions->RegisterEventWindow((LONG) GetSafeHwnd()); 

  // set novaPDF as default printer, so it will be used by ShellExecute
  hr = m_novaOptions->SetDefaultPrinter(); 

  // license file for ShellExecute
  hr = m_novaOptions- >LicenseShellExecuteFile(m_strFileToConvert.AllocSysString());

  // print the document
  m_bPrintJobPending = TRUE;
  HINSTANCE hExec = ShellExecute(GetSafeHwnd(), L"print", m_strFileToConvert, NULL, NULL, SW_HIDE);

  //...

}

7. Restore default printer when printing finished
LRESULT CnovaPrintDlg::OnNovaPDFFileSaved(WPARAM wParam, LPARAM lParam)
{
  // restore original default printer
  m_novaOptions->UnRegisterEventWindow();
  m_novaOptions->RestoreDefaultPrinter();
  m_bPrintJobPending = FALSE;
  return 0;
}

LRESULT CnovaPrintDlg::OnNovaPDFPrintError(WPARAM wParam, LPARAM lParam)
{
  switch(wParam){
      case ERROR_MSG_TEMP_FILE:
          MessageBox(L"Error saving temporary file on printer server", L"novaPDF", MB_OK);
          break;
      case ERROR_MSG_LIC_INFO:
          MessageBox(L"Error reading license information", L"novaPDF", MB_OK);
          break;
      case ERROR_MSG_SAVE_PDF:
          MessageBox(L"Error saving PDF file", L"novaPDF", MB_OK);
          break;
      case ERROR_MSG_JOB_CANCELED:
          MessageBox(L"Print job was canceled", L"novaPDF", MB_OK);
          break;
  }
  // restore original default printer
  m_novaOptions->UnRegisterEventWindow();
  m_novaOptions->RestoreDefaultPrinter();
  m_bPrintJobPending = FALSE;
  return 0;
}

Add comment
Name:
Email:
* Comment:
(Use BBcode - No HTML)


Others in this Category
document Java PDF writer - SDK sample
document Hello World VBNet - SDK sample
document Distributing novaPDF with 32bit applications that run on Windows x64
document [novaPDF SDK] - Are printer options related to each other? Do I need to set any option before I can set the Save Folder and Save folder options?
document How to install (or uninstall) novaPDF silently
» More articles
RSS

Legal Notices Terms of Use

Copyright Softland 2010. All rights reserved.