c-lodop获取任务页数-回调里给全局变量赋值并加减
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获取任务页数-回调里给全局变量赋值并加减的更多相关文章
- ajax回调函数,全局变量赋值后,ajax外无法获取的解决
1 ajax回调函数内,function的执行与ajax外是异步的,常导致全局变量赋值后,再次使用此变量人无法获取. 所以,可以把需要的步骤,独立放在functuon中,在ajax回调函数中执行.可较 ...
- 获取PDF页数
下载pdfbox这个包,这俩个方法都可以: PDDocument doc = PDDocument.load("e://aa.pdf"); System.out.println(d ...
- mvc自定义分页(加页数的)(转)
1.引言 在MVC开发中我们经常会对数据进行分页的展示.通过分页我们可以从服务端获取指定的数据来进行展示.这样既节约了数据库查询的时间也节约了网络传输的数据量.在MVC开发中使用的比较多的应该是MVC ...
- dotnet获取PDF文件的页数
#region 获取PDF文件的页数 private int BytesLastIndexOf(Byte[] buffer, int length, string Search) { if (buff ...
- [开发笔记]-C#获取pdf文档的页数
[操作pdf文档]之C#判断pdf文档的页数: /// <summary> /// 获取pdf文档的页数 /// </summary> /// <param name=& ...
- c#获取word文件页数、字数
引用命名空间:using Microsoft.Office.Interop.Word; //启动Word程序 Application myWordApp = new ApplicationClass( ...
- c#获取pdf文件页数
引用命名空间:using iTextSharp.text.pdf; string filePath = Server.MapPath("/upload/123.pdf"); //文 ...
- LODOP 获取打印设计代码不带INIT初始化语句
前面的博文生成JS代码模版和文档式模版,生成的是带初始化语句的模版,如果想要打印多个,可以循环多个任务,什么是一个任务,可查看本博客相关博文:Lodop打印语句最基本结构介绍(什么是一个任务)一个任务 ...
- LODOP纸张/打印机/份数/打印方向/双面打印 简短问答
纸张#如何设置纸张纸张设置,参考样例5 http://www.c-lodop.com/demolist/PrintSample5.html纸张的一些优先级 http://www.c-lodop.com ...
随机推荐
- 既然 transform 不适用于某些内联元素,那咱们就把这些元素变成 inline-block 或 block 就行了。
既然 transform 不适用于某些内联元素,那咱们就把这些元素变成 inline-block 或 block 就行了.
- grep命令选项
-c:只输出匹配行的计数. -I:不区分大 小写(只适用于单字符). -h:查询多文件时不显示文件名. -l:查询多文件时只输出包含匹配字符的文件名. -n:显示匹配行及 行号. -s:不显示不存在或 ...
- YAML_05 定义一个变量创建用户,设置密码
ansible]# vim user2.yml --- - hosts: cache remote_user: root vars: user: wangwu tasks: ...
- Linux 文件系统引起的云盘文件系统异常导致 MySQL 数据页损坏事故恢复复盘
事故的起因是因为当我访问某个数据库的某个表的时候,MySQL 立即出现崩溃并且去查看 MySQL 的错误日志出现类似信息 --09T05::.232564Z [ERROR] InnoDB: Space ...
- VMware安装VMwaretools
默认点击“安装VMware Tools(T)”选项下载好安装包 下载的安装包放在计算机的media目录下 进入/media/ubuntu14-04/VMware Tools目录: cd /media/ ...
- 「雅礼集训 2018 Day2」农民
传送门 Description 「搞 OI 不如种田.」 小 D 在家种了一棵二叉树,第 ii 个结点的权值为 \(a_i\). 小 D 为自己种的树买了肥料,每天给树施肥. 可是几天后,小 D 却 ...
- java 跳出多重循环
public class Main { public static void main(String[] args) { System.out.println("start"); ...
- HSCR | Hirschsprung‘s disease | 巨结肠 | 研究进展
这个网站介绍得很详细:Hirschsprung Disease,基本的定义.病因.诊断. Hirschsprung disease — integrating basic science and cl ...
- 笔记 - DBSherlock: A Performance Diagnostic Tool for Transactional Databases
OLTP系统的问题很难排查和定位,这就是为什么要花那么多钱去请DBA 因为TP系统的请求很多都是毫秒级别,而且同时有大量的并发,所以由于资源,或随机的原因导致的问题,很难去定位根因 哪怕数据库系统尤其 ...
- http://man7.org/linux/man-pages/man2/epoll_wait.2.html
https://segmentfault.com/a/1190000007240744 https://baike.baidu.com/item/Glibc http://man7.org/linux ...