如何通过usb控制超市小票打印机.docx

上传人:b****2 文档编号:2438108 上传时间:2022-10-29 格式:DOCX 页数:8 大小:18.06KB
下载 相关 举报
如何通过usb控制超市小票打印机.docx_第1页
第1页 / 共8页
如何通过usb控制超市小票打印机.docx_第2页
第2页 / 共8页
如何通过usb控制超市小票打印机.docx_第3页
第3页 / 共8页
如何通过usb控制超市小票打印机.docx_第4页
第4页 / 共8页
如何通过usb控制超市小票打印机.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

如何通过usb控制超市小票打印机.docx

《如何通过usb控制超市小票打印机.docx》由会员分享,可在线阅读,更多相关《如何通过usb控制超市小票打印机.docx(8页珍藏版)》请在冰豆网上搜索。

如何通过usb控制超市小票打印机.docx

如何通过usb控制超市小票打印机

如何通过usb控制超市小票打印机?

以前一直用的LPT1端口控制小票打印,现在笔记本都没有并口了,如何打印呢?

请给详细说明,最好有例子。

找了好长时间了,一直没能解决。

谢谢!

回复讨论(解决方案)

买个USB转并口的连接线

 

买个USB转并口的连接线

这个方法根本不行,小票打印是想端口发送字符串。

默认是向并口发送字符串,你这样转换连接线,其实程序还是向usb发送字符串,不能用。

现在困惑的就是如何向usb发送字符串?

 

我也用过usb转com口的转接口啊.连接com设备一点问题都没..

重要的是软件能不能设置com口.

 

引用1楼wintergoes的回复:

买个USB转并口的连接线这个方法根本不行,小票打印是想端口发送字符串。

默认是向并口发送字符串,你这样转换连接线,其实程序还是向usb发送字符串,不能用。

现在困惑的就是如何向usb发送字符串?

你原来的代码是如何打开LPT1:

端口的?

 

给你我写的一个函数吧,可以直接往打印机写数据:

usesPrinters,WinSpool;

functionSendDataToPrinter(sDeviceName,sDocName,sData:

String):

Boolean;

//功能描述:

发送数据到打印机(PoweredbyJadeluo)

//入口参数:

//sDeviceName-打印机名称

//sDocName-打印文档名称

//sData-发送的数据

//出口参数:

//返回值-True表示成功,False表示失败

var

bResult:

Boolean;

hPrinter:

Cardinal;

tDocInfo:

_DOC_INFO_1A;

iWrited:

Cardinal;

begin

bResult:

=OpenPrinter(PChar(sDeviceName),hPrinter,nil);

ifbResultthen

begin

tDocInfo.pDocName:

=PChar(sDocName);

tDocInfo.pOutputFile:

=nil;

tDocInfo.pDatatype:

=nil;

bResult:

=StartDocPrinter(hPrinter,1,@tDocInfo)<>0;

ifbResultthen

begin

bResult:

=StartPagePrinter(hPrinter);

bResult:

=bResultandWritePrinter(hPrinter,@sData[1],Length(sData),iWrited);

bResult:

=bResultandEndPagePrinter(hPrinter);

EndDocPrinter(hPrinter);

end;

ClosePrinter(hPrinter);

end;

Result:

=bResult;

end;打印机名称即在Windows里安装好打印机后,显示在"打印机和传真"里的打印机名称。

比如,打印机名称为"EPSONLQ-1600K",要发送的数据为#27#78'1'#0(进纸指令),则调用形式为:

SendDataToPrinter('EPSONLQ-1600K','PaperFeed',#27#78'1'#0);//'PaperFeed'内容是可以任意的

 

路过。

 

给你我写的一个函数吧,可以直接往打印机写数据:

Delphi(Pascal)code

usesPrinters,WinSpool;functionSendDataToPrinter(sDeviceName,sDocName,sData:

String):

Boolean;//功能描述:

发送数据到打印机(PoweredbyJadeluo)//入口参数:

//sDeviceName-打印机名称//sDocName-打印文档名称//sData-发送的数据//出口参数:

//返回值-True表示成功,False表示失败var

bResult:

Boolean;

hPrinter:

Cardinal;

tDocInfo:

_DOC_INFO_1A;

iWrited:

Cardinal;begin

bResult:

=OpenPrinter(PChar(sDeviceName),hPrinter,nil);ifbResultthenbegin

tDocInfo.pDocName:

=PChar(sDocName);

tDocInfo.pOutputFile:

=nil;

tDocInfo.pDatatype:

=nil;

bResult:

=StartDocPrinter(hPrinter,1,@tDocInfo)<>0;ifbResultthenbegin

bResult:

=StartPagePrinter(hPrinter);

bResult:

=bResultandWritePrinter(hPrinter,@sData[1],Length(sData),iWrited);

bResult:

=bResultandEndPagePrinter(hPrinter);

EndDocPrinter(hPrinter);end;

ClosePrinter(hPrinter);end;

Result:

=bResult;end;打印机名称即在Windows里安装好打印机后,显示在"打印机和传真"里的打印机名称。

比如,打印机名称为"EPSONLQ-1600K",要发送的数据为#27#78'1'#0(进纸指令),则调用形式为:

SendDataToPrinter('EPSONLQ-1600K','PaperFeed',#27#78'1'#0);//'PaperFeed'内容是可以任意的谢谢这位大侠,但是我按照你上面说的调试,结果打印机一点反应都没有,请指教。

用的USB端口,POS58热敏打印机。

我用LPT1端口的时候,使用的是ASSIGNFILE(F,'LPT1')方法输出字符串;

 

谢谢这位大侠,但是我按照你上面说的调试,结果打印机一点反应都没有,请指教。

用的USB端口,POS58热敏打印机。

我用LPT1端口的时候,使用的是ASSIGNFILE(F,'LPT1')方法输出字符串;调用这个函数时一定要正确填写打印机的名称(例子中的''EPSONLQ-1600K'部分)。

 

用过USB转COM的没用过并口

 

去网上找一个读取USB的代码

 

引用7楼linlingwei的回复:

谢谢这位大侠,但是我按照你上面说的调试,结果打印机一点反应都没有,请指教。

用的USB端口,POS58热敏打印机。

我用LPT1端口的时候,使用的是ASSIGNFILE(F,'LPT1')方法输出字符串;调用这个函数时一定要正确填写打印机的名称(例子中的''EPSONLQ-1600K'部分)。

打印机的名字也没错,就是控制面板里显示的名字。

打印机也设置为默认打印机了。

 

usesprinters;printer.BeginDoc;

printer.Canvas.TextOut(10,10,'要打印的内容');

printer.EndDoc;

 

你可以找?

家要?

DEMO?

看看呢

 

路过。

 

思路有问题!

不需要直接操作USB,那样相当于自己写驱动,麻烦。

一般现在都是有USB转串口,USB转并口,之类的线。

而且买线的时候会带驱动程序光盘。

正确安装驱动以后显示在电脑上的就是COM口了,再操作串口就可以了。

 

思路有问题!

不需要直接操作USB,那样相当于自己写驱动,麻烦。

一般现在都是有USB转串口,USB转并口,之类的线。

而且买线的时候会带驱动程序光盘。

正确安装驱动以后显示在电脑上的就是COM口了,再操作串口就可以了。

问题是,用USB转并口之类的线,发送字符串的时候还是要发送到USB口呀,原来发送到并口的代码还是不能用呀。

 

用网络,控制支持的LPT1终端,打印。

 

使用驱动程序,添加打印机,设置端口

 

引用16楼ziseliuxingzh的回复:

思路有问题!

不需要直接操作USB,那样相当于自己写驱动,麻烦。

一般现在都是有USB转串口,USB转并口,之类的线。

而且买线的时候会带驱动程序光盘。

正确安装驱动以后显示在电脑上的就是COM口了,再操作串口就可以了。

问题是,用USB转并口之类的线,发送字符串的时候还是要发送到USB口呀,原来发送到并口的代码还是不能用呀。

驱动后电脑上显示的就不是USB端口了,COM口或者是并口,但是操作都一样了,ASSIGNFILE(F,'LPT1')或者ASSIGNFILE(F,'COM1')。

你试试就明白了。

 

这个问题到现在还没解决,请求高手出现。

 

这个需要硬件驱动支持,有了驱动,依据它提供的DLL或者OCX来编程控制就是了。

 

 

很久没搞过这个了!

 

共享驱动就可以了!

安装打印机驱动,选择USB端口,然后共享,在程序中通过文件写入的方式,通过USB端口送出去安装打印机驱动,选择USB端口,然后共享,在程序中通过文件写入的方式,通过USB端口送出去

caseCombobox1.ItemIndexof

0:

assignfile(Fprt,'LPT1');

1:

assignfile(Fprt,'LPT2');

2:

assignfile(Fprt,'COM1');

3:

assignfile(Fprt,'COM2');

4:

assignfile(Fprt,'PrintOut.txt');

5:

assignfile(Fprt,'\\S4\HPLaserJ\HPLaserJet2100');

end;

格式:

\\电脑名称+\+共享名称+\打印机驱动

 

关键是打印机是USB接口的,如果不是并口的,可用转换头。

但要有驱动程序。

 

给你我写的一个函数吧,可以直接往打印机写数据:

Delphi(Pascal)code

usesPrinters,WinSpool;functionSendDataToPrinter(sDeviceName,sDocName,sData:

String):

Boolean;//功能描述:

发送数据到打印机(PoweredbyJadeluo)//入口参数:

//sDeviceName-打印机名称//sDocName-打印文档名称//sData-发送的数据//出口参数:

//返回值-True表示成功,False表示失败var

bResult:

Boolean;

hPrinter:

Cardinal;

tDocInfo:

_DOC_INFO_1A;

iWrited:

Cardinal;begin

bResult:

=OpenPrinter(PChar(sDeviceName),hPrinter,nil);ifbResultthenbegin

tDocInfo.pDocName

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1