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

如何「取得」印表機伺服器內容的紙張寬與高,不是紙張格式名稱

尚未結案
tonyhome
一般會員


發表:3
回覆:13
積分:3
註冊:2002-07-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-24 07:53:18 IP:219.84.xxx.xxx 未訂閱
查了之前的資料,都只有設定印表機伺服器內容的紙張格式寬、高,卻沒有取得紙張格式的寬、高方法。 我試過 PDEVMODE.dmPaperLength 與 PDEVMODE.dmPaperWidth ,取得的數值都是 0。 請問有誰知道如何取得印表機伺服器內容的紙張大小以及邊界值呢?並不是取得紙張格式名稱,謝謝!
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-24 08:15:57 IP:202.39.xxx.xxx 未訂閱
參考這篇看看: http://groups.google.com/groups?hl=zh-TW&lr=&th=910720a4cc434433&rnum=1
var 
  Device, Driver, Port: array[0..128] of char;
  PrnDC: HDC;
  hPrnMode: THandle;
  pPrnMode: PDevMode;
  papersizeMM: TPoint; {holds the current papersize in mm}
begin
  Printer.GetPrinter(Device, Driver, Port, hPrnMode);
  pPrnMode := GlobalLock(hPrnMode); 
  PrnDC := CreateDC(Driver,Device,Port,pPrnMode);
  GlobalUnlock(hPrnMode);      with papersizeMM do 
  begin
    x := GetDeviceCaps(PrnDC, HORZSIZE);
    y := GetDeviceCaps(PrnDC, VERTSIZE);
  end;      DeleteDC(PrnDC);
  Refresh;
end;
-- Well be all right. If you dont like uphill battles, you dont like living.
tonyhome
一般會員


發表:3
回覆:13
積分:3
註冊:2002-07-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-25 10:04:18 IP:219.84.xxx.xxx 未訂閱
hagar 兄福安: 使用了您的方式測試只能取到小數一位(公厘),是否有方法能像印表機伺服器內容一樣取得小數二位呢? 還有是否亦有取得列印報表邊界的方法呢? 感謝您的解惑,謝謝您!
tonyhome
一般會員


發表:3
回覆:13
積分:3
註冊:2002-07-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-29 08:12:24 IP:219.84.xxx.xxx 未訂閱
經過好久還是沒人回覆,我查了 MSDN 已經將問題解決,很感謝 hagar 兄提供資訊。     似乎大家對比較低階的 API 不是那麼的深入....
系統時間:2024-05-17 11:54:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!