Lodop控件NewPage();测试输出空白页

LODOP.NewPage();和LODOP.NewPageA();是强制分页语句,两者的区别可查看本博客的相关博文:Lodop强制分页LODOP.NewPage()和LODOP.NewPageA()
可在打印项之间强制分页,手动分页,如果一个任务在不添加打印项的情况下一开始就分页,结果会怎样?如果强制分页之间没有任何打印项又会怎样?该文就是测试这两个的。
如果按照想法,一开始没打印项就强制分页,那么第一页应该是空白页,分页语句之间没有打印项,应该也会是空白页,实际测试发现不是这样的。

一开始没打印项就强制分页,在第一个打印项之前,不管多少次分页,都不会有空白页。
有打印项之后,该打印项会作为第一页,往后如果强制分页之间没有打印项,会显示成空白页。

由于多页预览截图较麻烦,因此把纸张设置小,然后用xps虚拟打印机打印出文件,一块用xps查看器查看,一起截图。(打印开发避免浪费纸张,虚拟打印机测试是很有必要的)
效果如图所示:

测试中JS代码:

<script language="javascript" type="text/javascript">   
        var LODOP; //声明为全局变量 
    function prn1_preview() {    //单个任务循环
      LODOP=getLodop();  
      LODOP.PRINT_INIT("");//初始化在循环中
      LODOP.SET_PRINT_PAGESIZE(1,300,500,"");
      //不会有空白页
      LODOP.NewPage();
      //不会有空白页
      LODOP.NewPage();
      //不会有空白页
      LODOP.NewPage();
      LODOP.ADD_PRINT_TEXT(75,6,100,20,"文本");//该任务首个打印项
      LODOP.NewPage();
      //空白页
      LODOP.NewPage();
      //空白页
      LODOP.NewPage();
      LODOP.ADD_PRINT_TEXT(75,6,100,20,"文本2");//该任务第二个打印项
      LODOP.PREVIEW();
//    LODOP.PRINT_DESIGN();
    };
</script> 

效果:

这里没测试如果NewPage();在最后,也就是最后一个打印项后多次加强制分页语句,后来测了一下,效果和在初始化后打印项之前加一样,都不会强制分出空白页。这里没测试如果NewPage();在最后,也就是最后一个打印项后多次加强制分页语句,后来测了一下,效果和在初始化后打印项之前加一样,都不会强制分出空白页。

原文地址:https://www.cnblogs.com/huaxie/p/9995703.html