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

    一颗安安静静的小韭菜。文中如果有什么错误,欢迎指出。
  • 相关阅读:
    用VisualC#.NET编写服务器日期控件
    全局程序集缓存GAC是什么概念
    HttpRequest.Filter 属性
    创建ASP.Net自定义控件
    js/javascript 判断变量未定义
    DevExpress 汉化(简单、实用、快速)
    一个页面标题和过滤输出的解决方案
    用VisualC#.NET编写服务器日期控件(源碼)
    ASP.NET多语言支持组件简介
    ASP.NET服务器控件编程浅析
  • 原文地址:https://www.cnblogs.com/c-Ajing/p/13448386.html
Copyright © 2011-2022 走看看