直接向端口输出的打印问题!

xjbs 2003-10-21 09:26:24
在POS机上用下面这段代码打印小票能成功,但很慢:
procedure TPosFrm.PrintFile(AFileToPrint: string);
var
Port, FileToPrint: TextFile;
ALine: string;
begin
AssignFile(FileToPrint, AFileToPrint);
Reset(FileToprint);
AssignFile(Port, 'LPT1');
Rewrite(Port);
while not Eof(FileToPrint) do
begin
Readln(FileToPrint, ALine);
Writeln(Port, ALine);
end;
CloseFile(Port);
CloseFile(FileToPrint);
end;
-------------------------------------------
如果在DOS模式下:
type pos.prt>lpt1则可以达到每秒12行的速度,比上面的代码快了好几倍,
但我不知道在DELPHI下如何实现直接写端口,,,我在DELPHI下用WINEXEC直接运行
DOS的输出命令又出现乱码,可能是打印机字库有问题!
请各位帮忙呀!!!

打印机为TM8II
...全文
74 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanqth 2003-10-21
  • 打赏
  • 举报
回复
用API直接打印

uses CommDlg;

{$IFNDEF WIN32}

const MAX_PATH = 144;

{$ENDIF}

procedure TForm1.Button1Click(Sender: TObject);

var

Pd : TPrintDlg;

DocInfo: TDocInfo;

begin

FillChar(Pd, sizeof(Pd), #0);

Pd.lStructSize := sizeof(Pd);

Pd.hWndOwner := Form1.Handle;

Pd.Flags := PD_RETURNDC;

if PrintDlg(pd) then begin

FillChar(DocInfo, sizeof(DocInfo), #0);

DocInfo.cbSize := SizeOf(DocInfo);

GetMem(DocInfo.lpszDocName, 32);

GetMem(DocInfo.lpszOutput, MAX_PATH);

lStrCpy(DocInfo.lpszDocName, 'My Document');

{Add this line to print to a file }

lStrCpy(DocInfo.lpszOutput, 'C:.doc');

StartDoc(Pd.hDc, DocInfo);

StartPage(Pd.hDc);

TextOut(Pd.hDc, 100, 100, 'Page 1', 6);

EndPage(Pd.hDc);

StartPage(Pd.hDc);

TextOut(Pd.hDc, 100, 100, 'Page 2', 6);

EndPage(Pd.hDc);

EndDoc(Pd.hDc);

FreeMem(DocInfo.lpszDocName, 32);

FreeMem(DocInfo.lpszOutput, MAX_PATH);

end;

end;
tanqth 2003-10-21
  • 打赏
  • 举报
回复
同意WWWWA(aaaa) ( )
WWWWA 2003-10-21
  • 打赏
  • 举报
回复
上述代码就是在打印机上打印
xjbs 2003-10-21
  • 打赏
  • 举报
回复
怎么发出打印呢?
WWWWA 2003-10-21
  • 打赏
  • 举报
回复
var
F:TEXTFILE;
BEGIN
ASSIGNFILE(F,'LPT1');
REWRITE(F);
WRITELN(F,chr(27) '@'); //initial the printer
WRITELN(F,'TEST1 FIRST LINE');你的内容
WRITELN(F,chr(12)); // move the paper to a new page
CLOSEFILE(F);
end;
试一下这样的速度

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧