有人用过JatoolsPrinterlodop打印插件控件吗

使用jatoolsPrinter实现套打 - 博客频道 - CSDN.NET
水到渠成,让自己慢慢沉淀
分类:Java
最近在工作中遇到了套打的需求,前前后后,花了不少时间,现在总结一下套打的实现方式。
一、设计思路
1、将待打印的文档扫描生成图片,作为网页的背景图片。
2、通过css将待打印的文字进行定位
3、使用jatoolsPrinter插件打印已定位好的网页信息。
二、设计实现
1、下载并安装jatoolsPrinter(目前该插件只支持IE浏览器)插件,
2、计算背景图片的像素
(1)使用直尺在屏幕上,测量打印预览页面的宽度,即红色边框的宽度,在分辨率为的PC上width=220mm。
(2)使用像素尺子工具,测量打印预览页面的宽度像素widthPx,在分辨率为的PC上widthPx=790px
(3)使用直尺测量待套打文档的宽度和长度,比如A4纸的大小为210mm×297mm
(4)计算出背景图片的宽度像素=790*210/220,高度像素=790*297/220,将扫描的图片调整为该大小。
&style type=&text/css&&
margin-top:15
margin-left:0
background-image:url('${ctxPath}/resources/assets/imgs/bg2.png');
background-repeat:no-
2、设计打印页面
我是使用freeMarker来设计的页面
(1)如果页面中待打印元素,不需要进行逻辑处理,直接显示,可以使用绝对定位来实现。
.jp-comp-1{left: 420 top: 130 z-index: 101;}
.jp-comp-2{left: 220 top: 280 z-index: 102;}
.jp-comp-3{left: 555 top: 280 z-index: 103;}
.jp-comp-4{left: 220 top: 335 z-index: 104;}
.jp-comp-5{left: 555 top: 335 z-index: 105;}
.jp-comp-6{left: 220 top: 395 z-index: 106;}
.jp-comp-7{left: 220 top: 455 z-index: 107;}
.jp-comp-8{left: 220 top: 515 z-index: 108;}
.jp-comp-9{left: 220 top: 570 z-index: 109;}
.jp-comp-10{left: 555 top: 570 z-index: 110;}
.jp-comp-11{left: 800 top: 300 z-index: 111;}
.jp-comp-12{left: 850 top: 580 z-index: 112;}
(2)如果打印信息需要经过逻辑判断,则不能使用绝对定位,这是插件的设计缺陷,我在这里浪费了不少时间,希望后人别再走我的弯路。如下图的需求是根据后台传递的业务类型,在相应的方框内打钩。
这里,我们使用margin-left来进行定位。
[#if vo.busTypeName == &注册登记&]
&div style=&float:margin-left:145&&√&/div&
&div style=&float:margin-left:145&&&/div&
换行使用&br&标签。
(3)如下图所示,如果待套打文档是表格,我们可以使用table来进行布局。
&table align=&left& width=&615px& border=&0px&
style=&line-height:21margin-top:-5 margin-left:70text-align:center&&
&td width=&263px&&[#--类别--] &/td&
&td width=&52px&&[#--判定--] &/td&
&td width=&245px&&[#--类别--] &/td&
&td width=&55px&&[#--判定--] &/td&
&pre name=&code& class=&html&&
//此处省略代码
3.打印插件的版本问题
(1)5,4,0,0 版的插件引入代码
&object id=&ojatoolsPrinter& codebase=&jatoolsPrinter.cab#version=5,4,0,0& classid=&clsid:B43DBE2-87FE-& width=&0& height=&0&&
&embed id=&ejatoolsPrinter& type=&application/x-vnd.jatoolsPrinter& width=&0& height=&0&&&/embed&
&script type=&text/javascript&&
var myDoc={
settings:{
topMargin:10,
bottomMargin:200,
leftMargin:20,
orientation:1
enableScreenOnlyClass:true,
documents:document,
copyrights:'杰创软件拥有版权
var jatoolsPrinter = navigator.userAgent.indexOf('MSIE') & -1 ? document.getElementById('ojatoolsPrinter'): document.getElementById('ejatoolsPrinter');
jatoolsPrinter.print(myDoc,false);
window.close();
(2)8,6,0,0版插件的引入代码(更新于)
&!-- 插入打印控件 --&
ID=&jatoolsPrinter& CLASSID=&CLSID:B43DBE2-87FE-&
codebase=&jatoolsPrinter.cab#version=8,6,0,0&&&/OBJECT&
&script type=&text/javascript&&
function doPrint() {
marginIgnored:true,
enableScreenOnlyClass:true,
documents: document,
copyrights: '杰创软件拥有版权
document.getElementById(&jatoolsPrinter&).printPreview(myDoc);
排名:第3175名
(47)(3)(30)(1)(14)(6)(8)(8)(14)(19)(10)(14)(48)(59)(40)(25)(23)(9)(9)(0)(1)有谁用过jatoolsPrinter(杰表)免费版?分页打印怎么做的?了解jatoolsPrinter这个控件的朋友都知道免费版不支持打印自动分页,只能用《divid='page1'》《/div》《d
onhashchange兼容问题求助。。。在iphone端没问题。。安卓微信只触发了几次就没有触发了。。安卓其他浏览器可以的。。就这个搞了这个晚上了微信内置的浏览器bug很多的。。这个只能等微信解决了
fullpage插件怎样设置底部footer,不用position:fixedfullpage插件怎样设置底部footer,不用position:fixed,请各位大神们支招,小弟谢过了自己写个foo
在ubuntu下用火狐打开pusher的个人页面兼容性有问题,有人遇到过这个问题吗ubuntu是15.10版本火狐的版本和内核如图网页出现兼容性问题有人知道怎么解决吗,感觉好别扭,还是说这个是写网页的
java打印不出来最大值最小值啊为什么啊int[]sjava={s1.getSJava(),s2.getSJava(),s3.getSJava(),s4.getSJava(),s5.getSJava(
return如果有2个怎么办呢为什么a==8了,返回的是3呢你可以在递归那里设个短点看看嘛。#*#返回并不是3,传入的参数才是3#*#因为func(a++/2)传到func里的是a/2,不是a++#*
求android中一个定时提醒功能的实现思路!比如在一个记事本中,我写了一项任务,想加一个定时提醒功能,类似闹钟一样,但又和闹钟不一样,闹钟只能定今天的时间,我想定任意一天的任意时刻的一个提醒功能,跪
hadoop集群搭建完成,其他进程都启动了,但是namenode没有启动,查看日志,报错了hadoop集群搭建完成,其他进程都启动了,但是namenode没有启动,查看namenode的日志信息,报错
做一个销售单打印软件,用什么语言、数据库?10C父母做生意,销售记录什么的都是手写,记的到处都是。现在抽空给他们写个软件,主要功能是打印三联销售单,查看和统计记录,用什么语言和数据库实现比较合适,具体
c#服务器段测量数据,多个客户端实时同步显示我有一台服务器,运行用c#写的程序通过串口连接设备实时采集数据。我希望从其他任何电脑利用客户端程序实时动态的显示服务器上采集的数据。如果用数据库实现的话,客
link在划分十六进制数据的同时还要修改十六进制数据link在划分十六进制数据的同时还要修改十六进制数据,请问link查询会不会重新复制数组?那样是不是效率太低了?请大牛回答。确实,linq没法直接修
smarty模板引用overlib出错php使用smarty模板引用overlib时提示错误(模板分界符已经设为&{,}&):Fatalerror:Uncaughtexception'Sm
ios屏幕亮度调整后,锁屏开启恢复原状问题。在程序中,我用一下代码调整亮度[[UIScreenmainScreen]setBrightness:0.2];但是锁屏后再进入应用,屏幕亮度就会恢复到代码调
Linux动态加载动态库无法进去gdb调试动态加载动态库无法单步调试,断点可以设置成功,也能进入断点,就是不能单步调试
C语言编程图形图像仿真即将要进行仿真的课题了。我要做一个模拟仿真的软件。软件有可视化界面,能够根据输入的数据做出曲线图,还能生成一些图像。都点想画图软件那种。我想用C语言开发界面,画图,请问要学那些课
小弟08年在成都高校毕业,毕业后在学校和上海一家公司签了就业协议,但后来因故没去,现在在青岛工作,但是学校当时把我的户口迁移证上写的上海公司的地址,我现在想把户口迁到青岛,去青岛劳务代理中心咨询过,需
添加了一个动态图层,从数据库定时读取目标经纬度数据,将目标添加到动态图层上。请问怎样实现动态图层的刷新来显示动态的目标呢??困扰很久的问题了,显示目标的代码段:try{//ASSUMPTIONS://
请各位大神谈谈vb2005与win7的兼容问题###基本没人用VB2005了,还有什么好谈的。
自己写了个采集程序练手,初学者近几天测试的时候发现个问题,一开始采集A站的时候数据和速度还可以,但越往后采集越慢,数据越少,最后IE打开A站的时候比原来的电话线还要慢后来问用其他采集程序的朋友,他们说var sogou_ad_id=731545;
var sogou_ad_height=90;
var sogou_ad_width=980;}

我要回帖

更多关于 lodop没准备好如何打印 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信