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

如何指定紙張大小或是指定印表機內的紙張

答題得分者是:pprayer
kevinsoung
一般會員


發表:26
回覆:34
積分:12
註冊:2011-11-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2016-08-16 17:52:53 IP:114.34.xxx.xxx 訂閱
各位前輩:
我用 下列方式:已經可以指定要列印的印表機

[code delphi]
var
i : integer;
begin
i := Printer.Printers.IndexOf('標籤貼紙印表機');
if i >= 0 then Printer.PrinterIndex := i;

Printer.BeginDoc;

Printer.Canvas.Font.Size:=12;
Printer.Canvas.Textout(150,10,'123' ' ');
Printer.Canvas.Textout(210,09,'ABCDEFG');
Printer.Canvas.Textout(500,09,'$85');

Printer.Canvas.Font.Size:=6;
Printer.Canvas.Textout(130,85,'HGFDS/MNMNMNM');

Printer.Canvas.Font.Size:=2;
Printer.Canvas.Textout(0,150,'');

Printer.Canvas.Font.Size:=4;
Printer.Canvas.Textout(0,0,'----------------------------------------------------------------------');

Printer.EndDoc;
[/code]

也可以列印
但是列印後都會多印很多空白導致要撕紙時位置不對
1.要如何指定列印時的紙張大小 例如寬 6公分 高是4公分 (優先解決方案)
或是
2.我在印表機已經設定好紙張大小 名稱為 6x4 然後用程式 指定印應表機使用該紙張

感謝各位前輩的指導

pprayer
高階會員


發表:35
回覆:185
積分:174
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2016-08-18 09:14:27 IP:124.109.xxx.xxx 未訂閱
Delphi的TPrinter的Canvas會可能超過印表機的PaoerSettings
如果你不會調
可以試試直接丟POS command給Printer Port
(但要先找到那台印表機的手冊)

例如
AssignFile(port, 'COM1'); // ex: LPT1、COM1、USB1
Rewrite(port);
Writeln(port, buffer); //列印文字..
Write(port,#29#86#66#0); //撕紙
CloseFile(port);
kevinsoung
一般會員


發表:26
回覆:34
積分:12
註冊:2011-11-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2016-08-19 16:14:31 IP:60.248.xxx.xxx 訂閱
感謝前輩的指導
我會去試試

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