目前来说,一般一个简单的详情页面打印,直接调用window.print就行了; 但遇到复杂的时候,我们可能会想到用集成好的控件来解决,当然,如果你有时间又不怕麻烦,你也可以自己写一堆js。

文中所述两个打印控件均为免费版本,收费版本另当别论。

一、jatoolsPrinter

jatoolsPrinter号称真正的免费,不加水印,不限IP,兼容IE6+等等;

下载地址: http://printfree.jatools.com/

jatoolsPrinter的部署很简单,可以简单分为3个步骤:

1.将控件引入到项目中

2.编写打印js

function doPrint(how) 
    { 
        //打印文档对象.
        var myDoc ={
             documents: document, 
             // 在同一页面中,有多个可打印文档,他们可以用page_div_prefix属性来区别 
             // page_div_prefix前缀+page+页序号 构成可打印div的id, 
             // 如前缀为 'report1' ,则找到以 'report1page1'为id的div作为文档首页 
             // 该属性,默认值为空 
             page_div_prefix: "report",
             copyrights: '杰创软件拥有版权  www.jatools.com'
         };           
       // 调用打印方法 
       if(how == '打印预览...') 
           jatoolsPrinter.printPreview(myDoc );   // 打印预览        
       else if(how == '打印...') 
           jatoolsPrinter.print(myDoc ,true);   // 打印前弹出打印设置对话框        
       else  
           jatoolsPrinter.print(myDoc ,false);       // 不弹出对话框打印 
    }

3.给需要打印的div取id名

默认打印page1,page2,page3...,如果page_div_prefix不为空,需要在id前面加上page_div_prefix对应的值

杰表的优点就不说了,一大堆,这里说下最主要的两个缺失功能(当然,收费版应有尽有),

第一,不支持自动缩放打印,就是说,如果你的页面高度或者宽度过大,那么,肯定不完全打印,多余的部门会被截掉

解决的办法就是你只能把页面改小点来去兼容它;

第二,不支持打印隐藏对象,这个真的挺头疼,如果遇到批量打印,而且打印的内容需要到后台去查询的,这个就不能用了,

有个带点风险的解决办法,就是将你不显示出来的div设置z-index属性,放到显示内容的下面就行了。

二、LODOP

lodop同样免费,而且使用起来也很方便。

下载地址: http://www.lodop.net/download.html

lodop的部署:

1.引入lodop控件

      <script 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>

2.编写打印js

var LODOP; //声明为全局变量

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.SET_PRINT_STYLE("FontSize",16);
          LODOP.SET_PRINT_STYLE("Bold",1);

var htm = str+"<body>"+document.getElementById("page1").innerHTML+"</body>";
          LODOP.ADD_PRINT_HTM("0%", "0%", "100%", "100%", htm);

}

具体方法作用可以参考官网demo

LODOP最主要的优点就是可以指定打印哪个模块,只要给他一个id就行,真的是很方便,比较明显的缺点有两个:

第一,打印页面不能将原页面中css带过来,需要自己引入,具体方法见LODOP功能演示

第二,直接打印出来的页面,底部居然有LODOP的logo信息,具体信息:本页由【试用版打印控件Lodop6.0.5.6】输出,这个让我无法接受,估计用户看到也会发疯,

咨询过LODOP作者,确定需要购买注册号才能去掉。

总的说来,两个控件都很不错,虽然免费的功能不是很多,但一般的项目中应该也是够用了。

关于Java Web打印相关推荐

  1. java web打印 (记录一下,自己使用)

    java web打印 公司最近要做网页版的报表系统,现在就差打印不会做,已经憋了一周了,网上说的那些楚琳,华杰什么的根本不能用,不是有水印就是收费的:window.print()和jQuery.pri ...

  2. java中使用pdfBox打印pdf;java web打印pdf;静默打印;jar程序打包成exe文件;exe4j的使用

    java编写打印控件 web打印一直是个棘手的问题,市面上的第三方打印插件也是贵的离谱,这里给出一个可行的解决方案. SpringBoot项目的web服务,实现的功能: 获取电脑可用的打印机列表 设置 ...

  3. java web 打印控件_web打印,web打印控件,dotnet web打印控件,java web打印控件,webprint...

    webprint打印参数设置小插件,主要实现打印纸张,边距,打印机等的设置. 主要功能: 设置页眉页脚属性 设置打印页面左右上下边距 设置打印方向,打印份数,打印指定页 打印模版和指定纸型绑定 设置自 ...

  4. 锐洋java web打印控件_锐洋Java web打印控

    ReYoPrint产品介绍 ReYoPrint (锐洋.打印控件)是一款实现网页套打的专用工具.作为web应用开发者,我们经常会遇到在浏览器中打印报表.票据的需求,这些需求浏览器本身的打印功能一般不能 ...

  5. java web 打印报表_Web报表的打印方案

    快逸报表提供两种打印方法: (1)将Web报表导出成 PDF 或 Excel 文件后,再打印. 快逸报表可以将Web报表无失真地导出Excel和PDF文件,但 对于分页机制要求比较高的中国式报表,Ex ...

  6. java web 打印 Cl0dup

    应需求接触到lodop 打印. 首先在lodop官网下载相关文件(js.css等):http://www.lodop.net/download.html 在下载好的包里  除了html页面  其他的j ...

  7. Java Web打印控件(纯java手写版)

    场景: 向数据库中添加一条记录时,调用客户端局域网中的打印机自动将数据打印出来.(当然是客户端打印,服务器端打印还要控件???) 要求: 不弹出.不打印预览.直接自动打印.(静默打印) 需要兼容各大浏 ...

  8. java web 打印pos小票_JS+调用word打印功能实现在Webfrom客户端pos机打印小票(58x210mm)...

    本文主要解决在web网页上通过点击某个按钮现实打印小票的功能.修改于2015.8.15. 页面html代码: 调用Word打印机打印 function doPrint() { viewToWord(& ...

  9. java+web+打印条形码_javaweb条形码产生、打印、扫描

    产生条形码的插件到是不少,但是能用针式打印机打印在合适表单上,而且能用常用的激光扫描器扫描出来的demo到不是很多. 本文,所牵扯的代码与工具均亲测可用. 使用工具: epson  LQ-630K针式 ...

  10. java web 打印图片_java web打印总结

    the contents you don't want to print 如果需要设置不打印区域,加入如下样式: 其实就是引用了noprint样式的控件不打印: 下面是media的相关 media类型 ...

最新文章

  1. 随机森林RandomForest挖掘生物标记预测分类
  2. 关于ajax访问本地json文件报错404的问题
  3. 软件工程师的职业生涯
  4. 拯救react的hooks:react的问题和hooks的作用
  5. 《Improving Langugage Understanding by Generative Pre-Tranining》 —— GPT
  6. 监听程序当前无法识别连接符中请求的服务_[Servlet] 18 监听器
  7. SharePoint Designer 2010中的外部内容类型-SQL Server
  8. 高斯积分(概率积分)以及它与伽马函数之间的关系
  9. 【二叉树初阶】前中后序遍历+层序遍历+基础习题
  10. Zigbee智能开关和单火取电技术
  11. UI设计评审度量评价指导
  12. linux嗅探网站结构,Linux下的Dsniff嗅探浅析
  13. 纹波(ripple)的定义
  14. HIVE最全面入门指南
  15. 有情感会说话,虚拟人脸Zoe诞生
  16. 加盟代理小程序为创业者带来另一条出路
  17. 职场人必看:提高工作效率的6大法则
  18. 十余种漂亮照片边框简单制作技巧
  19. KubeSphere DevOps流水线部署
  20. pb 如何导出csv_用问卷网做问卷调查 如何导出数据报表?

热门文章

  1. WGS84经纬度坐标转化成UTM坐标
  2. creo绘图属性模板_Creo定制模型及绘图模板.doc
  3. CentOS安装完没有ip地址的解决方法
  4. DS18B20温度传感器使用详解
  5. Nansen:你想知道的关于 NFT 的一切
  6. 对外汉语语料库有哪些_国内外有哪些比较好的语料库?(corpora)
  7. BC26常用术语和缩略词
  8. cppcheck的安装与使用
  9. 【刷题总结】二叉树前中后序遍历
  10. 用matlab化简三角函数方程组,matlab化简三角函数 matlab怎么样化简三角函数?