using System;
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;
// the novapiLib package must be added as a COM reference
using novapiLib;
namespace Hello_World_CSharp
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
/// <summary>
/// The main entry point for the application.
/// </summary>
public static string PRINTER_NAME = "novaPDF Pro v5";
public static string NOVAPDF_INFO_SUBJECT = "Document Subject";
public static string PROFILE_NAME = "Test C# OLE";
public static int PROFILE_IS_PUBLIC = 0;
public static uint NV_PROFILE_EXISTS = 0xD5DA0006;
[STAThread]
static void Main(string[] args)
{
try
{
// create the NovaPdfOptions object
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>", "<application name>");
pNova.Initialize(PRINTER_NAME, "", "", "");
// get the active profile ...
string activeProfile;
int nActivePublic;
pNova.GetActiveProfile(out activeProfile, out nActivePublic);
try
{
// and make a copy of it
pNova.CopyProfile(activeProfile, PROFILE_NAME, PROFILE_IS_PUBLIC);
}
catch (System.Runtime.InteropServices.COMException e)
{
// ignore profile exists error
if (NV_PROFILE_EXISTS == e.ErrorCode)
{
System.Console.WriteLine("Profile Test C# OLE already exists");
}
else
{
// more serious error, propagate it
throw e;
}
}
// set the copy profile as active profile ...
pNova.SetActiveProfile(PROFILE_NAME, PROFILE_IS_PUBLIC);
// and set some options
pNova.SetOptionString(NOVAPDF_INFO_SUBJECT, "C# Hello document", PROFILE_NAME, PROFILE_IS_PUBLIC);
// set nova default printer
pNova.SetDefaultPrinter();
// initialize OLE usage in novaPDF
pNova.InitializeOLEUsage("Word.Application");
// create Word application object
Word._Application WordApp = new Word.Application();
WordApp.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;
// license OLE server in novaPDF
pNova.LicenseOLEServer();
// initializations
object objMissing = System.Reflection.Missing.Value;
object objTrue = true; object objFalse = false;
object strFile = @"C:\test.doc";
// create Word document object
Word._Document WordDoc = WordApp.Documents.Open(ref strFile, ref objFalse, ref objTrue,
ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing,
ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing,
ref objMissing);
// print document
WordApp.ActivePrinter = PRINTER_NAME;
WordDoc.PrintOutOld(ref objFalse, ref objFalse, ref objMissing, ref objMissing,
ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing, ref objMissing,
ref objFalse, ref objMissing, ref objMissing, ref objMissing);
// close Word objects
WordDoc.Close(ref objFalse, ref objMissing, ref objFalse);
WordApp.Quit(ref objFalse, ref objMissing, ref objFalse);
WordApp = null;
// restore active profile
pNova.SetActiveProfile(activeProfile, nActivePublic);
pNova.DeleteProfile(PROFILE_NAME, PROFILE_IS_PUBLIC);
// restore default printer
pNova.RestoreDefaultPrinter();
}
catch (System.Runtime.InteropServices.COMException e)
{
MessageBox.Show(e.Message);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
}
}