如何用com1接口接印表機列印標簽? |
尚未結案
|
suntao008
一般會員 發表:70 回覆:38 積分:21 註冊:2003-10-19 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
|
slimshsieh
一般會員 發表:1 回覆:2 積分:0 註冊:2003-11-13 發送簡訊給我 |
標籤? 假設你是條碼機吧 ^^ 不是的話就請版主刪吧...
條碼機廠牌型號? 是否需做 Response? 1. 不需 Response 直接透過 Printer Driver 輸出即可, 就算你是 USB 或其他輸出埠都一樣, 讓 Printer Driver 幫你處理 Flow Control 比較省事.
(1) 直接用 TPrinter 當成一般印表機處理, 必須安裝原廠驅動程式, 且驅動程式內含 barcode font define, 這種方式我只在 Datamax & SATO 兩種廠牌條碼機上試過, 以前用的笨方法, 現在已經不用它了, 因為要直接控制條碼機, 這種方式很難用, 臨時寫的概略流程, 請自己 try.
uses Printers; var
PaperH, PaperW: integer;
begin
{ 輸出至預設印表機, 若要輸出至非預設請自己寫一段改預設印表機即可 }
Printer.PageHeight := PaperH; { PaperH 標籤高自己定義}
Printer.PageWidth := PaperW; { PaperW 標籤寬自己定義}
Printer.Copies := qty; { qty 標籤列印數量 , 要寫在 TEdit 請自便}
Printer.BeginDoc;
{ 若要印條碼或是條碼機內建英數字, 每一家的條碼機驅動程式都有條碼字型及內建字型註冊成 TrueType Font, 跟印 TrueType Font 方式一樣, 指定 FontName & FontSize }
Printer.Canvas.Font.Name := '細明體';
Printer.Canvas.Font.Size := 20;
Printer.Canvas.Brush.Style := bsClear;
Printer.Canvas.TextOut(X, Y, '印中文字');
Printer.Canvas.Font.Name := 'CODE39xxx'; { 假設某個條碼機有這種 Barcode Font Name }
Printer.Canvas.Font.Size := 20; { 這裡變成條碼高度, 應該吧 =.= }
Printer.Canvas.Brush.Style := bsClear;
Printer.Canvas.TextOut(X, Y, '*1234567*');
Printer.EndDoc;
end; (2) 用 rawprint 元件, http://www.vclxx.org/DELPHI/D32FREE/RAWPRINT.ZIP, 根據條碼機手冊去寫, 直接將條碼機指令輸出至印表機, 沒辦法自己寫的話, 留廠牌型號, 看看我有沒寫過, 寫過的話直接給你 dll, 沒寫過的話....有時間就幫你寫....沒時間我也沒辦法囉. 2. 需要 Response 得根據條碼機的規則去寫, 每家都不同.
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |