Word OLE CSharp - SDK sample


Related Articles Add comment Email article Print article

The Word OLE CSharp sample is a simple Windows console application that converts a MS Word document (C:\Test.doc) to PDF using Word OLE automation. This can be a part of a larger application that works seamlessly with the novaPDF SDK development.

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.

Source code

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 v6";
   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);
     }
   }
}
}

Related articles

Comments