zoukankan      html  css  js  c++  java
  • LODOP打印分页出现空白页

    最近项目中使用lodop控件进行打印操作,由于之前也使用过所以并没有感觉有什么问题,不过在进行超文本打印分页的时候却发现连续出现了空白页,这是我很奇怪,于是第一反应就是给分页错误的超文本内容加上背景色,查看打印范围:

    LODOP.ADD_PRINT_HTM("15mm", "5mm", "190mm", "263mm", '<style>*{background:#000}</style>'+escape2Html(data.fourthPage));
    

    加入了<style>*{background:#000}</style>预览结果:
    在这里插入图片描述
    可以看到超文本打印范围并没有超出打印区域,而且实际情况是连续出现了3张空白页,所以基本可以排除是由于超文本中空白空间太多而造成的分页错误。继续查看js代码,在同事的提醒下发现在这个分页语句前面,我还用了3个LODOP.NewPage()强制分页:

    LODOP.ADD_PRINT_HTM("2mm", "0mm", "206mm", "100%", firstPageStyle+data.firstPage);
    LODOP.NewPage();
    LODOP.ADD_PRINT_HTM("2mm", left, "190mm", "297mm", data.secondPage);
    LODOP.NewPage();
    LODOP.ADD_PRINT_HTM("2mm", left, "190mm", "297mm", data.thirdPage);
    LODOP.NewPage();
    

    会不会是这个原因呢,对比以前的打印js代码我把LODOP.NewPage()改成了LODOP.NewPageA();重新预览打印发现这次分页终于正常了。
    LODOP.NewPage()和LODOP.NewPageA()的区别,如果前面打印项自动分页不止一页,如果想要后面的页不重叠分页后的内容,应该用LODOP.NewPageA()。
    LODOP.NewPage();强制分页,前面的自动分页会覆盖后面的页面,和后面页面内容同时输出。
    LODOP.NewPageA();强制分页,前面的自动分页,后面的页面会在自动分页的后面添加新页面。
    简单解释就是:LODOP.NewPage();强制分页,后面的内容会从第二页开始打印,如果第二页本来有内容会产生覆盖。LODOP.NewPageA();强制分页,后面的内容会从前面的内容打印完的地方另起一页打印。

    一颗安安静静的小韭菜。文中如果有什么错误,欢迎指出。
  • 相关阅读:
    【掉下巴】枪的制造现场
    不引入第三个变量交换两个变量的方法
    [转]科学计算经典算法
    [小练eVC]常用控件之微调按钮
    【收购】LSI 40亿美元并购Agere
    VB6.0不支持鼠标滚轮的解决办法
    一个简单的BP网络C语言程序
    [转]想成为嵌入式程序员应知道的0x10个基本问题
    [zt]关于左值"lvalue"和右值"rvalue"的一点理解
    [掉下巴]细数非洲大山的肘下亡魂
  • 原文地址:https://www.cnblogs.com/c-Ajing/p/13448386.html
Copyright © 2011-2022 走看看