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

时间:2023-12-23 12:33:44

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>

效果:

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

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