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

在Ole Excel如何選用不同印表機列印

答題得分者是:sryang
superforsin
一般會員


發表:6
回覆:8
積分:2
註冊:2015-05-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2015-09-05 08:09:45 IP:220.132.xxx.xxx 訂閱
如主題,在Ole Excel如何選用不同印表機列印
公司在作業上會有兩種報表產生,一種是點陣式(中二刀),一種是雷射印表機(A4)
不同的結果需要選用不同印表機列印,有找過相關資料,Ole似乎沒有可以設定印表機的語法

有何辦法可以依照不同格式去選用不同印表機列印?
sryang
尊榮會員


發表:38
回覆:737
積分:865
註冊:2002-06-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2015-09-05 13:21:10 IP:59.127.xxx.xxx 訂閱
請參考
https://msdn.microsoft.com/zh-tw/library/office/Ff838253.aspx
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
superforsin
一般會員


發表:6
回覆:8
積分:2
註冊:2015-05-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2015-09-05 13:48:50 IP:220.132.xxx.xxx 訂閱
抱歉,資質太淺,VBA語法我不會翻C++ Ole
能給點範例參考參考嗎...

使用者的電腦上自己可以搜尋得到所有已安裝的印表機名稱,唯獨不會怎麼更換印表機

===================引 用 sryang 文 章===================
請參考
https://msdn.microsoft.com/zh-tw/library/office/Ff838253.aspx
sryang
尊榮會員


發表:38
回覆:737
積分:865
註冊:2002-06-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2015-09-05 14:26:23 IP:59.127.xxx.xxx 訂閱
用 「Sheets.PrintOut C++」去 google,定可找到些線索
問題解決之後還請記得回來分享
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
superforsin
一般會員


發表:6
回覆:8
積分:2
註冊:2015-05-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2015-09-05 16:14:34 IP:220.132.xxx.xxx 訂閱

[code cpp]
//引入標頭檔
#include "Printers.hpp"

TPrinter *Printers = Printer();
AnsiString PrintName[100];

for(int i=0;i < Printers->Printers->Count; i )
{
if (i <= 9)
{
PrintName[i] = Printer()->Printers->Strings[i] " on Ne0" IntToStr(i) ":";
}
else if (i > 9)
{
PrintName[i] = Printer()->Printers->Strings[i] " on Ne" IntToStr(i) ":";
}
}

// 建立一個可見的 Excel 物件
Excel=CreateOleObject("Excel.Application");
Excel.OlePropertySet("Visible", true); // 設為 false 則不可見
//bIsCreated=false;

// 產生 workbooks 跟 workbook 物件.
Workbooks=Excel.OlePropertyGet("Workbooks");
Workbook=Workbooks.OleFunction("Add",6);

// 產生 worksheets 跟 worksheet 物件.
Worksheets=Workbook.OlePropertyGet("Worksheets");
Worksheet=Worksheets.OlePropertyGet("Item", 1);

Excel.OlePropertySet("ActivePrinter",PrintName[int].c_str()); //設定印表機
[/code]

Google大師幾乎找不到資料,我完全是土法煉鋼...
在C 搜到的Printer Name 是沒有阜號的,要自己加
上述是完全使用BCB的方法(方法一)。

方法二:(簡單說明,就不附上語法了)
在EXCEL 的 ActiveWorkBook 事件語法加上切換印表機的語法
在EXCEL 的 CloseWorkBook 事件語法加上切回印表機的語法
PS.以上VBA巨集安全性要更改才能使用
當然VBA的相關語法教容易找到
系統時間:2017-07-27 14:43:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!