LODOP中table自動分頁補線加border


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中間線連不起來


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM