打印小票实例
来源:www.cnft.cn
做小票打印,诀窍是用尺子量一下小票的宽度,还包括标题的左边距、上边距等。
《飞天云打印》采用的输入单位是毫米,可以带一位小数,如18.5毫米。
用尺子将文字或图片标签的放置位置的左边距、上边距、长度、宽度量出来,拼接出打印格式数据,
然后将拼接出打印格式数据通过WebSocket发送给《飞天云打印》就行了。
《飞天云打印》在打印后,会返回打印结果,发送端可以根据打印结果判断打印情况。
需要注意的是,打印小票的服务名为:PrintTicket,打印票据单据的服务名为:PrintReceipt,不要搞错了。

以下是代码:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>小票打印2</title>

<script type="text/javascript">

function GetPrintString()
{
//注意:“|”是分隔符;“&”是段落换行符;“`”是结束符(符号是键盘数字键1和TAB键夹角的按键字符)
//注意,打印内容中不能出现以上3种符号。

//参数:FtPrintPaper、打印别名、纸张宽度(毫米),纸张上、下、左、右边预留空白宽度(毫米),每行之间空白分隔的高度(毫米)
//必须为第一行
var strPrintString="FtPrintPaper|bbb|74.0|10.0|10.0|5.0|5.0|2.0";

//文字参数可以为以下两种,可以单独用,也可以混用
//文字参数:Label,字体名称,字体大小,字体颜色,字体背景颜色,字体样式(0常规,1加粗,2加斜,3加下划线,4加删除线),打印文本
//文字参数:Label,字体名称,字体大小,字体颜色,字体背景颜色,字体样式(0常规,1加粗,2加斜,3加下划线,4加删除线),打印文本1,打印文本2
strPrintString+="&Label|宋体|14|000000|FFFFFF|0| 某某公司收费凭条";
strPrintString+="&Label|宋体|12|000000|FFFFFF|0|缴费项目:|某某公司费用";
strPrintString+="&Label|宋体|12|000000|FFFFFF|0|缴费号码:|88888888";
strPrintString+="&Label|宋体|12|000000|FFFFFF|0|缴费金额:|68.00";
strPrintString+="&Label|宋体|12|000000|FFFFFF|0|大写金额:|陆拾捌元";
strPrintString+="&Label|宋体|12|000000|FFFFFF|0|客户名称:|张三";
strPrintString+="&Label|宋体|12|000000|FFFFFF|0|客户地址:|四川省成都市光华大道";
strPrintString+="&Label|宋体|12|000000|FFFFFF|0|交易时间:|2019-12-12 10:21:37";
strPrintString+="&Label|宋体|12|000000|FFFFFF|0|交易流水:|9fa3a177-54a7-4fe2-a6bb-fb347d4a98ac";

//二维码参数:QRCode,字体名称,字体大小,字体颜色,字体背景颜色,字体样式(0常规,1加粗,2加斜,3加下划线,4加删除线),二维码标题(或占位符),二维码点大小(像素),二维码颜色,背景颜色,二维码内容
strPrintString+="&QRCode|宋体|12|000000|FFFFFF|0|电子发票:|3|000000|FFFFFF|http://www.cnft.cn";

//添加一个图片元件,参数依次为:图片宽度(单位毫米),图片高度(单位毫米),图片标题(或占位符),图片URL地址
//注意:如果"图片宽度"和"图片高度"任一为0|则元件将根据图片自动缩放大小
//注意:图片URL地址|不能含有分隔符“|”
strPrintString+="&Image|宋体|12|000000|FFFFFF|0|公司标志:|22|7|https://dss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/scholar_mid/static/protocol/https/xueshu/img/scholar_logo_e95073e.png";

strPrintString+="&Label|宋体|12|000000|FFFFFF|0|操作人员:|李四";
strPrintString+="&Label|宋体|12|000000|FFFFFF|0|操作分店:|光华分店";

strPrintString+="`";//末尾以符号"`"结尾

return strPrintString;
}

function doFtPrint()
{
var strReturnCode = "-1";

if ("WebSocket" in window)
{
//window.alert("您的浏览器支持 WebSocket!");

//打开一个WebSocket
var ws=new WebSocket("ws://localhost:8877/PrintTicket");

ws.onopen = function()
{
//WebSocket已连接.

var strPrintString=GetPrintString();

ws.send(strPrintString);

};

ws.onmessage = function(evt)
{
//WebSocket收到数据.
strReturnCode=evt.data;

ws.close();

if (strReturnCode=="1")
{
document.getElementById("txtReturnCode").value="返回码["+strReturnCode+"],打印成功!";
}
else
{
document.getElementById("txtReturnCode").value="返回码["+strReturnCode+"],打印失败。";
}

};

ws.onclose = function()
{
//WebSocket已关闭
};
ws.onerror = function()
{
if(ws.readyState==3)
{
window.alert("无法连接到FtPrint,请检查FtPrint是否运行!");
}
};
}
else
{
//浏览器不支持WebSocket
window.alert("您的浏览器不支持 WebSocket!");
}
}
</script>

</head>
<body>
<input type="text" id="txtReturnCode" value="" />
<a href="javascript:doFtPrint()">立即打印</a>

</body>
</html>
法律声明
Copyright 2011-2023 CNFT.cn.
All Rights Reserved.
联系方式
QQ :7195060  (推荐使用QQ联系)
邮箱:7195060@qq.com