POS printerWord文档下载推荐.docx
《POS printerWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《POS printerWord文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
Printer.Canvas.TextOut(480,130,DianFrm.Combobox2.text+'
(电费交纳单)'
);
Printer.Canvas.TextOut(100,190,'
----------------------------------------------------------------------------------------------'
Printer.Canvas.polyline([Point(100,200),Point(100,530)]);
//第一条线
Printer.Canvas.Polyline([point(210,200),point(210,530)]);
//第二条线
Printer.Canvas.Polyline([point(380,200),point(380,460)]);
//第三条线
Printer.Canvas.Polyline([point(580,200),point(580,460)]);
//第四条线
Printer.Canvas.Polyline([point(780,200),point(780,460)]);
//第五条线
Printer.Canvas.Polyline([point(980,200),point(980,460)]);
//第六条线
Printer.Canvas.Polyline([point(1180,200),point(1180,530)]);
//第七条线
Printer.Canvas.Polyline([point(1330,200),point(1330,530)]);
//最后一条线
Printer.Canvas.TextOut(100,220,'
名称
'
Printer.Canvas.TextOut(220,220,DianFrm.Edit1.Text);
Printer.Canvas.TextOut(400,220,'
上期用电(度)'
Printer.Canvas.TextOut(600,220,'
本期用电(度)'
Printer.Canvas.TextOut(800,220,'
实际用电(度)'
Printer.Canvas.TextOut(1000,220,'
单价(度/元)'
Printer.Canvas.TextOut(1200,220,'
金额(元)'
Printer.Canvas.TextOut(100,250,'
Printer.Canvas.TextOut(100,290,'
门市'
Printer.Canvas.TextOut(220,290,DianFrm.Edit2.Text+DianFrm.Label1.caption+DianFrm.Edit3.text+DianFrm.Label2.caption+DianFrm.Edit4.text+DianFrm.Label3.Caption);
Printer.Canvas.TextOut(440,290,DianFrm.Edit5.Text);
Printer.Canvas.TextOut(640,290,DianFrm.Edit6.Text);
Printer.Canvas.TextOut(860,290,DianFrm.Edit7.Text);
Printer.Canvas.TextOut(1050,290,DianFrm.Edit8.Text);
Printer.Canvas.TextOut(1230,290,DianFrm.Edit9.Text);
Printer.Canvas.TextOut(100,320,'
Printer.Canvas.TextOut(100,360,'
住房'
Printer.Canvas.TextOut(220,360,DianFrm.Edit10.Text+DianFrm.Label4.Caption+DianFrm.Edit11.Text+DianFrm.Label5.Caption+DianFrm.Edit12.Text+DianFrm.Label6.Caption);
Printer.Canvas.TextOut(440,360,DianFrm.Edit13.Text);
Printer.Canvas.TextOut(640,360,DianFrm.Edit14.Text);
Printer.Canvas.TextOut(860,360,DianFrm.Edit15.Text);
Printer.Canvas.TextOut(1050,360,DianFrm.Edit16.Text);
Printer.Canvas.TextOut(1220,360,DianFrm.Edit17.Text);
Printer.Canvas.TextOut(100,390,'
Printer.Canvas.TextOut(100,430,'
Printer.Canvas.TextOut(220,430,DianFrm.Edit18.Text+DianFrm.Label7.Caption+DianFrm.Edit19.Text+DianFrm.Label8.Caption+DianFrm.Edit20.Text+DianFrm.Label10.Caption);
Printer.Canvas.TextOut(440,430,DianFrm.Edit21.Text);
Printer.Canvas.TextOut(640,430,DianFrm.Edit22.Text);
Printer.Canvas.TextOut(860,430,DianFrm.Edit23.Text);
Printer.Canvas.TextOut(1050,430,DianFrm.Edit24.Text);
Printer.Canvas.TextOut(1220,430,DianFrm.Edit25.Text);
Printer.Canvas.TextOut(100,460,'
Printer.Canvas.TextOut(100,500,'
合计大写'
Printer.Canvas.TextOut(220,500,DianFrm.Edit26.Text);
Printer.Canvas.TextOut(1230,500,DianFrm.Edit27.Text);
Printer.Canvas.TextOut(100,530,'
Printer.Canvas.TextOut(100,580,'
收费单位:
+DianFrm.ComboBox2.Text);
Printer.canvas.textout(580,580,'
收费员:
+DianFrm.ComboBox1.Text);
Printer.Canvas.TextOut(980,580,'
时间:
+DateTime);
Printer.EndDoc;
end;
引用
#procedure
TForm1.ButtonPrintClick(Sender:
PText:
TextFile;
i:
integer;
Printer.Canvas.Font.Charset:
=GB2312_CHARSET;
AssignPRN(PText);
Rewrite(PText);
黑体'
writeln(Ptext,'
POS
票据'
品名
单价
数量
小计'
For
=1
to
ADODataSetPJ.RecordCount
do
writeln(Ptext,ADODataSetPJ.FieldByName('
pm'
).asString+
ADODataSetPJ.FieldByName('
dj'
sl'
hj'
).asString);
CloseFile(Ptext);
改进一下就可以了
/////////////////////////////
////////////////////////////
delphi快速打印小票的程序源码
原理:
直接对“LPT1”端口进行输出,使用此种方式打印速度是最快的。
对文本文件进行写操作,当文本文件的文件名为“LPT”或“COM”等保留字里,即是对指定端口写。
源代码截自“吉胜超市POS”
my:
='
lpt1'
filehandle:
=fileopen(my,fmopenwrite);
fileclose(filehandle);
iffilehandle<
0then
begin
messagebox(handle,'
lpt1错误'
'
错误'
mb_iconerror);
exit;
end
else
assignfile(tf,my);
rewrite(tf);
writeln(tf,chr(27)+chr(112)+chr(0)+chr(18)+chr(22));
withquery1do
SQL.Clear;
SQL.Add('
select企业名称from企业档案'
close;
open;
writeln(tf,'
+query1.fieldbyname('
企业名称'
).AsString);
ifstrtofloat(label6.Caption)<
+'
退货单'
)
销售单'
流水号:
'
+form1.StatusBar1.Panels[1].Text);
销售日期:
+datetimetostr(now));
收款员:
+form1.StatusBar1.Panels[3].Text);
--------------------------------'
商品编码'
数量'
单价'
金额'
fora:
=1toform1.StringGrid1.RowCount-2do
writeln(tf,form1.StringGrid1.Cells[2,a]);
writeln(tf,form1.StringGrid1.Cells[1,a]+'
+form1.StringGrid1.Cells[5,a]+'
+form1.StringGrid1.Cells[4,a]+'
+form1.StringGrid1.Cells[6,a]);
合计金额:
+Label8.Caption);
找零金额:
+label9.Caption);
谢谢惠顾,欢迎下次光临'
请妥善保管您的电脑小票'
closefile(tf);
//////////////////////////////////
/////////////////////////////////
票据打印的最快驱动
sql.Clear;
sql.Add('
/////////////////////////////////////
提供一个函数,它可以直接发送数据到打印机
uses
SysUtils,
Printers,
WinSpool;
function
SendDataToPrinter(sDeviceName,
sDocName,
sData:
String):
Boolean;
bResult
:
hPrinter
Cardinal;
tDocInfo
_DOC_INFO_1A;
iWrited
=
OpenPrinter(PChar(sDeviceName),
hPrinter,
nil);
if
then
begin
tDocInfo.pDocName
PChar(sDocName);
tDocInfo.pOutputFile
nil;
tDocInfo.pDatatype
StartDocPrinter(hPrinter,
1,
@tDocInfo)
<
>
0;
StartPagePrinter(hPrinter);
and
WritePrinter(hPrinter,
@sData[1],
Length(sData),
iWrited);
EndPagePrinter(hPrinter);
EndDocPrinter(hPrinter);
end;
ClosePrinter(hPrinter);
Result
bResult;
......
SendDataToPrinter('
打印机名称'
A
Test'
#28'
&
#28#38'
测试'
#28#46);
......
///////////////////////
//////////////////////////
Delphi中票据凭证的精确打印
一、概述
在银行,税务,邮政等行业的实际工作中,经常涉及到在印刷好具有固定格式的汇款单,储蓄凭证,税票等单据上的确定位置打印输出相关的信息。
在此类需求中,精确地定位单据并打印相关信息,是解决问题]的
XX推广
一、概述
在此类需求中,精确地定位单据并打印相关信息,是解决问题]的关键。
一般情况下,开发者都是通过在打印机上通过重复的测试来达到实际需求。
那么,有没有简单有效而又灵活的方法实现上述功能呢?
二、基本思路
分析上述单据的特征,可以发现:
此类打印输出的信息一般比较简短,不涉及到文字过长的折行处理,另外,其打印输出的位置相对固定。
因此,我们可以通过用尺子以毫米为单位,测量好每个输出信息位置的横向和纵向坐标,作为信息输出的位置。
但由于不同打印机在实际输出效果上,总是存在理论和实际位置的偏差,因此,要求程序具有一定的灵活性,供最终用户根据需要,进行必要的位置调整。
因此,可设置一打印配置文件,用于存储横坐标和纵坐标的偏移量,用于用户进行位置校正,从而提供了一定的灵活性。
三、精确打印输出的程序实现
1.在Delphi中新建一个名为mprint.pas的单元文件并编写如下程序,单元引用中加入Printers略:
//取得字符的高度
functionCharHeight:
Word;
Metrics:
TTextM