这两天需要打印一些报表和生成对应的word

网上也有不少工具,帆软,lodop等许多中间件。

但是帆软收费,所以就选择了lodop。

使用lodop就要先安装他的环境。

去官网下载zip

附上官网的下载链接

http://www.lodop.net/

直接下载就行

下载之后解压到一个文件夹(最好新建一个)

然后32和64位看着安装就行,

然后再安装2的CLODOP,全是傻瓜式安装,安装完自动启动。

然后去官网看是否安装成功

进入在线样例,然后往下滑,找到样例清单,点击样例一

点击查看本机是否安装web打印服务,如果出现这个弹框就可以了

没出现的会有提示根据提示操作就行,一般没什么问题。

这样准备工作就做完了,当然,现在就可以看着他的样例进行操作了,毕竟是国语,所以按F12去看js也应该能看懂,简单粗暴。

根据说明

需要在html或者jsp中引入这些东西

<script type="text/javascript" language="javascript" src="你的路径/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"></embed>
</object>

LodopFuncs.js就是你下载压缩包的js

实例:

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>表格</title><script type="text/javascript" language="javascript" src="/static/js/ftl/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"></embed></object><style>body{width: 940px;height:380px;border:2px dimgray solid}table{width: 800px;height: 300px;text-align: center;/* 表边框合并  两个单元格之间的边框进行合并 */border-collapse: collapse;margin: 0 auto;}table td, th{border:1px black solid;background-color: white;height:20px;width: 100px;}.a{border:none;text-align: right;}.b{text-align: left;padding-left: 10px;}.c{text-align:center}.d{border:none;text-align: center;padding-top:5px ;}</style>
</head>
<body>
<h2>演示如何打印当前页面的内容:</h2><input type="button" value="打印预览" onclick="prn1_preview()"><input type="button" value="直接打印" onclick="prn1_print()"><input type="button" value="选择打印机" onclick="prn1_printA()"><!-- 将要打印的内容通过div赋值-->
<div id="printDiv">Lodop打印测试Lodop打印测试
</div>width: 940px;
height:380px;
border:2px dimgray solid<div id="d1" style="width: 940px;height: 380px;border: 2px dimgrey solid"><table style="width: 800px;height: 300px;text-align: center;border-collapse: collapse;margin: 0 auto;"><caption><h2>费用报销单</h2></caption><tr><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="4" class="a">报销日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;年&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;月&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日</td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="2"class="a">附件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;张&nbsp;&nbsp;&nbsp;&nbsp;</td></tr><tr><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="1">报销项目</td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="2">摘要</td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="1">金额</td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" rowspan="2">负责人(签章)</td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" rowspan="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr><tr><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="1"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="2"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="1"></td></tr><tr><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="1"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="2"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="1"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" class="c" rowspan="2">审查意见</td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" rowspan="2"></td></tr><tr><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="1"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="2"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="1"></td></tr><tr><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="1"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="2"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="1"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" rowspan="2">报销人(签章)</td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" rowspan="2"></td></tr><tr><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="1"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="2"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="1"></td></tr><tr><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" colspan="4">&nbsp;&nbsp;&nbsp;合&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;计&nbsp;&nbsp;&nbsp;&nbsp;</td><#--<td style="border: 1px black solid;background-color: white;height: 20px;width: 100px"></td>--><#--<td style="border: 1px black solid;background-color: white;height: 20px;width: 100px"></td>--><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px;text-align: left;padding-left: 10px" class="b">¥</td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px;text-align: left;padding-left: 10px"></td></tr><tr><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px" class="c" colspan="6">核实金额(大写)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;佰&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;拾&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;万&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;仟&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;佰&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;拾&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;元&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;角&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;分&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr><tr><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px">借款额</td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px">应退金额</td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px"></td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px">应补金额</td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px"></td></tr><tr><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px;border: none;text-align: center;padding-top: 5px" colspan="2" class="d">会计主管:</td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px;border: none;text-align: center;padding-top: 5px" colspan="2" class="d">审核:</td><td style="border: 1px black solid;background-color: white;height: 20px;width: 100px;border: none;text-align: center;padding-top: 5px" colspan="2" class="d">出纳:</td>
</table>
</div></body>
<script>var LODOP=document.getElementById("LODOP_OB");//打印预览function prn1_preview() {CreateOneFormPage();LODOP.PREVIEW();}//直接打印function prn1_print() {CreateOneFormPage();LODOP.PRINT();}//选择打印机function prn1_printA() {CreateOneFormPage();LODOP.PRINTA();}function CreateOneFormPage(){LODOP=getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM'));LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_表单一");LODOP.SET_PRINT_STYLE("FontSize",18);LODOP.SET_PRINT_STYLE("Bold",1);LODOP.SET_PRINT_PAGESIZE(2, 0, 0,"A4");//LODOP.SET_SHOW_MODE("LANDSCAPE_DEFROTATED",1)//横向时的正向显示//参数100表示距离左侧100px;88表示距离顶部88pxLODOP.ADD_PRINT_HTM(0,0,'80%','80%',document.getElementById("d1").innerHTML);}
</script>
</html>

引入你下载的js后启动就是这样

点击打印浏览,因为我在

LODOP.SET_PRINT_PAGESIZE(2, 0, 0,"A4");

类型是2所以是横板A4

当然拉,你也可以直接打印,也就是后面两个按钮。

最后执行什么都跟LODOP.PREVIEW();LODOP.PRINT();LODOP.PRINTA();最后的这几个函数有关。

如果要打印设计就是这个 LODOP.PRINT_DESIGN();

上面是一个报销单的实例,你可以修改<table>标签从后台传值就可以实现动态效果,LODOP的api就不一一介绍了,文档和样例里比较多还有图文并茂。

//保存为emf图片
function SaveAsEmfFile(str){LODOP.PRINT_INIT("");LODOP.SET_PRINT_PAGESIZE(2,'7cm','10cm','');LODOP.ADD_PRINT_HTM(0,0,"100%","100%",str);LODOP.SET_SAVE_MODE("SAVEAS_IMGFILE_EXENAME",".emf");LODOP.SAVE_TO_FILE("新的矢量图片文件.emf");};//写入到word
//参数
//intWriteMode:编码
//strFilename:文件全路径(D:\\test.doc)
//strText:数据体,就是上面那个html中的table那种
function writefile(intWriteMode,strFilename,strText) {if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){alert(Value);};var strResult=LODOP.WRITE_FILE_TEXT(intWriteMode,strFilename,strText);if (!LODOP.CVERSION){if (strResult=="ok") alert("写入成功!");else alert(strResult);};};

他的文档也比较详细,就在下载zip的下面。

就比如SET_PRINT_PAGESIZE();

文档中除了介绍还有例子。

如果要使用LODOP.SET_PRINT_PAGESIZE(2, 0, 0,"A4");函数

就不能在这个函数中设置宽高LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_表单一");

名称:设定纸张大小
格式:SET_PRINT_PAGESIZE(intOrient, PageWidth,PageHeight,strPageName)
功能:设定打印纸张为固定纸张或自适应内容高,并设定相关大小值或纸张名及打印方向。
参数:
intOrient:
打印方向及纸张类型,数字型,
1---纵(正)向打印,固定纸张;
2---横向打印,固定纸张;
3---纵(正)向打印,宽度固定,高度按打印内容的高度自适应;
0(或其它)----打印方向由操作者自行选择或按打印机缺省设置;
PageWidth:
设定自定义纸张宽度,整数或字符型,整数时缺省长度单位为0.1mm, 譬如该参数值为45,则表示4.5毫米。字符型时可包含单位名:in(英寸)、cm(厘米) 、mm(毫米) 、pt(磅),如“10mm”表示10毫米。数值等于0时本参数无效。
PageHeight:
固定纸张时设定纸张高;高度自适应时设定纸张底边的空白高。整数或字符型,整数时缺省长度单位为0.1毫米。字符型时可包含单位名:in(英寸)、cm(厘米) 、mm(毫米) 、pt(磅),如“10mm”表示10毫米。数值等于0时本参数无效。
宽或高无效时下面的strPageName才起作用。
strPageName:
所选纸张类型名,字符型。不同打印机所支持的纸张可能不一样,这里的名称同操作系统内打印机属性中的纸张名称,支持操作系统内的自定义纸张。
关键字“CreateCustomPage”会按以上宽度和高度自动建立一个自定义纸张,所建立的纸张名固定为“LodopCustomPage”,多次建立则刷新该纸张的大小值。
注:PageWidth、PageHeight 和strPageName都无效时,本函数对纸张大小不起作用,控件则采用所选打印机的默认纸张,但intOrient仍可起作用。
实际打印时,控件按如下优先级顺序确定纸张大小:
第1优先是打印维护里纸张属性(“本机自行定义纸张”)设置的纸张大小。
第2优先是SET_PRINT_PAGESIZE指定的纸张大小;
第3优先是上次打印时在预览界面设置里选择的纸张类型;
第4是按所选打印机的默认纸张;
结果:无
建议或要求:
打印初始化之后调用。
如果打印纸张不固定,希望由操作者自主选择纸张时,则不要调用本函数。
举例一:LODOP.SET_PRINT_PAGESIZE(1,2100,2970,"");
设置纸张大小为:宽210mm*高297mm,纵向打印
举例二:LODOP.SET_PRINT_PAGESIZE(2, 0, 0,"A4");
设置纸张为A4(按操作系统定义的A4尺寸),横向打印

刚用一两天,还是有很多不足,草草实现了业务功能,但并不美观。lodop的功能挺强大,但是需要慢慢去看。

同时也附上lodop的环境zip和技术文档

Lodop6.226_Clodop3.083

链接:https://pan.baidu.com/s/1KRxPePShjRoVEUa10LZQQQ 
提取码:o5uf

CLodop_Setup_for_Win32NT

链接:https://pan.baidu.com/s/1OKpmlupPujc4jxDMdl_NhA 
提取码:0c6j

lodop技术文档

链接:https://pan.baidu.com/s/1bPom8_Si56T0EpaHOqIUqg 
提取码:c5kk

web打印,使用lodop实现打印和导出emf图以及生成word。相关推荐

  1. java 导出word换行_Java 导出数据库表信息生成Word文档

    一.前言 最近看见朋友写了一个导出数据库生成word文档的业务,感觉很有意思,研究了一下,这里也拿出来与大家分享一波~ 先来看看生成的word文档效果吧 下面我们也来一起简单的实现吧 二.Java 导 ...

  2. 导出数据库表信息生成Word文档(数据字典)

    平时多积累一些好工具,才能提高工作效率,早点下班 1. 关键字百度 Java 导出数据库表信息生成Word文档 gitee地址 2.拉取,运行 2.1 idea识别.导入maven工具 2.2 下载完 ...

  3. 导出数据库表信息生成Word文档

    一.背景描述 系统上线或者交付,或者需要提供整理数据库表信息,如果一个个整理未免麻烦,接下来一个demo示例如何用JAVA导出Mysql数据库表信息生成Word文档. 1.项目源码地址:https:/ ...

  4. Java 导出数据库表信息生成Word文档

    一.前言 最近看见朋友写了一个导出数据库生成word文档的业务,感觉很有意思,研究了一下,这里也拿出来与大家分享一波~ 先来看生成word文档效果吧 下面我们也来一起简单的实现吧 二.Java 导出数 ...

  5. extjs利用第三方打印插件lodop实现打印功能

    extjs由于是基于JS语言,其打印是可以按照一般的WEB打印方式来进行.笔者在网络上发现第三方打印插件Lodop(详见地址:http://mtsoftware.v053.gokao.net/inde ...

  6. jave使用打印插件(Lodop)可以打印以及保存excel

    引用 Lodop 插件实现打印以及另存excel 下面展示一些 内联代码片. // 给个jsp,引入插件js <%@ page language="java" content ...

  7. python打印生成word_使用python调用zabbix接口截取监控图并生成Word文档

    #/usr/bin/python #coding=utf-8 import json,urllib2,time,os,re,shutil from docx import Document from ...

  8. 导出mysql数据库表生成word文档

    前段时间产品突然提了个需求,要求写出项目组的所有表的文档,由于数据库里面表非常多,手写肯定不行,而且容易出错,就做了个项目,以后导数据库文档,直接就可以用了. 项目结构是springboot+myba ...

  9. php导出doc文件_PHP生成Word文档的方法

    PHP生成Word文档的方法 首先,请确保在你的Windows系统中已经安装并配置好了一个典型的WAMP环境.由于Interop纯粹是一个Windows的特性,我们将在Windows平台下搭建Apac ...

最新文章

  1. vue实现多个元素或多个组件之间动画效果
  2. Barts PE Builder——Windows系统维护完全图形化攻略
  3. I am the load of my word
  4. 中国版的stackoverflow
  5. samba加入windows 2003域
  6. C++:39---继承中构造函数、析构函数的关系
  7. Linux系统常用函数,浅谈linux下的一些常用函数的总结(必看篇)
  8. Tomcat源码学习(9)-How Tomcat works(转)
  9. 奶块1月25日服务器维护时间,奶块1月25更新公告 | 手游网游页游攻略大全
  10. html5旋转木马效果,js实现旋转木马效果
  11. 蓝牙定位原理-灵思科
  12. 2008服务器系统+共享文件夹权限设置密码,win2008共享权限设置、server2008文件共享权限设置方法...
  13. 我的大学四年收获及工作感悟
  14. strom 在linux下部署、基本命令
  15. Peekaboo——代码规范、冲刺任务与计划
  16. 锂矿的这个逻辑,我自己都不敢相信了
  17. PCB的ESD防护设计
  18. matlab遗传算法配送路径,基于遗传算法的生鲜配送的路径优化问题
  19. 计算机--计算机寓言
  20. Android判断是模拟器还是真机

热门文章

  1. #信用卡#201芯片磁条复合卡写卡技术成功突破及原理解析
  2. NRF24LE1定时器中断(1ms、5ms、10ms、20ms)
  3. 以太坊(ETH)简单的交易
  4. MySQL:复杂一点的查询----Datawhale第三次打卡笔记
  5. 无穷小微积分教材,何处寻?
  6. oracle 表分区,根据时间按月分区做一次记录
  7. 2020-3.31-26-超能陆战队-第一次需求讨论记录
  8. RPC——RPC协议介绍及原理详解
  9. 谨防“蚁穴效应”,确保云数据中心安全运行
  10. 智能电饭煲设计(文档+仿真源文件)