Click here to Skip to main content
Click here to Skip to main content

Printing Word Documents in C#

By , 15 Jul 2005
 

Introduction

I feel I need to share this pain. I have been struggling for days now to get something simple to work for me. That is to print out a Word document (RTF format) to a printer using Word. It also has to work with multiple versions of Word (so far 2000 and 2003). I thought I would share everything that I have learnt.

If you want this to work for multiple versions, install the earliest version of Word and Add Reference to its COM component and develop against these.

Next to the code...

The Code

// Create an Application object
Word.ApplicationClass ac = new Word.ApplicationClass();
Word.Application app = ac.Application;

// I'm setting all of the alerts to be off as I am trying to get
// this to print in the background
app.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;

// Open the document to print...
object filename = "myFile.rtf";
object missingValue = Type.Type.Missing;

// Using OpenOld so as to be compatible with other versions of Word
Word.Document document = app.Documents.OpenOld(ref filename,
ref missingValue, ref missingValue, 
ref missingValue, ref missingValue, ref missingValue, 
	ref missingValue, ref missingValue, ref missingValue, ref missingValue);

// Set the active printer
app.ActivePrinter = "My Printer Name";

object myTrue = true; // Print in background
object myFalse = false;

// Using PrintOutOld to be version independent
m_App.ActiveDocument.PrintOutOld(ref myTrue, 
ref myFalse, ref missingValue, ref missingValue, ref missingValue, 
	missingValue, ref missingValue, 
ref missingValue, ref missingValue, ref missingValue, ref myFalse, 
	ref missingValue, ref missingValue, ref m_MissingValue);

document.Close(ref missingValue, ref missingValue, ref missingValue);

// Make sure all of the documents are gone from the queue
while(m_App.BackgroundPrintingStatus > 0)
{
System.Threading.Thread.Sleep(250);
}

app.Quitref missingValue, ref missingValue, ref missingValue);

I do not claim that this is perfect, but it's as good as I can get. It works on my machine anyway.

History

  • 15th July, 2005: Initial post 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

tartanmonkey
Web Developer
United Kingdom United Kingdom
Member
No Biography provided

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
Questionsolution for printing of all files.membernsk_saravana7 Dec '11 - 2:01 
Questioncode to print xlsmembernsk_saravana6 Dec '11 - 1:16 
QuestionMy code in vb.netmembernsk_saravana5 Dec '11 - 21:23 
GeneralMy vote of 5membervickiD15 Sep '10 - 19:04 
GeneralPrinting Word Document as XPSmemberMember 248948422 Jan '09 - 23:24 
GeneralThermal PrintermemberNewbieWizDev5 Nov '08 - 5:21 
GeneralVery goog!memberJansen2084 Sep '08 - 22:23 
GeneralPrinting to PDFmembernano2k4 Jun '08 - 22:19 
GeneralRe: Printing to PDFmemberJoshDunke11 Jun '09 - 5:10 
GeneralRe: Printing to PDFmembernano2k11 Jun '09 - 5:16 
GeneralWord assemblymemberCobus C29 Mar '07 - 0:27 
GeneralRe: Word assemblymembervrumfundel29 Mar '07 - 23:03 
GeneralRe: Word assemblymemberCobus C30 Mar '07 - 1:19 
GeneralRe: Word assemblymemberap_wooka2 Apr '08 - 10:21 
GeneralCorrección del códigomemberkateerre7 Oct '05 - 0:09 
GeneralRe: Corrección del códigomemberStephengb11 Feb '06 - 13:18 
GeneralShort and goodmembersupergiovine24 Aug '05 - 2:03 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web03 | 2.6.130516.1 | Last Updated 15 Jul 2005
Article Copyright 2005 by tartanmonkey
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid