如何通过usb控制超市小票打印机Word文件下载.docx
《如何通过usb控制超市小票打印机Word文件下载.docx》由会员分享,可在线阅读,更多相关《如何通过usb控制超市小票打印机Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。
买个USB转并口的连接线这个方法根本不行,小票打印是想端口发送字符串。
你原来的代码是如何打开LPT1:
端口的?
给你我写的一个函数吧,可以直接往打印机写数据:
usesPrinters,WinSpool;
functionSendDataToPrinter(sDeviceName,sDocName,sData:
String):
Boolean;
//功能描述:
发送数据到打印机(PoweredbyJadeluo)
//入口参数:
//sDeviceName-打印机名称
//sDocName-打印文档名称
//sData-发送的数据
//出口参数:
//返回值-True表示成功,False表示失败
var
bResult:
hPrinter:
Cardinal;
tDocInfo:
_DOC_INFO_1A;
iWrited:
begin
=OpenPrinter(PChar(sDeviceName),hPrinter,nil);
ifbResultthen
begin
tDocInfo.pDocName:
=PChar(sDocName);
tDocInfo.pOutputFile:
=nil;
tDocInfo.pDatatype:
=StartDocPrinter(hPrinter,1,@tDocInfo)&
lt;
&
gt;
0;
=StartPagePrinter(hPrinter);
=bResultandWritePrinter(hPrinter,@sData[1],Length(sData),iWrited);
=bResultandEndPagePrinter(hPrinter);
EndDocPrinter(hPrinter);
end;
ClosePrinter(hPrinter);
Result:
=bResult;
end;
打印机名称即在Windows里安装好打印机后,显示在"
打印机和传真"
里的打印机名称。
比如,打印机名称为"
EPSONLQ-1600K"
,要发送的数据为#27#78'
1'
#0(进纸指令),则调用形式为:
SendDataToPrinter('
EPSONLQ-1600K'
'
PaperFeed'
#27#78'
#0);
//'
内容是可以任意的
路过。
Delphi(Pascal)code
usesPrinters,WinSpool;
发送数据到打印机(PoweredbyJadeluo)//入口参数:
//sDeviceName-打印机名称//sDocName-打印文档名称//sData-发送的数据//出口参数:
//返回值-True表示成功,False表示失败var
=OpenPrinter(PChar(sDeviceName),hPrinter,nil);
ifbResultthenbegin
=nil;
=StartDocPrinter(hPrinter,1,@tDocInfo)&
0;
=bResultandWritePrinter(hPrinter,@sData[1],Length(sData),iWrited);
=bResultandEndPagePrinter(hPrinter);
内容是可以任意的谢谢这位大侠,但是我按照你上面说的调试,结果打印机一点反应都没有,请指教。
用的USB端口,POS58热敏打印机。
我用LPT1端口的时候,使用的是ASSIGNFILE(F,'
LPT1'
)方法输出字符串;
谢谢这位大侠,但是我按照你上面说的调试,结果打印机一点反应都没有,请指教。
调用这个函数时一定要正确填写打印机的名称(例子中的'
'
部分)。
用过USB转COM的没用过并口
去网上找一个读取USB的代码
引用7楼linlingwei的回复:
谢谢这位大侠,但是我按照你上面说的调试,结果打印机一点反应都没有,请指教。
打印机的名字也没错,就是控制面板里显示的名字。
打印机也设置为默认打印机了。
usesprinters;
printer.BeginDoc;
printer.Canvas.TextOut(10,10,'
要打印的内容'
);
printer.EndDoc;
你可以找?
家要?
DEMO?
看看呢
思路有问题!
不需要直接操作USB,那样相当于自己写驱动,麻烦。
一般现在都是有USB转串口,USB转并口,之类的线。
而且买线的时候会带驱动程序光盘。
正确安装驱动以后显示在电脑上的就是COM口了,再操作串口就可以了。
问题是,用USB转并口之类的线,发送字符串的时候还是要发送到USB口呀,原来发送到并口的代码还是不能用呀。
用网络,控制支持的LPT1终端,打印。
使用驱动程序,添加打印机,设置端口
引用16楼ziseliuxingzh的回复:
思路有问题!
驱动后电脑上显示的就不是USB端口了,COM口或者是并口,但是操作都一样了,ASSIGNFILE(F,'
)或者ASSIGNFILE(F,'
COM1'
)。
你试试就明白了。
这个问题到现在还没解决,请求高手出现。
这个需要硬件驱动支持,有了驱动,依据它提供的DLL或者OCX来编程控制就是了。
很久没搞过这个了!
共享驱动就可以了!
安装打印机驱动,选择USB端口,然后共享,在程序中通过文件写入的方式,通过USB端口送出去安装打印机驱动,选择USB端口,然后共享,在程序中通过文件写入的方式,通过USB端口送出去
caseCombobox1.ItemIndexof
0:
assignfile(Fprt,'
1:
LPT2'
2:
3:
COM2'
4:
PrintOut.txt'
5:
\\S4\HPLaserJ\HPLaserJet2100'
格式:
\\电脑名称+\+共享名称+\打印机驱动
关键是打印机是USB接口的,如果不是并口的,可用转换头。
但要有驱动程序。
tDocInfo.pDocName