|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
OLE msWord Automation - How to open Print Dialog?
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) Code:
...
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? |
|
#2
|
||||
|
||||
|
Try something like this:
Code:
prntDlg := wrdApp.Dialogs.item(wdDialogFilePrint); printDlg.Show;
__________________
Up the Irons What Would Jimi Do? Smash amps. Burn guitar. Take the groupies home. "Death Before Dishonour, my Friends!!" - Bruce D ickinson, Iron Maiden Aug 20, 2005 @ OzzFest Down with Sharon Osbourne Puzzle of the Month solved by Keath and KevinADC, superior perl programmers of the month Looking for a perl job with kick-*** programmers in a well-known NASDAQ listed tech company with branches in the US and Europe? We're hiring. PM me for details. Requirements |
|
#3
|
|||
|
|||
|
In your answer:
Code:
prntDlg := wrdApp.Dialogs.item(wdDialogFilePrint); printDlg.Show; What is item refering to? (the Document?) And what type of variable is it? (Varient?) |
|
#4
|
||||
|
||||
|
item is an enumeration of the dialogs in the Word.Application object. See http://msdn.microsoft.com/library/d...alogmethods.asp for more.
|
![]() |
| Viewing: Dev Shed Forums > Programming Languages - More > Delphi Programming > OLE msWord Automation - How to open Print Dialog? |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|