java (lodop) 打印实例

首先在lodop官网下载相关文件(js、css等):http://www.lodop.net/download.html

在下载好的包里 除了html页面 其他的js、css等拷贝到项目的一个目录下、新建个lodop文件夹。

lodop主要接口函数如下:
● PRINT_INIT(strPrintTaskName)打印初始化
● SET_PRINT_PAGESIZE(intOrient,intPageWidth,intPageHeight,strPageName)设定纸张大小
● ADD_PRINT_HTM(intTop,intLeft,intWidth,intHeight,strHtml)增加超文本项
● ADD_PRINT_TEXT(intTop,intLeft,intWidth,intHeight,strContent)增加纯文本项
● ADD_PRINT_TABLE(intTop,intLeft,intWidth,intHeight,strHtml)增加表格项
● ADD_PRINT_SHAPE(intShapeType, intTop,intLeft, intWidth, intHeight,intLineStyle ,intLineWidth ,intColor)画图形
● SET_PRINT_STYLE(strStyleName, varStyleValue)设置对象风格
● PREVIEW打印预览
● PRINT直接打印
● PRINT_SETUP打印维护
● PRINT_DESIGN打印设计

在页面头部加入下面等信息、这里注意的是引入的文件地址

<script language="javascript" src="../res/lodop/LodopFuncs.js"></script>
<object  id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0> <embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0 pluginspage="../res/lodop/install_lodop32.exe"></embed>
</object> 

打印有两种方式

第一种可以直接在js代码拼接打印信息

var LODOP=getLodop();
LODOP.PRINT_INIT("test套打");
LODOP.SET_PRINT_PAGESIZE(1,'200mm','152.4mm','');    //设置纸张高度
LODOP.ADD_PRINT_TEXT(10,250,157,20,'客户公司名称');     //这里的数字是调整相应位置       
LODOP.ADD_PRINT_TEXT(432,149,157,20,'联系电话');  
//LODOP.PRINT();  //直接打印LODOP.PREVIEW();  //打印预览

第二种是 html代码写好打印信息,再到js 获取html内容 用lodop进行添加

  var LODOP=getLodop();LODOP.PRINT_INIT("test套打");LODOP.ADD_PRINT_HTM(10,55,"100%","100%",document.getElementById("textarea01").value);//LODOP.PRINT(); //直接打印LODOP.PREVIEW(); //打印预览<textarea rows="15"  cols="80" style="display: none;" id="textarea01">
<table   border="1" width="360" height="220" style="border-collapse:collapse;border:solid 1px" bordercolor="#000000"><tr><td width="100%" height="240"><p align="center"> <font face="隶书" size="5" style="letter-spacing: 10px">郭德强</font><p align="center"><font face="宋体" size="3">科学家</font></p><p align="left"><font face="宋体" size="3"> 地址:中国北京社会科学院附近东大街西胡同</font></p><p align="left"><font face="宋体" size="3"> 电话:010-88811888</font></p><p><br>       </p></td></tr>
</table>
</textarea>

下面附上测试页面的代码

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head><script type="text/javascript" src="../res/vankewebstyle/js/jquery-1.9.0.js"></script>
<script language="javascript" src="../res/lodop/LodopFuncs.js"></script>
<object  id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0> <embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0 pluginspage="../res/lodop/install_lodop32.exe"></embed>
</object> 
<script type="text/javascript">$(function(){$("#kkk").click(function(){var LODOP=getLodop();LODOP.PRINT_INIT("test套打");LODOP.ADD_PRINT_HTM(10,55,"100%","100%",document.getElementById("textarea01").value);/*  LODOP.SET_PRINT_PAGESIZE(1,'200mm','152.4mm','');    //设置纸张高度LODOP.ADD_PRINT_TEXT(10,250,157,20,'客户公司名称');            LODOP.ADD_PRINT_TEXT(432,149,157,20,'联系电话');   */ //LODOP.PRINT();LODOP.PREVIEW();})})</script>
<body>
<embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0 pluginspage="../res/lodop/install_lodop32.exe"></embed><textarea rows="15"  cols="80" style="display: none;" id="textarea01">
<table   border="1" width="360" height="220" style="border-collapse:collapse;border:solid 1px" bordercolor="#000000"><tr><td width="100%" height="240"><p align="center"> <font face="隶书" size="5" style="letter-spacing: 10px">郭德强</font><p align="center"><font face="宋体" size="3">科学家</font></p><p align="left"><font face="宋体" size="3"> 地址:中国北京社会科学院附近东大街西胡同</font></p><p align="left"><font face="宋体" size="3"> 电话:010-88811888</font></p><p><br>       </p></td></tr>
</table>
</textarea>   
<input type="button"  value="打印凭证" id="kkk"/>
</body>
</html>

补充:
用了window的print方法 在其它浏览(360、等)不能预览 ,而是直接弹出打印设置、只有谷歌弹出了打印预览的界面

$("#kkk").click(function(){dy1html=document.getElementById("textarea01").value;   //获取打印内容window.document.body.innerHTML=dy1html;   //将获取的内容替换当前页window.print();  //打印当前页document.location.reload();  //重新加载页面})

转载:https://www.cnblogs.com/dscs/p/5436127.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570160.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入了解java虚拟机(JVM) 第四章 对象的创建

一、对象的创建过程 对象的创建过程大致可以分为六步&#xff0c;其中对象的分配尤为重要&#xff1a; 二、对象分配内存 一般来说对象分配内存有两种方式&#xff1a; 第一种是指针碰撞&#xff0c;这是一种比较理想的方式&#xff1a;如果Java堆是绝对规整的&#xff1a;一边…

LODOP使用问题解决汇总

LODOP 打印控件出现问题及修改方法 问题1 、打印网页时页面出现电脑设置的底色如何解决&#xff1f; 解决方法 &#xff1a;按照如下方式添加HTML页面 var strHTML"<body stylemargin:0;background-color: white>"document.getElementById("table02&qu…

[UWP]使用Picker实现一个简单的ColorPicker弹窗

[UWP]使用Picker实现一个简单的ColorPicker弹窗 原文:[UWP]使用Picker实现一个简单的ColorPicker弹窗在上一篇博文《[UWP]使用Popup构建UWP Picker》中我们简单讲述了一下使用Popup构建适用于MVVM框架下的弹窗层组件Picker的过程。但是没有应用实例的话可能体现不出Picker相对于…

java sort排序

问题&#xff1a;对list中的对象中的属性值排序&#xff1a; User对象&#xff1a; public class User {private int id;private String Name; public int getid() {return id;}public void setid(int id) {this.id id;}public String getName() {return Name;}pub…

C# WebRequest.Create 锚点“#”字符问题

背景 在与后台API接口对接时&#xff0c;如将网页Url作为参数请求数据时&#xff0c;如果是锚点参数&#xff0c;则会丢失。 锚点参数 请求通过WebRequest.Create创建一个WebRequest&#xff1a; 1 var uri "https://id.test.xxx.com/api/v1/auth/sso/url?redirectUrlht…

Postgresql 按30分钟、小时、天分组

按30分钟统计&#xff1a; shool_time格式为varchar&#xff0c; 例如 201911050808、201911050820、201911050842 分组后结果&#xff1a; 20191105 0800 20191105 0830 20191105 0900 20191105 0930 注&#xff1a;小于30分钟的按00统计&#xff0c;大于30分钟的按30统计 SEL…

Java calendar加减时间

//时间格式可以改成自己想要的格式&#xff0c;例yyyy-MM-dd HH:mm等等。 private final static String formatyyyyMMddHHMM "yyyyMMddHHmm";String currTime "201911051500";SimpleDateFormat yearFormat new SimpleDateFormat(formatyyyyMMddHHMM); D…

免费的编程中文书籍索引(2018第三版)

之前我在 github 上整理了来一份&#xff1a;free-programming-books-zh_CN&#xff08;免费的计算机编程类中文书籍&#xff09;。 截至目前为止&#xff0c;已经在 GitHub 收获了 40000 多的 stars&#xff0c;有 90 多人发了 600 多个 Pull Requests 和 issues。 在收集的过…

java中Map ListE的用法

返回的restful接口数据样式&#xff1a; {party: [{"finishTime": "20191105","busiCnt": 1000}]}1、定义WzwScreenEntity 实体 public class WzwScreenEntity {private String finishTime;private String busiCnt;private String party;publi…

ORM是什么?如何理解ORM?

一、ORM简介 对象关系映射&#xff08;Object Relational Mapping&#xff0c;简称ORM&#xff09;模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说&#xff0c;ORM是通过使用描述对象和数据库之间映射的元数据&#xff0c;将程序中的对象…

遍历Map keySet和entrySet

public class test {public static void main(String[] args) {Map<String, String> map new HashMap<String, String>();map.put("1", "广东");map.put("2", "广西");map.put("3", "广南");map.put…

falcon适配ldap密码同步

问题 小米的openfalcon在使用ldap首次登陆成功后,会在本地创建同名的账号, 这就有个问题当你更新了ldap的密码时,openfalcon是没有同步本地账号密码的功能 二次改造 方便我们debug, 先把日志的debug打开,默认是没有运行时日志的,只有console日志 # 编辑文件 dashboard/rrd/util…

如何有效的使用 for循环和Iterator遍历

遍历ArrayList 使用for循环遍历的速度会比Iterator遍历的速度要快&#xff1a; for (int i0, nlist.size(); i < n; i)list.get(i);runs faster than this loop:for (Iterator ilist.iterator(); i.hasNext();)i.next();采用ArrayList对随机访问比较快&#xff0c;而for循环…

【js】数组置空的其他方式及使用场景

数组在js中属于引用型类型。 var arr [1, 2, 3]; a []; 通常使用以上方式。如果使用场景必须使用方法置空&#xff0c; 可以采用arr.length 0; 或者使用a.splice(0, a.length); 使用场景 vue2中组定义组件中v-model的值是数组类型&#xff0c; 组件内部需要清空时&#xff0…

Postgresql 填充所有的时间点

最近使用有个业务需要展示20190101和20190106所有的时间段&#xff0c;例如 20190101 20190102 20190103 20190104 20190105 20190106但是数据库中存的只有以下 20190101 20190102 20190104 20190106那我们需要把20190103、20190105填充进去。 方式一&#xff1a; 新建个存储…

分类与监督学习,朴素贝叶斯分类算法

1.理解分类与监督学习、聚类与无监督学习。 &#xff08;1&#xff09;简述分类与聚类的联系与区别。 分类就是按照某种标准给对象贴标签&#xff0c;再根据标签来区分归类。聚类是指事先没有“标签”而通过某种成团分析找出事物之间存在聚集性原因的过程。 区别是&#xff0c…

Postgre合并多行数据为一行

业务情景描述&#xff1a;用户需要一行展示所有的文件名称&#xff0c; 比如&#xff1a;你的1.txt、2.txt、3.txt未上传成功&#xff0c;请核查&#xff01; SELECT * FROM fileTable --查询结果如下&#xff1a; 1.txt 2.txt 3.txt方式一&#xff1a;使用string_agg函数&…

如何学好Spring

要学好Spring&#xff0c;首先要明确Spring是个什么东西&#xff0c;能帮我们做些什么事情&#xff0c;知道了这些然后做个简单的例子&#xff0c;这样就基本知道怎么使用Spring了。Spring核心是IoC容器&#xff0c;所以一定要透彻理解什么是IoC容器&#xff0c;以及如何配置及…

数据库查询字段为空时,返回0

oracle select nvl(字段名,0) from 表名; sqlserver select isnull(字段名,0) from 表名; mysql select ifnull(字段名,0) from 表名; postgresql select coalesce(字段名,0) from 表名;

一张图搞定OAuth2.0

转发&#xff1a;https://www.cnblogs.com/flashsun/p/7424071.html 目录 1、引言2、OAuth2.0是什么3、OAuth2.0怎么写1、引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式&#xff1a;授权码模式 非常简单的一件事情&#xff0c;网上一堆神乎其神的讲解&#xff0c;让…