#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    May 2002
    Posts
    6
    Rep Power
    0

    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?

    Comments on this post

    • Gran Roguismo agrees
  2. #2
  3. Banned ;)
    Devshed Supreme Being (6500+ posts)

    Join Date
    Nov 2001
    Location
    Woodland Hills, Los Angeles County, California, USA
    Posts
    9,625
    Rep Power
    4247
    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

    "I wouldn't hire a butcher to fix my car. I also wouldn't hire a marketing firm to build my website." - Nilpo
  4. #3
  5. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    May 2002
    Posts
    6
    Rep Power
    0

    Question RE:RE:How to open Print Dialog?


    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?)
  6. #4
  7. Banned ;)
    Devshed Supreme Being (6500+ posts)

    Join Date
    Nov 2001
    Location
    Woodland Hills, Los Angeles County, California, USA
    Posts
    9,625
    Rep Power
    4247
    item is an enumeration of the dialogs in the Word.Application object. See http://msdn.microsoft.com/library/de...logmethods.asp for more.
    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

    "I wouldn't hire a butcher to fix my car. I also wouldn't hire a marketing firm to build my website." - Nilpo

IMN logo majestic logo threadwatch logo seochat tools logo