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();强制分页,后面的内容会从前面的内容打印完的地方另起一页打印。

    一颗安安静静的小韭菜。文中如果有什么错误,欢迎指出。
  • 相关阅读:
    NLP---word2vec的python实现
    matplotlib---Annotation标注
    matplotlib---legend图例
    matplotlib---设置坐标轴
    windows下右键新建md文件
    vue+webpack+npm 环境内存溢出解决办法
    element-ui tree树形组件自定义实现可展开选择表格
    vue-动态验证码
    ES6 数组函数forEach()、map()、filter()、find()、every()、some()、reduce()
    eslint配置文件规则
  • 原文地址:https://www.cnblogs.com/c-Ajing/p/13448386.html
Copyright © 2011-2022 走看看