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

连续打印怎么打?

尚未結案
clarky
一般會員


發表:14
回覆:22
積分:7
註冊:2003-04-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-14 14:33:00 IP:211.162.xxx.xxx 未訂閱
当我需要实时打印时,总是无法连续打印,当我使用 with printer do begin BeginDoc Canvas.textout(x,y,''); Enddoc end; 进行打印工作时,完成后将会自动走纸,但现在我需要连续的进行打印操作,现在我该作何修改才能实现它不会走纸。
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-14 15:06:48 IP:218.16.xxx.xxx 未訂閱
你完成所有要連續打印的工作後才 EndDoc 不就可以了嗎 ?
clarky
一般會員


發表:14
回覆:22
積分:7
註冊:2003-04-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-14 15:29:29 IP:211.162.xxx.xxx 未訂閱
引言: 你完成所有要連續打印的工作後才 EndDoc 不就可以了嗎 ?
我想可能不行吧,因为我需要有数据到来时,马上打印,打完后不走纸,等待下一组数据到来,接着前边的继续打印,要是想您说的那样,就不会是实时打印了吧。我也尝试在中间加上加一些中断等待的命令来实现,但还是想想听听别的方法,望继续赐教?
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-23 11:40:58 IP:211.96.xxx.xxx 未訂閱
自設打印機紙張大小(在98下測試無誤,可用) procedure PrnSetPaperSizeNT(FormName: string; PaperWidth, PaperLength:integer); var Device, Driver, Port: array[0..80] of Char; DevMode: THandle; pDevmode: PDeviceMode; begin // Get printer device name etc. Printer.GetPrinter(Device, Driver, Port, DevMode); // force reload of DEVMODE Printer.SetPrinter(Device, Driver, Port, 0) ; // get DEVMODE handle Printer.GetPrinter(Device, Driver, Port, DevMode); if DevMode <> 0 then begin // lock it to get pointer to DEVMODE record pDevMode := GlobalLock( DevMode ); if pDevmode <> nil then try with pDevmode^ do begin // modify form StrLCopy( dmFormName, PChar(FormName), CCHFORMNAME-1 ); // tell printer driver that dmFormname field contains // data it needs to inspect. dmPaperWidth := PaperWidth; dmPaperLength := PaperLength; dmFields := dmFields or DM_FORMNAME or DM_PAPERWIDTH or DM_PAPERLENGTH; end; finally GlobalUnlock( Devmode ); // unlock devmode handle. end; end; { If } end; begin ... ... printer.printerindex:=-1 ; // 設置預設打印機(或者你自己改為想要打印的打印機) PrnSetPaperSizeNT('自定義',579,maxlength); // 數值皆為dot printer.begindoc; .. printer.enddoc; end; 1、自設打印機紙張長度(長度為那個canvas.height) 2、需手動設置打印機的圖形抖動(在控制面板里設置)為無,否則將會有無法預期的結果(長度亂了)
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-23 11:52:24 IP:211.96.xxx.xxx 未訂閱
忘了~~ 以上例子僅能在針式打印機上使用,如果在激光或噴墨式打印機上實作,不管長度設置為何,enddoc送出,自動會將整張紙送出~ 如果非得要用激光或噴墨打印機,可以把你要輸出的信息輸出成文件,再用另一程序來打印該文件,即可解決這方面的問題~~~~
clarky
一般會員


發表:14
回覆:22
積分:7
註冊:2003-04-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-23 15:17:34 IP:211.162.xxx.xxx 未訂閱
真是太感谢了,你的例子我会好好的研究一下的,先还有些问题不知能否帮助, 我想打印时windows一定会建立一个缓冲区,来存储打印的信息,当缓冲区满了就送出去打印,那么我如何得到这个缓冲区的一些参数,或者怎么操作这个缓冲区,望能继续赐教◎◎!!!
系統時間:2024-05-02 7:40:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!