精华内容
下载资源
问答
  • 批量打印之jquery局部打印

    千次阅读 2017-10-12 10:49:20
    上个月弄了个批量打印的功能,觉得以后可能用得着,就写...这里先说jQuery的局部打印功能(个人觉得jqprint和PrintArea就打印功能这块大同小异,所以就说简单点的PrintArea)   1、导Jquery库:想用Jquery的功能...

    上个月弄了个批量打印的功能,觉得以后可能用得着,就写个博客记一下,免得忘记了。说这个之前,先来说一下我用过的两个打印插件,一个是Jquery打印插件(这次开始用的),一个是smsx.cab控件的打印插件。这里先说jQuery的局部打印功能(个人觉得jqprint和PrintArea就打印功能这块大同小异,所以就说简单点的PrintArea)

     

    1、导Jquery库:想用Jquery的功能就得有人家的内库嘛,这个是毋庸置疑的。

     

    2、导入jquery.PrintArea.js:在导入jquery库之后导入。其源码如下:

    (function($) {
    	var printAreaCount = 0;
    	$.fn.printArea = function() {
    		var ele = $(this);
    		var idPrefix = "printArea_";
    		removePrintArea(idPrefix + printAreaCount);
    		printAreaCount++;
    		var iframeId = idPrefix + printAreaCount;
    		var iframeStyle = 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;';
    		iframe = document.createElement('IFRAME');
    		$(iframe).attr({
    			style : iframeStyle,
    			id : iframeId
    		});
    		document.body.appendChild(iframe);
    		var doc = iframe.contentWindow.document;
    		$(document).find("link").filter(function() {
    			return $(this).attr("rel").toLowerCase() == "stylesheet";
    		}).each(
    				function() {
    					doc.write('<link type="text/css" rel="stylesheet" href="'
    							+ $(this).attr("href") + '" >');
    				});
    		doc.write('<div class="' + $(ele).attr("class") + '">' + $(ele).html()
    				+ '</div>');
    		doc.close();
    		var frameWindow = iframe.contentWindow;
    		frameWindow.close();
    		frameWindow.focus();
    		frameWindow.print();
    	}
    	var removePrintArea = function(id) {
    		$("iframe#" + id).remove();
    	};
    })(jQuery);

    3、demo

    <input type="button" id="btnPrint" value="打印"/>
    <div id="printContent">要打印的内容区域<div>
    
    <script type="text/javascript">
    $(function(){
            $("#btnPrint").click(function(){ $("#printContent").printArea(); });
    });
    </script>

     4、说一个可能遇到且我已经解决的问题:打印出来的东东没有样式

    解决方法:将页面中<style>标签中的样式全部摘出来放到一个css文件中去,然后将这个css文件引入到页面上来。

    为什么这样子可以解决:

    先看jquery.PrintArea.js的源码,它的实现原理基本上可以理解成这样子

    点击“打印”时,它先在页面中生成一个iframe(宽高为0,left、top为-500,这样子在当前页面就看不到这个frame了),

    然后将页面里边引入的(link方式)css文件也引入到iframe中,

    再将选定区域(jquery选择器选定的对象)的内容复制到iframe中,

    最后调用系统的print()方法进行打印。

    理解了源码之后,再来理解“打印出来的东西没有样式“”也就容易了,因为它只是处理了<link>标签中的样式,木有处理<style>中的样式呀。

     

    顺便再多嘴一句:在解决这个问题时,看到有人说处理将css内容摘到一个文件里边之外,还需要在<link>标签中添加"media=print",我试着加了下打印出来是有样式,但是页面显示的却没有样式了。也不知道是我写的有问题,还是哪里又不对。

     

    5、说一说优点

    至少有两个:a、可以局部打印,想打哪块打哪块,不需要在打印时顾虑其他的不相干内容也打印出来了;b、兼容性好,因为调用的是window对象的print()方法,且浏览器都支持这个方法(试了IE8、IE11、火狐、谷歌、360、QQ,效果都不错);

     

    6、说一说缺点

    也至少有三个:a、打印的时候每次都要弹出打印框让选择打印机,这个在自动打印的情况下比较烦人;b、自带页眉页脚,打印时如果不进行页面设置会自动加上页眉页脚且不太好去掉,也需要手动设置页边距,这个也比较烦人。c、不带预览,需要使用其他插件进行预览,如jquery-print-preview-plugin-master(有点复杂)。

    展开全文
  • 关于PDF局部打印

    千次阅读 2019-03-13 18:07:52
    PDF局部打印 应用场景 很多的电子原理图都是一整张很大的pdf的样子,但是我们经常会查看一部分电路的时候,经常会选择打印用到的一部分电路来直观的查看,但是往往pdf图片太大,想要打印的很清楚的话就需要把局部...

    PDF局部打印

    应用场景

    很多的电子原理图都是一整张很大的pdf的样子,但是我们经常会查看一部分电路的时候,经常会选择打印用到的一部分电路来直观的查看,但是往往pdf图片太大,想要打印的很清楚的话就需要把局部图片放大打印,但是怎么做到PDF局部图片放大打印呢?

    用Acrobat Reader DC打开的PDF,也可用等一系列pdf阅读器或者WPS打开PDF文件。

    实际操作

    首先选择需要打印的的电路图

    鼠标右键,用Acrobat Reader DC编辑

    打开后可以看到有很多的电路原理图在一起

    这个时候,找到我们想打印的部分原理图,我们用中间的单片机举例:

    选择“裁剪页面”,框选住需要打印的部分

    双击选中的地方

    看到弹窗,直接选择——确定

    根据需要旋转并调整视图大小

    选择打印

    可以选择打印当前视图,也可以打印当前页。

    这个时候也可以另存其他文件,或者导出啥的,不过如果记不清是不是动了源文件建议打印完成后直接退出不要保存修改

    展开全文
  • vue打印网页,可以局部打印

    千次阅读 2019-04-11 09:41:00
    下载print.js到本地,放入静态资源文件中,在main.js中引入: import Print from './util/print' Vue.use(Print) 在需要打印的页面直接调用就可以了 <template> <div ref=print> 需要...

    github的跳转连接

    下载print.js到本地,放入静态资源文件中,在main.js中引入: 

    import Print from './util/print'
    Vue.use(Print)

    在需要打印的页面直接调用就可以了

    <template>
        <div ref=print>
            需要打印的内容
        </div>
        <div @click=“print”>点击打印 </div>        
    </template>
    
    <script>
       methods:{
        pritn(){
          this.$print(this.$refs.print)
       }
    }
    </script>

    这样就可以是不是很简单

    原本看他的文档是可以筛选不打印的元素,但是试了下不行

    于是我就把不打印的元素在打印的时候直接隐藏

    handlePrint () {
          this.showBtn = false  // 隐藏因素
          setTimeout(() => {
            this.$print(this.$refs.print)
            this.showBtn = true // 显示元素
          }, 50)
        },

    这样就OK了

    转载于:https://www.cnblogs.com/blog-akang/p/10687731.html

    展开全文
  • JavaScript实现局部打印

    千次阅读 2016-07-27 13:28:11
    1、在页面中 默认调用window.print() 方法可以打印当前页面,但是默认是完整的页面,但是如果需要打印局部页面 ,可以使用如下代码(只是JavaScript代码,不用JQuery) //表单打印 $('#FormPrint').click...

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(240, 240, 240);">   1、</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在页面中 默认调用window.print() 方法可以打印当前页面,但是默认是完整的页面,但是如果需要打印局部页面 ,可以使用如下代码(只是JavaScript代码,不用JQuery)   </span>
    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="javascript"><script type="text/javascript">
        //表单打印
        $('#FormPrint').click(function () {
            var oper=1;
            if (oper < 10) {
                bdhtml = window.document.body.innerHTML;//获取当前页的html代码  
                sprnstr = "<!--startprint" + oper + "-->";//设置打印开始区域  
                eprnstr = "<!--endprint" + oper + "-->";//设置打印结束区域  
                prnhtml = bdhtml.substring(bdhtml.indexOf(sprnstr) + 18); //从开始代码向后取html  
    
                prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));//从结束代码向前取html  
                window.document.body.innerHTML = prnhtml;
                window.print();
                window.document.body.innerHTML = bdhtml;
            } else {
                window.print();
            }
     
        });
    </script>

    FormPrint :打印按钮
    
    
    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> <!--startprint1--> 要打印的内容 <!--endprint1-->   oper:开始结束标记中的序号</span>
    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">
    </span>
    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">第二种方法:JQuery :</span>
    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="javascript">(function ($) {
        var printAreaCount = 0;
        $.fn.printArea = function () {
            var ele = $(this);
            var idPrefix = "printArea_";
            removePrintArea(idPrefix + printAreaCount);
            printAreaCount++;
            var iframeId = idPrefix + printAreaCount;
            var iframeStyle = 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;';
            iframe = document.createElement('IFRAME');
            $(iframe).attr({
                style: iframeStyle,
                id: iframeId
            });
            document.body.appendChild(iframe);
            var doc = iframe.contentWindow.document;
            $(document).find("link").filter(function () {
                return $(this).attr("rel").toLowerCase() == "stylesheet";
            }).each(
                    function () {
                        doc.write('<link type="text/css" rel="stylesheet" href="'
                                + $(this).attr("href") + '" >');
                    });
            doc.write('<div class="' + $(ele).attr("class") + '">' + $(ele).html()
                    + '</div>');
            doc.close();
            var frameWindow = iframe.contentWindow;
            frameWindow.close();
            frameWindow.focus();
            frameWindow.print();
        }
        var removePrintArea = function (id) {
            $("iframe#" + id).remove();
        };
    })(jQuery);

    引入这个文件,然后把 要打印的内容包裹在<div>中, 调用Printarea()方法
    
    

    展开全文
  • js或jquery实现页面打印可局部打印

    千次阅读 2015-09-04 15:51:19
    js或jquery实现页面打印(局部打印) 1、js实现(可实现局部打印) 代码如下: js打印 .noprint{display : none } 不需要打印的地方 function preview(oper) { if (oper ) { bdhtml=window.document....
  • jquery控制网页局部打印

    千次阅读 2012-11-09 17:06:48
    1)引用2个js文件 2)定义打印区域的div,打印按钮 3)为打印按钮绑定打印事件 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> ...
  • 打印局部页面 Asp.net 打印局部页面

    千次阅读 2010-04-20 09:40:00
    打印局部页面 1. window.print(); 打印Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->input class="NOPRINT" type="b
  • 使用js打印网页局部图片(内容)

    万次阅读 2018-07-30 21:20:36
    //定义打印区域起始字符,根据这个截取网页局部内容 sprnstr= "<!--startprint-->" ; //打印区域开始的标记 eprnstr= "<!--endprint-->" ; //打印区域结束的标记 prnhtml=bdhtml.substr(bdhtml.indexOf...
  • vue实现局部预览打印

    千次阅读 2019-10-07 22:50:33
    html <div id="subOutputRank-print"> <h1>11111</h1> </div> js doPrint(e){ let subOutputRankPrint = document.getElementById(...
  • JS实现页面打印(整体、局部

    千次阅读 2018-07-12 10:56:46
    我们在网页开发过程中经常会有打印页面的需求,通过JS来实现的方法有很多,这里我做了一个整理,供大家参考。方式一:window.print()整体打印?1&lt;a href="javascrīpt:window.print()" rel="...
  • Asp.net 打印页面 局部页面 动态控制

    千次阅读 2011-10-28 09:20:59
    1. window.print();...如果要实现页面的局部打印,有两种办法  1).利用style,不需要打印的地方都加上 NoPrint Style .Noprint{display:none;} .PageNext{page-break-after: always;} ..
  • 1、整体打印 打印整体  $('#print1').click(function...2、局部打印指定部分 下面的代码中我们主要用第二个button html代码 1 2 3 4 5 6 7 8 9 p>下面是百度的图片p> div>    
  • CAD通过打印导出清晰局部

    千次阅读 2013-06-14 11:00:00
    最好先清除屏幕让屏幕能显示更多的内容,再用导出图片功能,把要在Word里面显示的部分缩放至...Word:插入/图片/来自文件,然后导入保存的图片通过一个打印的窗口http://jingyan.baidu.com/article/358570f61f9690ce4724
  • 自改一下:jquery.PrintArea.js 文件中的getFormDate 函数:红色部分function getFormData(ele) { $("input,select,textarea", ele).each(function () { var type = $(this).attr("type"); if (type
  • 最近在做一个打印订单明细报表的功能,查阅网上资料,一般的思路都是把需要打印出来的区域提取出来,再赋予到当前页面body中,最后执行print()事件。例如:<!DOCTYPE html> ,
  • 再次强调实践出真知,新项目迭代涉及到一个管理报告的下载及打印,但是项目中以往的这种功能实现主要核心在后端,如pdf 的生成,打印也是有现成的文件地址等,但这次的报告中内容比较复杂,有表格,有几个echars ...
  • WEB中前台JS控制打印PDF文件

    万次阅读 2017-02-09 22:41:10
    最近遇到项目中需要在浏览器中一键打印 远程PDF文件,经过网上搜集资料最终选择了在客户端安装adobe reader后,实现上从服务器端下载一个pdf文件流,在IE中用adobe插件打开(在前台页面中隐藏Object标签),然后用...
  • Lua全局变量与局部变量

    千次阅读 2019-04-22 16:55:52
    在lua中,局部变量(变量名前加 ...a=111 --全局变量(整个lua文件中都可以使用,向下的范围) do local a=0--局部变量在语句块的结束 a=1 --局部变量优先 print(a)--局部变量 print(b) --打印变量nil b=...
  • Jquery.jqprint.js打印局部Div带有样式

    千次阅读 2014-07-23 16:36:48
    引入的js文件 &lt;script src="../js/jquery-1.4.2.js" type="text/javascript"&gt;&lt;/script&gt; &lt;script src="../js/jquery.jqprint-0.3.js" type=&...
  • 将所有参数存入dump.yaml并打印在窗口上. 结果如下 param_test_global : {serial: 10} serial : 5 Case 2 ros::NodeHandle有波浪符 ... ros::NodeHandle n( "~" ); n.getParam( "serial" , ...
  • 在VBA中调用AUTOCAD打印文件

    千次阅读 2005-07-20 20:30:00
    下一步用jacob封装在java中调用,在服务器上控制打印管理.做个记号再慢慢完善.取得当前文档对象(vba中的方法,如果是在VB中时需要从顶层对象开始引用取得)Dim currentDoc As AcadDocumentSet currentDoc = ThisDrawing...
  • 参考资料中也是借鉴pstack这个工具,它是用一个脚本,脚本中通过调用gdb来打印当前运行的栈信息,而不用中断程序或手动gdb。更多的信息,还是去看参考资料吧,上面讲的比较详细。  我的脚本如下: #!/bin/sh ...
  • 但是在gcc编译加上-g选项后,进入gdb调试,却怎么也打印不出来变量的值,最初是出现No symbol "xxx" in current context  后来经过查资料后,了解到这个可能是由于gcc编译的时候优化造成的,对局部变量进行寄存器...
  • JS实现浏览器打印打印预览

    千次阅读 2019-06-15 23:22:37
    会弹出打印对话框,打印的是window.document.body.innerHTML中的内容,下面是从网上摘到的一个局部打印的例子,该例子的不足是打印会修改页面的内容。 <!DOCTYPE html> <html> <head> <meta ...
  • 1.用jqprint插件实现打印 快速使用 ...jqprint是一个简单好用的打印插件,可以实现局部打印,首先是引入jq,,然后引入jqprnt //打印 $("#fh").jqprint({ debug: false, importCSS: true, ...
  • js实现页面的打印

    千次阅读 2017-09-20 14:43:54
    利用浏览器中自带的 window.print() 方法(1) 实现整个页面的打印直接点击调用这...(2)实现局部页面的打印时,首先要加开始打印位置以及打印结束位置的标注,我们只需截取两者中间的部分进行打印即可 <div class="row">
  • 最近一直在调一个系统的打印功能,打印的大概原理就是,通过excel转化成pdf文件,将pdf文件转化成jpg图片格式,将图片再附在页面的img里面,通过window.print()局部打印的方式将图片打印出来,这些功能都已实现,...
  • JVM 之(15)局部变量表

    千次阅读 2018-06-09 21:25:45
    在《JVM 之(1)运行时数据区》提到,虚拟机栈是描述Java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数...在Java程序被编译为Class文件时,就在方法的Code属...
  • Jquery网页打印

    万次阅读 2013-08-23 19:05:06
    Jquery网页打印注意问题

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 107,624
精华内容 43,049
关键字:

怎样局部打印文件