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 ...
随机推荐
- 项目架构&架构部署&网站分析&网站优化
一.架构演变 一个项目至少由三层内容组成:web访问层.数据库层.存储层 初级阶段 单体阶段 常见场景:项目初期 部署特点:所有应用服务都在一台主机 应用特点:开发简单 应用/数据分离阶段 常见场景: ...
- python链接oracle数据库以及数据库的增删改查实例
初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...
- AQS面试题
问:什么是AQS? 答:AQS的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包下面.AQS是一个用来构建锁和同步器的框架 ...
- Java获取类方法上的注解
, fullName.indexOf("$$")); try { clz = Class.forName(fullName); } catch (ClassNotFoundExce ...
- 洛谷P1325 雷达安装
题目 考虑对于一个小岛,如果有雷达可以覆盖它,则这些雷达肯定在一个区间里,则原题内容则变为区间选点问题 #include <bits/stdc++.h> using namespace s ...
- bee api new
bee api appcode -conn="root:root@tcp(127.0.0.1:3306)/test"
- C++2.0新特性(四)——<decltype、lambda>
一.关键字decltype 引入新关键字decltype可以让编译器找出表达式的类型,为了区别typeof,以下做一个概念区分: typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型 ...
- UML图规范
1.子类与父类的继承关系用空心三角形+实线表示. 2.类实现接口用空心三角形+虚线表示.(实现关系) 3.类与类之间的关系用实线箭头表示.(关联关系) 关联关系还可细分为三类:单项关联(下图).双 ...
- centos7--zabbix3.4微信报警
1.申请企业微信 1.1 注册企业微信的地址 https://qy.weixin.qq.com/ 1.2 按照提示进行填写 1.3 完善个人信息: 1.4 创建应用 根据提示创建应用: 1.5 筛出重 ...
- Linux压缩和解压类指令
一.gzip / gunzip 指令 gzip 用于压缩文件,gunzip 用于解压文件. 基本语法gizp 文件 (功能描述:只能将文件压缩为*.gz文件)gunzip 文件.gz (功能描述 ...