1. 程式人生 > >關於連續列印套打憑證時,垂直方向錯位的解決辦法!

關於連續列印套打憑證時,垂直方向錯位的解決辦法!

以票據的真實長是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" onclick="preview()" value="列印預覽" name="B1">
 <input type="button" onclick="design()" value="報表設計" name="B2">
</p>

</body>
</html>