QuickRep.Preview 列印問題 |
缺席
|
css
一般會員 ![]() ![]() 發表:24 回覆:17 積分:8 註冊:2006-08-31 發送簡訊給我 |
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 發送簡訊給我 |
|
css
一般會員 ![]() ![]() 發表:24 回覆:17 積分:8 註冊:2006-08-31 發送簡訊給我 |
我用 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次真不知那個能解決我的問題 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |