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

用TPrinter的canvas在 windows2008上出現"there is no default printer currently selected"

尚未結案
temp_register
一般會員


發表:1
回覆:5
積分:1
註冊:2007-04-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-11-01 18:10:30 IP:211.75.xxx.xxx 訂閱
小弟實在是沒辦法了只好上來求救,
我用BCB 6 和 BCB XE 都得到一樣的結果,

程式很單純, 只是用 TPrinter 來將一張指定的 jpg 檔案放到 canvas 上往指定的印表機印出,
在 windows 2003 以下的OS上運作都一切正常, 唯獨在 windows 2008 上永遠都只得到 exception:
"there is no default printer currently selected" 的 error message

偏偏網路上很多人都遇到相同的狀況, 卻沒有人有解, 希望這邊能有高手能幫幫忙, 拜託了!

( 我絕對有設定印表機, 以及 default printer..., 而且每台印表機的安全性都放到最低了,
也 activated 了 administrator 的權限...真是沒輒了)


[code cpp]
::String PrintJpgFile ()
{
TPrinter* Ptr = Printer();
TJPEGImage* jp = new TJPEGImage();
TRect rr;

try{
jp->LoadFromFile("c:\\test_file.jpg");

//程式執行到下面這一行發生例外!!!
Ptr->PrinterIndex = Ptr->Printers->IndexOf("HP LaserJet"); //這個印表機名字確定是存在的, 且有另外讓程式顯示真的可抓得到電腦中的所有三台的印表機名稱
//ps: 電腦中抓到這台印表機的 PrinterIndex 為 2,

rr = Rect(50,50,1000, 1000); //數字會變化, 但確定都在可行範圍內
Ptr->BeginDoc();
Ptr->Canvas->StretchDraw(rr,jp);
Ptr->EndDoc();

delete Ptr;
delete jp;
return "ok";
}catch(Exception &ex)
{
ShowInfo("列印 test_file.jpg 到: HP LaserJet 發生錯誤 error: " ex.Message);
delete Ptr;
delete jp;
return "fail";
}
}

[/code]
------
Tony,
junior programmer
temp_register
一般會員


發表:1
回覆:5
積分:1
註冊:2007-04-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-11-02 11:18:10 IP:211.75.xxx.xxx 訂閱
沒有人可以幫忙嗎? 拜託拜託....自己頂一下
------
Tony,
junior programmer
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-11-02 16:55:35 IP:122.126.xxx.xxx 訂閱
hello THERE

請參照下面網址來設定看看

http://support.microsoft.com/kb/252388

PS 那個問題不單純只是你改權限而已,理論上還要做上面的處理。
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
編輯記錄
aftcast 重新編輯於 2011-11-02 02:56:35, 註解 無‧
temp_register
一般會員


發表:1
回覆:5
積分:1
註冊:2007-04-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-11-03 15:43:13 IP:211.75.xxx.xxx 訂閱
感謝高手您的協助, 我試看看先~





===================引 用 aftcast 文 章===================
hello THERE

請參照下面網址來設定看看

http://support.microsoft.com/kb/252388

PS 那個問題不單純只是你改權限而已,理論上還要做上面的處理。
------
Tony,
junior programmer
temp_register
一般會員


發表:1
回覆:5
積分:1
註冊:2007-04-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-11-03 16:58:35 IP:211.75.xxx.xxx 訂閱
照著步驟做 (中文翻譯完全看不懂, 改成英文版的說明)

http://support.microsoft.com/kb/252388/en-us

可是弄完後結果一樣耶~

快哭了, 但是還是很感謝您的幫助喔, 謝謝!

===================引 用 aftcast 文 章===================
hello THERE

請參照下面網址來設定看看

http://support.microsoft.com/kb/252388

PS 那個問題不單純只是你改權限而已,理論上還要做上面的處理。
------
Tony,
junior programmer
brook
資深會員


發表:57
回覆:323
積分:371
註冊:2002-07-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-11-07 07:49:58 IP:60.251.xxx.xxx 訂閱
不知道是不是印表機名稱超過30幾個字,把印表機名稱改短一點看看.
temp_register
一般會員


發表:1
回覆:5
積分:1
註冊:2007-04-30

發送簡訊給我
#7 引用回覆 回覆 發表時間:2011-11-07 10:19:43 IP:211.75.xxx.xxx 訂閱
感謝 brook 大提供的意見, 但是確定印表機都沒有名稱過長的問題,
甚至沒有中英文的問題

因為小弟為了測試, 已經把印表機名稱簡化到 HP1 , EPSON1 , ....這類的名稱來試了, 還是不行



===================引 用 brook 文 章===================
不知道是不是印表機名稱超過30幾個字,把印表機名稱改短一點看看.
------
Tony,
junior programmer
smallfox
高階會員


發表:2
回覆:113
積分:128
註冊:2003-02-19

發送簡訊給我
#8 引用回覆 回覆 發表時間:2011-11-08 00:50:40 IP:203.73.xxx.xxx 訂閱
請問:
1. 你的印表機是網路印表機嗎 ? (直接接網路線&設置IP的)
2. 你的印表機是事務機嗎 ? (就是掃描,傳真,影印多合一的)

我所遇到過的, TPrinter 在Win2008 Svr下處理上述狀況時, PrinterIndex的設定會出問題,
反映過原廠, 但無解, 只好改跳視窗出來讓使用者選取,
變成多一道程序.
temp_register
一般會員


發表:1
回覆:5
積分:1
註冊:2007-04-30

發送簡訊給我
#9 引用回覆 回覆 發表時間:2011-11-15 18:19:32 IP:211.75.xxx.xxx 訂閱
感謝 smallfox 大的回覆,

1. 我的印表機是網路印表機
2. 並不是事務機耶, 只是一般單純的HP雷射印表機...

唉...真是莫名其妙的問題, 搞死人了現在....還是沒辦法試出來, 真是夠煩的了


===================引 用 smallfox 文 章===================
請問:
1. 你的印表機是網路印表機嗎 ? (直接接網路線&設置IP的)
2. 你的印表機是事務機嗎 ? (就是掃描,傳真,影印多合一的)

我所遇到過的, TPrinter 在Win2008 Svr下處理上述狀況時, PrinterIndex的設定會出問題,
反映過原廠, 但無解, 只好改跳視窗出來讓使用者選取,
變成多一道程序.
------
Tony,
junior programmer
smallfox
高階會員


發表:2
回覆:113
積分:128
註冊:2003-02-19

發送簡訊給我
#10 引用回覆 回覆 發表時間:2011-11-16 00:03:49 IP:211.74.xxx.xxx 訂閱
如果你直接寫成:
Ptr->PrinterIndex = 2
會出問題嗎 ?
或這樣寫呢:
n = Ptr->Printers -> IndexOf('HP LaserJet')
try
Ptr->PrinterIndex = n
except
// show printer select window
// or 呼叫小畫家將圖檔列印出去 ...
end
如何 ?!
系統時間:2024-03-28 23:58:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!