以票据的真实长是23.9cm、高是5cm为例:
1.打印机各属性按票据的真实长、高设置。
2.测量每张票垂直方向上的偏移量(如第一张票位置正确,以后每打一张票都会向上递增偏移0.4cm,此值每种打印机会稍有不同,根据实际情况调整)
3.如实际打印的效果,每张票的数据向上移,则画报表时,将报表票据的宽调整为:5cm+0.4cm=5.4cm。
4.如实际打印的效果,每张票的数据向下移,则画报表时,将报表票据的宽调整为:5cm-0.4cm=4.6cm。
5.如果第一张凭证坐标[0,0]的值,就没有紧跟在页端线下输出,而是向下偏移,则将打印机页端指针指向实际页端线的上方2mm处,然后再在离线模式下,按置页端按钮。
总结:为了精确套打、连打,一般要解决2个问题。1)旋转打印机的旋钮,定位正确的页端,使第一张凭证坐标[0,0]的值在正确位置输出;2)找到凭证间的偏移量,正确设置代码中的LODOP.SET_PRINT_PAGESIZE。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>lodop</title>
<script language="javascript" src="LodopFuncs.js"></script>
<object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0>
<embed id="LODOP_EM" TYPE="application/x-print-lodop" width=0 height=0 PLUGINSPAGE="install_lodop32.exe"></embed>
</object>
<script language="javascript">
function preview() {
var LODOP=getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM'));
LODOP.PRINT_INIT("");
//设置票据的长、宽
LODOP.SET_PRINT_PAGESIZE(1,"239mm","54mm","");
for (i = 0; i <= 10; i++) {
LODOP.NewPage();
LODOP.ADD_PRINT_TEXT(0,0,100,20,"坐标[0,0]:"+i);
LODOP.ADD_PRINT_TEXT(30,0,100,20,"测试"+i);
}
LODOP.PREVIEW();
};
function design() {
var LODOP=getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM'));
LODOP.PRINT_DESIGN();
}
</script>
</head>
<body>
<p>
<input type="button" οnclick="preview()" value="打印预览" name="B1">
<input type="button" οnclick="design()" value="报表设计" name="B2">
</p>
</body>
</html>