線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2834
推到 Plurk!
推到 Facebook!

QuickRep.Preview 列印問題

缺席
css
一般會員


發表:24
回覆:17
積分:8
註冊:2006-08-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-06-13 09:48:39 IP:220.132.xxx.xxx 訂閱
QuickRep.Prepare;
Case RadioGroup1.ItemIndex of
0:begin // Letter
QuickRep.Page.PaperSize:=Letter;
QuickRep.Page.Length:=279.40;
QuickRep.Page.Width:=215.90;
QuickRep.Page.BottomMargin:=13.0;
end;
1:begin
QuickRep.Page.PaperSize:=A4;
QuickRep.Page.Length:=297.0;
QuickRep.Page.Width:=210.0;
end;
else
QuickRep.Page.PaperSize:=Default;
end;
if MyStr = 'P' then
QuickRep.Print
else
QuickRep.Preview;

QuickRep.Print // 選 RadioGroup1.ItemIndex = 0 (letter) or 1 (A4) 都沒問題
QuickRep.Preview // 預覽列印 RadioGroup1.ItemIndex = 0 還是 A4 格式
取改 Preview setting 紙張大小為 letter 列印還是 A4 表格非 Letter
有解嗎 ?

謝謝


wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-06-13 11:26:41 IP:61.222.xxx.xxx 訂閱
css
一般會員


發表:24
回覆:17
積分:8
註冊:2006-08-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-06-13 18:24:30 IP:220.132.xxx.xxx 訂閱
我用 QuickRep 4.04 ver

應該印表機 紙張大小原設 A4 如設 Letter 預覽就 ok
用過 站上資源

procedure SetPrinterSize(Const SizeName : String);
var
_PPrinterInfo2 : PPrinterInfo2;
pPrinterName : PChar;
sPrinterName, sFormName : String;
hPrinter : THandle;
cbNeeded : DWORD;
dwBufferSize : DWORD;
begin
// 設定印表機的紙張大小名稱
sFormName := SizeName;
// 取得預設印表機名稱
sPrinterName := Printer.Printers.Strings[Printer.PrinterIndex];
if not WinSpool.OpenPrinter(PChar(sPrinterName), hPrinter, nil) then
raise Exception.Create('OpenPrinter Error, Code : ' IntToStr(GetLastError));
WinSpool.GetPrinter(hPrinter, 2, nil, 0, @cbNeeded);
_PPrinterInfo2 := nil;
try
GetMem(_PPrinterInfo2, cbNeeded);
WinSpool.GetPrinter(hPrinter, 2, _PPrinterInfo2, cbNeeded, @cbNeeded);
with _PPrinterInfo2^.pDevMode^ do
begin
StrLCopy(dmFormName, PChar(sFormName), CCHFORMNAME - 1);
//dmPaperSize := PaperSizeID(sPrinterName, sFormName);
dmFields := DM_FORMNAME; // DM_PAPERSIZE
end;
// 不知為何 SetPrinter 一定會有錯誤 -> GetLastError = ERROR_ACCESS_DENIED
// (即使以 Administrator 身份執行), 所以先把 raise 註解掉, Who could explain it for me ? Thanks.
if not WinSpool.SetPrinter(hPrinter, 2, _PPrinterInfo2, 0) then
; //raise Exception.Create('SetPrinter Error, Code : ' IntToStr(GetLastError));
finally
if _PPrinterInfo2 <> nil then
FreeMem(_PPrinterInfo2);
_PPrinterInfo2 := nil;
end;
end;

使用起來在 使用server 2003 遠端桌面進入印表有時會有問題
使用後不知為何常與讓雷射印不能轉90度列印,需要把雷射軀動程式移除
在重裝軀動程式就可轉90度列印
所以現在不敢用SetPrinterSize
我有去下載 kb.zip 看了看對我英文程度差的人而言
看了2次真不知那個能解決我的問題

系統時間:2024-05-19 17:08:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!