LODOP打印table不切行TableRowThickNess

不切行的调整方法有三种:
1.简单表格,不嵌套合并等,可以用ADD_PRINT_TABLE输出,该 语句不切行,相关博文:LODOP设置超文本不自动分页的方法
2.进入打印设计,调整打印项到合适的高度,在高度处分页,不切行,相关博文:Lodop打印控件 超文本自动分页

3.用ADD_PRINT_HTM输出,并调整TableRowThickNess分页粒度。该文主要测试。

由于1中的语句本来就不切行,这里再演示下后两种方法,用打印设计进行调整到合适的高度,不切行,和用htm语句输出,调整分页粒度。
图1的表格是简单表格,宽高一样,且无嵌套合并行合并列等。

上面1链接到的博文可以看出,ADD_PRINT_TABLE对于超过纸张的单元格,会隐藏掉,不会切行到下一页显示。
如果是非常复杂的表格,还可以不用自动分页,采用手动分页,自己组织每页的数据

不切行的方法简短问答:
超文本超过设置的打印项高度就会自动分页,可通过调整超文本打印项的高度,控制当前页面输出的多少内容。(打印项高度可在打印设计界面可视化调整)
减小打印项高度,不要紧贴纸张输出。
,单个表格输出 可以用add_print_table,这个语句不切行。
如果有合并行、嵌套表格等复合表格 可以用 add_pirnt_htm, 切行时调整分页粒度TableRowThickNess,参考 样例30
http://www.c-lodop.com/demolist/PrintSample30.html
手动分页 参考样例30 http://www.c-lodop.com/demolist/PrintSample30.html

测试代码:

<div id="div1">
    <table border=1 cellSpacing=0 cellPadding=0 style="border-collapse:collapse;width:170pt;">
        <tr>
            <td style="width:70pt;">分析差异点,因浏览器版本不同遵循的html标准不同</td>  
            <td style="width:50pt;">分析差异点</td> 
            <td style="width:20pt;">排查样式</td>
            <td style="width:30pt;">在ie下不同版本仿真情况下验证差异</td>
        </tr>
同上,多行,。。。省略。。。。

    </table>
</div>
<a href="javascript:prn1_preview()">htm高度100%的自动分页</a><br>
<a href="javascript:prn2_preview()">调整分页粒度的自动分页</a><br>
<a href="javascript:prn3_preview()">调整打印项高度的自动分页</a><br>
<a href="javascript:prn4_preview()">调整打印项高度到合适的自动分页</a><br>
<script language="javascript" type="text/javascript">   
        var LODOP; //声明为全局变量 
    function prn1_preview() {//高度100%,纸张最下方正好有单元格显示不全,自动分页,切行
        LODOP=getLodop(); 
        LODOP.PRINT_INIT("");
        LODOP.SET_PRINT_PAGESIZE(1,1200,1000,"");
        LODOP.ADD_PRINT_HTM(0,0,"100%","100%",document.getElementById("div1").innerHTML);
        //LODOP.PRINT_DESIGN();
        LODOP.PREVIEW();    
    };
        function prn2_preview() {//高度100%,调整分页粒度,分页不切行
        LODOP=getLodop(); 
        LODOP.PRINT_INIT("");
        LODOP.SET_PRINT_PAGESIZE(1,1200,1000,"");
        LODOP.ADD_PRINT_HTM(0,0,"100%","100%",document.getElementById("div1").innerHTML);
        LODOP.SET_PRINT_STYLEA(0,"TableRowThickNess",100);
        //LODOP.PRINT_DESIGN();
        LODOP.PREVIEW();    
    };
   function prn3_preview() {//调整打印项高度具体值,小于纸张,被切行,一行分两行
        LODOP=getLodop(); 
        LODOP.PRINT_INITA(0,0,"120mm","100mm","");
        LODOP.SET_PRINT_PAGESIZE(1,1200,1000,"");
        LODOP.ADD_PRINT_HTM(10,10,454,359,document.getElementById("div1").innerHTML);
        LODOP.PRINT_DESIGN();
        //LODOP.PREVIEW();    
    };
    function prn4_preview() {//调整打印项高度具体值,到合适值,分页不切行
        LODOP=getLodop(); 
        LODOP.PRINT_INIT("");
        LODOP.SET_PRINT_PAGESIZE(1,1200,1000,"");
        LODOP.ADD_PRINT_HTM(0,0,454,300,document.getElementById("div1").innerHTML);
        LODOP.PRINT_DESIGN();
        //LODOP.PREVIEW();    
    };
</script> 

图示:图中是两种不切行方法,由于是简单表格,没有嵌套等复杂的,也可以用本文的1的方法,直接用add_print_table输出。如果表格很复杂,容易切行,可以用分页粒度调整。

如果表格页数很多,每页下方到达的行都差异很大 ,也可以用手动分页,每页多行由自己输出决定 ,不用自动分页功能。

posted @ 2019-09-05 15:58  花谢悦神  阅读(1083)  评论(0编辑  收藏  举报