如何使用列表機本身的字型 |
答題得分者是:領航天使
|
linkolong
一般會員 發表:4 回覆:35 積分:12 註冊:2002-04-23 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 問題是這樣的,一台舊電腦純DOS(分析儀器使用),列印出來的報表,字型為列表機(EPSON 570 )的內定字型(Script..或其他)因為....想作弊,所以想利用程式寫一個Report出來,但是我就是找不到Script字型,想到用Windows本身的造字程式,卻無法造出佔1位元的英文字,所以看看各位仁兄可否知道如何使用列表機本身所選擇的字型..對一般的點陣印表機來說,列印模式有 文字模式(Text Mode) 與 繪圖模式(Graphic Mode),在windows下的印表驅動程式都是採用繪圖模式來列印, 但是只有文字模式的列印才能使用印表機內建的字型, 所以重點是如何不透過Windows的印表驅動程式來丟列印指令給印表機, 站長寫了一個可以直接丟印表指令給印表機的Function, procedure DirectPrint(s:string); 請試看看! 但要看看EPSON印表機的內建指令如何下喔! unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} uses printers; procedure DirectPrint(s:string); type TPrnBuffRec = record BuffLength : word; Buffer : array [0..255] of char; end; var Buff : TPrnBuffRec; i,n:integer; c:char; begin n:=length(s); for i:=1 to n do begin c:=s[i]; Buff.Buffer[i-1]:=c; end; Buff.BuffLength := n; Escape(Printer.Canvas.Handle, PASSTHROUGH, 0, @Buff, nil); end; procedure TForm1.Button1Click(Sender: TObject); begin DirectPrint('This is printer ABC !' #13#10); end; end.~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
liketree
一般會員 發表:4 回覆:9 積分:2 註冊:2004-05-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |