全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3061
推到 Plurk!
推到 Facebook!

如何使用ShellExecute列印doc並指定印表機?

答題得分者是:william
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-06 10:47:54 IP:211.21.xxx.xxx 未訂閱
各位前輩: 如何使用ShellExecute列印一Word檔,並且可指定印表機(不是使用預設的印表機)?敬請指教…感激不盡…
------
~小弟淺見,參考看看~
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-06 10:58:56 IP:147.8.xxx.xxx 未訂閱
You can't use ShellExecute in this case, there is no such option:    http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q210/5/65.ASP&NoWebContent=1 Better use OLE/COM.
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-06 11:10:15 IP:211.21.xxx.xxx 未訂閱
引言: You can't use ShellExecute in this case, there is no such option: http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q210/5/65.ASP&NoWebContent=1 Better use OLE/COM.
william版主: 小弟不才,看不太懂耶… 小弟有個請求: 您可否舉個例子(寫個Example)給小弟看… 假設在C:\Test.doc的檔案,要用【APF Fax Printer】這一台印表機印該如何用Delphi實現?敬請指教,感激不盡…
------
~小弟淺見,參考看看~
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-06 11:59:40 IP:147.8.xxx.xxx 未訂閱
var
    Word: TWordApplication;
    vFile: OleVariant;
begin
    vFile := 'c:\test.doc';
    Word := TWordApplication.Create(self);
    try
        Word.ActivePrinter := 'APF Fax Printer';
        Word.Documents.Open(vFile,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
            EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
            EmptyParam);
        Word.ActiveDocument.PrintOut(EmptyParam,EmptyParam,EmptyParam,
            EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
            EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
            EmptyParam,EmptyParam,EmptyParam);
        while Word.BackgroundPrintingStatus>0 do
            Application.ProcessMessages;
    finally
        Word.Quit;
        Word.Free;
    end;
end;
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-01-06 12:06:52 IP:211.23.xxx.xxx 未訂閱
試試這個 ShellExecute(0,'printto','C:\test.doc','\\freeprt\hp2200',nil,SW_SHOW) ; 當然, 你要先裝 WORD 才能執行列印, 其中 \\freeprt\hp2200 是我的網路列表機(非預設印表機). 你要改成你電腦上的設定才行. ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-01-06 13:36:57 IP:211.21.xxx.xxx 未訂閱
引言:
var
    Word: TWordApplication;
    vFile: OleVariant;
begin
    vFile := 'c:\test.doc';
    Word := TWordApplication.Create(self);
    try
        Word.ActivePrinter := 'APF Fax Printer';
        Word.Documents.Open(vFile,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
            EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
            EmptyParam);
        Word.ActiveDocument.PrintOut(EmptyParam,EmptyParam,EmptyParam,
            EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
            EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
            EmptyParam,EmptyParam,EmptyParam);
        while Word.BackgroundPrintingStatus>0 do
            Application.ProcessMessages;
    finally
        Word.Quit;
        Word.Free;
    end;
end;
william版主: 您的Example小弟試出來了,可以了,感謝版主的解答…阿里阿多
引言: 試試這個 ShellExecute(0,'printto','C:\test.doc','\\freeprt\hp2200',nil,SW_SHOW) ; 當然, 你要先裝 WORD 才能執行列印, 其中 \\freeprt\hp2200 是我的網路列表機(非預設印表機). 你要改成你電腦上的設定才行.
aquarius兄: 您的Example也可以了…感謝您的解答… 不過小弟在試的過程中發現,印表機都一定要是預設印表機,若小弟要使用非預設印表機列印,ShellExecute還是會指向預設印表機… 而使用第二個參數printto一直無法列印,改為print才可執行ShellExecute 小弟是這樣下:(但APF Fax Printer要設為預設印表機才可) ShellExecute(0, 'print', 'C:\test.doc', 'APF Fax Printer', nil, SW_HIDE);
------
~小弟淺見,參考看看~
系統時間:2024-11-23 11:15:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!