此单据以凭证纸大小打印
var printer = new ActiveXObject("TPrint.mPrinter");
打印之前需要选择打印机js调用
function selp(){
printer.SelectPrinter();
}
打印单据格式及数据
function doprint(){
//开始单据打印
if(printer.PrintInit(
210, //纸张宽度 毫米
120, //纸张高度 毫米
1 //打印方向 1纵向 2横向
)){
var M_L = 20, M_T = 10; //左边距,上边距
//表格格式打印
printer.FontSize=7; //毫米
printer.FontName="宋体";
printer.FontBold=true;
printer.ForeColor="#0000ff";
printer.PrintText("费 用 报 销 单",0+M_L,0+M_T,180+M_L,9+M_T,5);//居中打印
printer.PrintLine(53+M_L,10+M_T,127+M_L,10+M_T,0.5,0,"#0000ff");//费用报销单下两条线
printer.PrintLine(53 + M_L, 11 + M_T, 127 + M_L, 11 + M_T, 0.5, 0, "#0000ff");
printer.FontSize = 4; //毫米
printer.FontName = "宋体";
printer.FontBold = false;
printer.PrintText("部门:", 2 + M_L, 15 + M_T);
printer.PrintLine(12 + M_L, 19 + M_T, 53 + M_L, 19 + M_T, 0.3, 0, "#0000ff");//部门后的线条
printer.PrintLine(0 + M_L, 21 + M_T, 180 + M_L, 21 + M_T, 1, 0, "#0000ff");//主边框(上)
printer.PrintLine(0 + M_L, 21 + M_T, 0 + M_L, 91 + M_T, 1, 0, "#0000ff"); //主边框(左)
printer.PrintLine(0 + M_L, 91 + M_T, 180 + M_L, 91 + M_T, 1, 0, "#0000ff"); //主边框(下)
printer.PrintLine(180 + M_L, 91 + M_T, 180 + M_L, 21 + M_T, 1, 0, "#0000ff"); //主边框(右)
for (var i = 0; i < 6; i++) {
printer.PrintLine(0 + M_L, 31 + (10 * i) + M_T, (i==2||i==5?180:96) + M_L, 31 + (10 * i) + M_T, 0.3, 0, "#0000ff");//表格内6条横线
}
printer.PrintLine(64 + M_L, 21 + M_T, 64 + M_L, 81 + M_T, 0.3, 0, "#0000ff"); //表格内竖线
printer.PrintLine(96 + M_L, 21 + M_T, 96 + M_L, 91 + M_T, 0.3, 0, "#0000ff"); //表格内竖线2
printer.PrintLine(105.5 + M_L, 21 + M_T, 105.5 + M_L, 81 + M_T, 0.3, 0, "#0000ff"); //表格内竖线3
printer.PrintLine(137 + M_L, 81 + M_T, 137 + M_L, 91 + M_T, 0.3, 0, "#0000ff"); //表格内竖线4
printer.PrintText("用 途", 0 + M_L, 21 + M_T, 64 + M_L, 31 + M_T, 5);
printer.PrintText("金 额 (元)", 64 + M_L, 21 + M_T, 96 + M_L, 31 + M_T, 5);
printer.PrintText("部\n门\n领\n导\n审\n批", 96 + M_L, 21 + M_T, 105.5 + M_L, 51 + M_T, 5);
printer.PrintText("公\n司\n领\n导\n审\n批", 96 + M_L, 51 + M_T, 105.5 + M_L, 81 + M_T, 5);
printer.PrintText("合 计", 0 + M_L, 71 + M_T, 64 + M_L, 81 + M_T, 5);
printer.PrintText("金额大写:", 1 + M_L, 84 + M_T);
printer.PrintText("原借款:", 99 + M_L, 84 + M_T);
printer.PrintText("应退余款:", 139 + M_L, 84 + M_T);
//表格数据打印
//printer.PrintPicFromBase64("",10,10,60,80);
printer.PrintCommit();
}
}
数据打印未跟表格内文字打印类似,只需用直尺量出打印位置或范围即可通过js代码控制打印位置
以下为打印效果:
插件下载地址