Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

OLE msWord Automation - How to open Print Dialog?

Status
Not open for further replies.

grwd

Technical User
Jan 20, 2002
20
0
0
US
In my D5 Application - When I click on a button I can start an instance of MS Word, open a document populate it with text, save it, print it to the default printer and close it..

But, how might I allow the user to access the MSWord FilePrint Dialog to select the printer to print to prior to it printing? Thank you in advance.
Below is the code I am currently using: (uses : comobj)
...
if sendViaValue = 'Print' then // ***begin print section***
begin
wrdApp := CreateOleObject('Word.Application');
wrdDoc := wrdApp.Documents.Open('Letterhead.doc');
wrdDoc.Select;
wrdSelection := wrdApp.Selection;
wrdApp.Selection.GoTo(wdGotoLine,wdGoToLast);
// Enter the date
wrdSelection.ParagraphFormat.Alignment := wdAlignParagraphRight;
wrdSelection.InsertDateTime('dddd, MMMM yyyy',False);
InsertLines(1);
wrdSelection.ParagraphFormat.Alignment := wdAlignParagraphLeft;
// Enter Address
wrdSelection.TypeText(ccName);
wrdSelection.TypeParagraph;
wrdSelection.TypeText(ccStreet);
wrdSelection.TypeParagraph;
if ccSuburb <> '' then
begin
wrdSelection.TypeText(ccSuburb);
wrdSelection.TypeParagraph;
end;
wrdSelection.TypeText(ccCityStateZip);
if (ccCountry <> '') and (ccCountry <> 'United States') then
begin
wrdSelection.TypeParagraph;
wrdSelection.TypeText(ccCountry);
end;
InsertLines(2);

wrdSelection.TypeText('Dear ' + ccFirst + ',');
wrdSelection.TypeParagraph;

InsertLines(1);

wrdSelection.ParagraphFormat.Alignment := wdAlignParagraphJustify;
// Add Body Text
strToAdd := Clipboard.AsText;
wrdSelection.TypeText(strToAdd);
InsertLines(2);
wrdSelection.ParagraphFormat.Alignment := wdAlignParagraphLeft;
// Add salutation and signature
strToAdd := 'God loves you and we love you,' + Chr(13) +
'TGM Prayer Ministry';
wrdSelection.TypeText(strToAdd);
// Need to allow user to select Printer here.
wrdDoc.PrintOut;
wrdDoc.Saved := False;
wrdDoc.Close(False);
ShowMessage('Letter Sent to Printer');
end // *******end print section*******
...
Tim
tim@tgm.org

PS:
This msWord macro works inside of msWord:

Dialogs(wdDialogFilePrint).Show

Now how would I get this to work in my Delphi app?

Tim
tim@tgm.org
 
Try:

WrdApp.Dialogs(88).Show

I'm pretty sure that's an application level function. If that doesn't work try changing it to the document rather than the application.

Leslie
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top