LODOP一个任务里可以自动分页,也可以手动分页,超文本会按照打印项高度或超过纸张会自动分页(相关博文:Lodop打印控件 超文本自动分页),如果是自动分页,是无法知道究竟分了多少页,整个任务打了多少页。
可以通过LODOP.GET_VALUE("PRINTSETUP_PAGE_COUNT","0");//获取页数
在预览或打印前是获取不到的,必须执行了打印预览或打印才能获取到。

该文还用到了个JS方法parseInt(字符串),具体可参考网上该方法的详细介绍,感觉和C#里的强制类型转换差不多,JS里虽然定义的时候都用var,其实也分数据类型。
该方法的作用是把字符串类型强制转换成整数型。

该文测试及结果:测试任务:有两页。
测试1:在回调里给某个全局变量赋值,然后弹出这个全局变量。
测试结果:可以在回调里给全局变量赋值,弹出弹窗显示数字2。

测试2:给全局变量赋的值是:回调获取的返回值,然后加3。在控制台输出变量值。
测试结果:返回的值是字符串类型,+3会被当做字符串连接,控制台输出的是字符串23。

测试3:给全局变量赋的值是:回调获取的返回值强制转换成整数型,然后加3,在控制台输出变量值。
测试结果:控制台没有出现返回值。

测试4:给全局变量赋的值是:回调获取的返回值。然后再对变量赋值:把获得了值的变量强制转换成整数型然后加3。
测试结果:控制台输出的是5,是页数2加上数字3的结果。

测试3和测试4的区别就是,一个是对回调的返回值value进行数据类型转换,一个是对已经赋了值的zhi进行数据类型转换。测试3是zhi=parseInt(value)+3;测试4是zhi=Value;zhi=parseInt(zhi)+3;具体参考测试代码和图示。

测试代码:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WEB打印控件LODOP</title>
<script language="javascript" src="LodopFuncs.js"></script>
</head>
<body>
<a href="javascript:prn0_preview()">打印预览(预览后才能获取页数)</a><br>
<a href="javascript:prn1_preview()">给某全局变量赋值,弹出该变量</a><br>
<a href="javascript:prn2_preview()">给某全局变量赋值并+3,返回值是字符串,字符串连接结果</a><br>
<a href="javascript:prn3_preview()">给回调的值强制转换成整数型,然后赋值给全局变量再加3,无结果</a><br>
<a href="javascript:prn4_preview()">给全局变量赋值,然后把全局变量转换成整数型,加3再赋值给该变量</a><br>
<script language="javascript" type="text/javascript">
var LODOP; //声明为全局变量
var zhi;//声明个全局变量,取名为zhi
function prn0_preview() {//该任务有两页,为强制分页所得
LODOP=getLodop();
LODOP.PRINT_INIT("");
LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本内容一");
LODOP.NEWPAGE();
LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本内容一");
LODOP.PREVIEW();
};
function prn1_preview() {//测试再回调里给全局变量赋值,并弹出这个全局变量
LODOP=getLodop();
if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){zhi=Value;alert(zhi);};
var stResult=LODOP.GET_VALUE("PRINTSETUP_PAGE_COUNT","0");//获取页数
if (!LODOP.CVERSION) {zhi=stResult; alert(zhi);}//lodop直接获取返回值
};
function prn2_preview() {//给返回值+3,由于是字符串,会当作字符串连接
LODOP=getLodop();
if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){zhi=Value+3;console.log(zhi);};
var stResult=LODOP.GET_VALUE("PRINTSETUP_PAGE_COUNT","0");//获取页数
if (!LODOP.CVERSION) { }//支线,不写了,这里只测c-lodop
};
function prn3_preview() {//给回调的值强制转换成整数型,然后赋值给全局变量再加3
LODOP=getLodop();
if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){zhi=parseInt(value)+3;console.log(zhi);};
var stResult=LODOP.GET_VALUE("PRINTSETUP_PAGE_COUNT","0");//获取页数
if (!LODOP.CVERSION) {}//支线,不写了,这里只测c-lodop
};
function prn4_preview() {//给全局变量赋值,然后把全局变量转换成整数型,加3再赋值给该变量
LODOP=getLodop();
if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){zhi=Value;zhi=parseInt(zhi)+3;console.log(zhi);};
var stResult=LODOP.GET_VALUE("PRINTSETUP_PAGE_COUNT","0");//获取页数
if (!LODOP.CVERSION) {}//支线,不写了,这里只测c-lodop
};
</script>
</body>

图示:

c-lodop获取任务页数-回调里给全局变量赋值并加减的更多相关文章

  1. ajax回调函数,全局变量赋值后,ajax外无法获取的解决

    1 ajax回调函数内,function的执行与ajax外是异步的,常导致全局变量赋值后,再次使用此变量人无法获取. 所以,可以把需要的步骤,独立放在functuon中,在ajax回调函数中执行.可较 ...

  2. 获取PDF页数

    下载pdfbox这个包,这俩个方法都可以: PDDocument doc = PDDocument.load("e://aa.pdf"); System.out.println(d ...

  3. mvc自定义分页(加页数的)(转)

    1.引言 在MVC开发中我们经常会对数据进行分页的展示.通过分页我们可以从服务端获取指定的数据来进行展示.这样既节约了数据库查询的时间也节约了网络传输的数据量.在MVC开发中使用的比较多的应该是MVC ...

  4. dotnet获取PDF文件的页数

    #region 获取PDF文件的页数 private int BytesLastIndexOf(Byte[] buffer, int length, string Search) { if (buff ...

  5. [开发笔记]-C#获取pdf文档的页数

    [操作pdf文档]之C#判断pdf文档的页数: /// <summary> /// 获取pdf文档的页数 /// </summary> /// <param name=& ...

  6. c#获取word文件页数、字数

    引用命名空间:using Microsoft.Office.Interop.Word; //启动Word程序 Application myWordApp = new ApplicationClass( ...

  7. c#获取pdf文件页数

    引用命名空间:using iTextSharp.text.pdf; string filePath = Server.MapPath("/upload/123.pdf"); //文 ...

  8. LODOP 获取打印设计代码不带INIT初始化语句

    前面的博文生成JS代码模版和文档式模版,生成的是带初始化语句的模版,如果想要打印多个,可以循环多个任务,什么是一个任务,可查看本博客相关博文:Lodop打印语句最基本结构介绍(什么是一个任务)一个任务 ...

  9. LODOP纸张/打印机/份数/打印方向/双面打印 简短问答

    纸张#如何设置纸张纸张设置,参考样例5 http://www.c-lodop.com/demolist/PrintSample5.html纸张的一些优先级 http://www.c-lodop.com ...

随机推荐

  1. 语法速学,返回数组 repeated修饰符

    重新编写proto文件 syntax = "proto3"; package services; import "google/api/annotations.proto ...

  2. Tomcat 部署多个web项目

    1.若Tomcat的端口设置为10000,则http://localhost:10000访问的目录是 webapps 2.Service.xml中host内配置Context标签,path+docba ...

  3. ModuleNotFoundError: No module named 'cv2'

    pip3 install opencv-python

  4. 读取本地word 浏览器下载(设置编码格式)

    String filePath = "C:\\word\\报告.doc"; BufferedWriter bos = null; BufferedReader bis = null ...

  5. java.io.FileNotFoundException: D:\e (拒绝访问。)

    这是因为访问的文件地址是文件夹而不是,具体的文件,把路径改为具体的文件就可以了. 参考文章:https://blog.csdn.net/w405722907/article/details/78610 ...

  6. Linux/Centos下安装部署phantomjs

    PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, ...

  7. 小福bbs-冲刺日志(第七天)

    [小福bbs-冲刺日志(第七天)] 这个作业属于哪个课程 班级链接 这个作业要求在哪里 作业要求的链接 团队名称 小福bbs 这个作业的目标 目前完成静态 作业的正文 小福bbs-冲刺日志(第七天) ...

  8. WEB传参调用EXE

    WEB传参调用EXE 让浏览器运行本地的EXE程序.例如:点击浏览器的一个下载链接,就会打开本地的迅雷. 1)注册表注册 Windows Registry Editor Version 5.00 [H ...

  9. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring-mybatis.xml]: Initialization of bean failed

  10. [Java.File]如果写 File filesFolder = new File("/") ,在windows系统中,filesFolder 会去找哪个盘符? 答案:程序运行路径的根盘符.

    首先这段代码在Unix/Linux系统上会去找根路径,但在Windows系统上会去找C:盘还是D:盘还是其它盘呢? 其实它会去找user.dir所在盘符的根目录,user.dir即用户的当前工作目录, ...