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

印表機的問題

尚未結案
spencerkuo
一般會員


發表:21
回覆:34
積分:11
註冊:2003-08-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-19 14:44:59 IP:61.64.xxx.xxx 未訂閱
各位大大 想請問一下,如用printers 這個unit, 把text寫入canvas後 如果不想要讓紙張最上面空出那麼多的空白,該如何做呢?? 如下是列印程式碼 with Printer do begin Title := '櫃檯列印:' cdsBillH.fieldbyname('no').asstring; BeginDoc; Canvas.Font.Size := 16; for j := 0 to Memo1.Lines.Count -1 do Canvas.TextOut(10, j * Canvas.TextHeight(Memo1.Lines.Strings[j]) , Memo1.Lines[j]); EndDoc; end; 還有如何加快列印的速度?? 謝謝 發表人 - spencerkuo 於 2003/10/19 14:45:47
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-19 16:31:10 IP:218.163.xxx.xxx 未訂閱
引言: 各位大大 想請問一下,如用printers 這個unit, 把text寫入canvas後 如果不想要讓紙張最上面空出那麼多的空白,該如何做呢?? 如下是列印程式碼 with Printer do begin Title := '櫃檯列印:' cdsBillH.fieldbyname('no').asstring; BeginDoc; Canvas.Font.Size := 16; for j := 0 to Memo1.Lines.Count -1 do Canvas.TextOut(10, j * Canvas.TextHeight(Memo1.Lines.Strings[j]) , Memo1.Lines[j]); EndDoc; end; 還有如何加快列印的速度??
最上方,空白調整大小(紅色部分自行設定):
  Canvas.TextOut(10,
                100 (j * Canvas.TextHeight(Memo1.Lines.Strings[j])) ,
                Memo1.Lines[j]);
網海無涯,學無止境! 發表人 - qoo1234 於 2003/10/19 16:32:41
spencerkuo
一般會員


發表:21
回覆:34
積分:11
註冊:2003-08-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-19 22:35:31 IP:61.64.xxx.xxx 未訂閱
引言:
引言: 各位大大 想請問一下,如用printers 這個unit, 把text寫入canvas後 如果不想要讓紙張最上面空出那麼多的空白,該如何做呢?? 如下是列印程式碼 with Printer do begin Title := '櫃檯列印:' cdsBillH.fieldbyname('no').asstring; BeginDoc; Canvas.Font.Size := 16; for j := 0 to Memo1.Lines.Count -1 do Canvas.TextOut(10, j * Canvas.TextHeight(Memo1.Lines.Strings[j]) , Memo1.Lines[j]); EndDoc; end; 還有如何加快列印的速度??
最上方,空白調整大小(紅色部分自行設定):
  Canvas.TextOut(10,
                100 (j * Canvas.TextHeight(Memo1.Lines.Strings[j])) ,
                Memo1.Lines[j]);
網海無涯,學無止境! 發表人 - qoo1234 於 2003/10/19 16:32:41
現在的問題是如果加上100的高度,那我最上面的空白又更大了, 那如何使它變小呢?? 又因為我是用print server的方式,不能用rs232的控制碼去控制印表機,在這情 況下,又如何控制印表機的進退紙呢??
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-19 23:31:53 IP:218.163.xxx.xxx 未訂閱
//不好意思,邊界設定,不是粉懂你的意思,因為你提供的程式碼 粉像delphi Help的範例    The VCL TPrinter object encapsulates details of Windows printers. To get a list of installed and available printers, use the Printers property. The CLX TPrinter object is a paint device that paints on a printer. It generates postscript and sends that to lpr, lp, or another print command.  Both printer objects use a TCanvas (which is identical to the form's TCanvas) which means that anything that can be drawn on a form can be printed as well. To print an image, call the BeginDoc method followed by whatever canvas graphics you want to print (including text through the  TextOut method) and send the job to the printer by calling the EndDoc method.     This example uses a button and a memo on a form. When the user clicks the button, the content of the memo is printed with a 200-pixel border around the page.  To run this example successfully, add Printers to your uses clause.
procedure TForm1.Button1Click(Sender: TObject);    var
  r: TRect;
  i: Integer;
begin
  with Printer do
    begin
      r := Rect(200,200,(Pagewidth - 200),(PageHeight - 200));
      BeginDoc;
      for i := 0 to Memo1.Lines.Count do
       Canvas.TextOut(200,200   (i *
Canvas.TextHeight(Memo1.Lines.Strings[i])),
                                   Memo1.Lines.Strings[i]);
      Canvas.Brush.Color := clBlack;
      Canvas.FrameRect(r);
      EndDoc;
    end;    end;
網海無涯,學無止境!
系統時間:2024-05-11 3:22:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!