• js打印功能


    曾经在上海的时候有开发过服务端连打印机打印文件的功能,用的是java调用服务机上连接的打印机打印pdf文件

    String cmd = "cmd.exe /C start acrord32 /P /h " + pdfPath;

    Runtime.getRuntime().exec(cmd);

    详见:

    Java调用cmd的静默打印PDF方法

    https://blog.csdn.net/ycb1689/article/details/7530210

    现在要做的是客户端调用浏览器的打印功能,利用客户端连接的打印机打印页面区域,采用的是jquery封装好的打印插件 jQuery.print.js ,只能说人家都封装好了,拿来用便可以了,没什么难点,下面是插件的网址

    http://www.jq22.com/jquery-info15650

    但是引用到我的项目中后,指定打印的区域为整个table,也就是把table对象抛给插件去封装,然后打印,但是打印预览的结果不太理想,当table显示的行数过多,比如50多行的时候,一页明显打不完,但是打印预览的时候总是显示总页数为1

    这里选的也是打印全部页码,并没有指定只打印第一页。一开始以为是插件在封装我给的table对象的时候是不是漏掉了部分行,还特意设置在新窗口中打印,并在打印完成后不关闭新窗口,就是为了看看插件封装的table完不完整,后来发现也是完整的

    设置在新窗口中打印,就设置下面一个iframe参数为false就可以了

     修改代码,设置打印完成后或者取消打印后,新窗口不关闭。顺着代码调用的入口,找到打印完成后关闭新窗口的代码,注释掉下面一行代码即可

    页面中显示的table是完整的,于是我在页面直接右键,选择打印功能,发现也是只打印一页

    而其他页面直接点击右键打印的时候却是整个页面打印,比如下面这个,需要打印11页

    这样一来问题就确定是出在自己项目了,突然就像打通了任督二脉,记得曾经设置过项目页面中body的width和height都为100%,一查看,果不其然

    问题就出在这里,是插件封装的时候应用了这个样式,所以永远都只会打印一页。那么只要再封装的时候冲掉这个样式,问题就迎刃而解了

    这样问题就解决了。

    最后,还发现一个可以去掉页眉和页脚的设置,哈哈,这都不算什么大发现了,就是在改这个只能打一页的bug的时候,点呀点,点到了这个设置,觉得还是蛮有用的,分享给大家吧

     点这里的更多设置

    里面有个页眉和页脚的设置,取消勾选就没有页眉和页脚了

  • 相关阅读:
    Fix The System Bell
    Autounlock default keyring during login KDE
    打油诗1
    Give your laptop some gaming power
    ubuntu 12.04 wine安装有道词典
    天津工业大学破烂综合教务系统非IE非Windows解决方案
    愤忿,愤,忿
    C Strings (Arrays vs. Pointers)
    深入学习算法的一点拙见
    jquery控制图片按比例缩放
  • 原文地址:https://www.cnblogs.com/LcxSummer/p/9284095.html
Copyright © 2020-2023  润新知