LODOP中可以用ADD_PRINT_TABLE、ADD_PRINT_HTM、ADD_PRINT_HTML、ADD_PRINT_TBURL等可以輸出超文本的表格,超文有超過打印項高度或紙張高度自動分頁的特點,具體可查看本博客相關博文:LODOP中ADD_PRINT_TABLE、HTM、HTML表格自動分頁測試
如上博文,ADD_PRINT_HTM自動分頁后,可以補線,第二頁的表格上方可還存在表格線。
但是如果table標簽不加border樣式,所有border樣式都加在td里,那么自動分頁后就會出現表格線上方缺失的情況。
解決方法是在table標簽里加border樣式,直接在table標簽里加border比較好。
用css樣式加給table標簽加border也可以,由於瀏覽器解析等也可能存在一些問題。
最好是:直接在table標簽里加border屬性。
本文三個問題:
1.table自動分頁,分頁后的上邊緣沒有邊框。
2.table自動分頁后線條后面有多余部分。
可直接在table標簽里加border屬性。<table border="1"。。。這樣。
3.table中表格線沒有連起來。
在table標簽里加cellspacing="0" cellpadding="0"試試。
代碼:
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>WEB打印控件LODOP</title> <script language="javascript" src="LodopFuncs.js"></script> </head> <body> <div id="div1"> <table cellspacing="0" cellpadding="0"> <tr> <td>lodop</td> <td>c-lodop</td> <td>c-lodop</td> </tr> <tr> <td>text</td> <td>html</td> <td>html</td> </tr> <tr> <td>LODOP</td> <td>C_LODOP</td> <td>HTML</td> </tr> </table> </div> <div id="div2"> <table cellspacing="0" cellpadding="0" border="1"> <tr> <td>lodop</td> <td>c-lodop</td> <td>c-lodop</td> </tr> <tr> <td>text</td> <td>html</td> <td>html</td> </tr> <tr> <td>LODOP</td> <td>C_LODOP</td> <td>HTML</td> </tr> </table> </div> <a href="javascript:prn1_preview()">table分頁補線</a><br> <script language="javascript" type="text/javascript"> var LODOP; //聲明為全局變量 function prn1_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); var strStyle1="<style>td {border: 1 solid #000000;border-collapse:collapse; }</style>"; var strStyle2="<style>table,td{border: 1 solid #000000;border-collapse:collapse; }</style>"; var strHtml=strStyle1+document.getElementById("div1").innerHTML;//td加了border樣式 var strHtml2=strStyle2+document.getElementById("div1").innerHTML;//td和table加了css樣式的border樣式 var strHtml3=strStyle1+document.getElementById("div2").innerHTML;//td加了border樣式,table標簽本身加了boder="1" LODOP.ADD_PRINT_HTM(10,10,200,32,strHtml); LODOP.ADD_PRINT_HTM(60,10,200,32,strHtml2); LODOP.ADD_PRINT_HTM(120,10,200,32,strHtml3); LODOP.PRINT_DESIGN(); //LODOP.PREVIEW(); }; </script> </body>
圖示
1.只在td里加border,table不加border樣式,分頁后上邊緣沒有線。
2.在table里加css樣式,設置border,分頁后下邊緣凸出有多余部分。
3.直接在table標簽里加border屬性,td里也加border,正常。

如果出現的不是分頁后表格沒有上邊緣,而是單元格之間有空格,看起來像是線沒有連接起來一樣,這種狀況:
1.可以在table標簽里設置cellspacing="0" cellpadding="0"。
2.給table也加css的border樣式。
3.給table標簽直接加加border=“”,加cellspacing="0" cellpadding="0"。
如圖,第一個表格table標簽本身沒加border,也沒加cellspacing="0" cellpadding="0",只給td加樣式。
有前面可知,不給tablel標簽加border,會導致自動份后確實上邊緣線,這個也不加cellspacing="0" cellpadding="0",導致單元格間隙,出現單元格連不起來的狀況。
代碼:
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>WEB打印控件LODOP</title> <script language="javascript" src="LodopFuncs.js"></script> <style>table,td {border:solid 1px black;border-collapse: collapse }</style> </head> <body> <div id="div1"> <!--<table cellspacing="0" cellpadding="0" border="1">--> <table> <tr> <td>lodop</td> <td>c-lodop</td> <td>c-lodop</td> </tr> <tr> <td>text</td> <td>html</td> <td>html</td> </tr> <tr> <td>LODOP</td> <td>C_LODOP</td> <td>HTML</td> </tr> </table> </div> <a href="javascript:prn1_preview()">打印預覽純文本和超文本樣式</a><br> <script language="javascript" type="text/javascript"> var LODOP; //聲明為全局變量 function prn1_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); var strStyle1="<style>td {border:solid 1px black;border-collapse: collapse }</style>"; var strStyle2="<style>table,td{border:solid 1px black;border-collapse: collapse }</style>"; var strHtml=strStyle1+document.getElementById("div1").innerHTML; var strHtml2=strStyle2+document.getElementById("div1").innerHTML; LODOP.ADD_PRINT_HTM(10,10,200,32,strHtml); LODOP.ADD_PRINT_HTM(60,10,200,32,strHtml2); LODOP.PRINT_DESIGN(); //LODOP.PREVIEW(); }; </script> </body>
圖示:

本文用了 solid 1px black;1 solid #000000;等樣式,似乎哪種寫法都可以,但是瀏覽器有些可能會不認。
比如border:1 solid #000000;這個,可以查看瀏覽器開發者模式,看到這個屬性上有嘆號Invalid property value,並且頁面可能無法顯示,雖然lodop中有可能可以,但是建議樣式用比較規范的寫法。關於table的樣式,以后自己會測試一些。
此外,如果是add_print_table表格和上方表格線連不起來問題,這種也是表格線有空格,可查看本博客另一篇博文:LODOP中tfoot和tbody中間線連不起來
