js将网页导出成pdf(js 打印指定div内容)2020-09-02

JavaScript022

js将网页导出成pdf(js 打印指定div内容)2020-09-02,第1张

<input type="button"  id="button" value="点击打印"/>

<div id="div_print">

<p>打印此处内容</p>

</div>

<script type="text/javascript">

function printdiv(printpage){

  var newstr=document.getElementById(printpage).innerHTML

  var oldstr=document.body.innerHTML

  document.body.innerHTML=newstr

  window.print()

  document.body.innerHTML=oldstr

  return false

}

window.onload=function(){

  var bt=document.getElementById("button")

  bt.onclick=function(){printdiv('div_print')}

}

</script>

html, body{

 overflow:visible  

}

打印时另存为pdf模式打印后的内容可复制 默认为Microsoft Print to PDF 模式

1.安装使用

npm install print-js --save

2.在需要打印的页面导入

import print from 'print-js'

3.方法

官方地址: https://printjs.crabbly.com/

关于JS打印问题!网上收集+自己总结 ,需要的朋友可以参考下。

一般打印就用window.print()就OK了

但是一般都是选择性打印所以会调用方法:

复制代码 代码如下:

function preview()

{

bdhtml=window.document.body.innerHTML

sprnstr="<!--startprint-->"

eprnstr="<!--endprint-->"

prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17)

prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr))

window.document.body.innerHTML=prnhtml

window.print()

}

问题又来了~

会有页脚和页眉~还有横向和纵向之分~

怎么办?

最好就是用到打印预览~

因为它里面有设置

这时必须引用IE的一个控件"WebBrowser"

在页面里引用:

<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">

</object>

其控件方法:

复制代码 代码如下:

WebBrowser.ExecWB(1,1) 打开

WebBrowser.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口

WebBrowser.ExecWB(4,1) 保存网页

WebBrowser.ExecWB(6,1) 打印

WebBrowser.ExecWB(7,1) 打印预览

WebBrowser.ExecWB(8,1) 打印页面设置

WebBrowser.ExecWB(10,1) 查看页面属性

WebBrowser.ExecWB(15,1) 好像是撤销,有待确认

WebBrowser.ExecWB(17,1) 全选

WebBrowser.ExecWB(22,1) 刷新

WebBrowser.ExecWB(45,1) 关闭窗体无提示

示例:

<object id="WebBrowser" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">

打印测试

<input type="button" onclick="WebBrowser.ExecWB(7,1)" value="打印预览">

随便用个文本文件复制粘贴~改后缀名~

ie运行~点预览~设置打印~打印~OK

然后再把其考到项目里~比如aspx里

同样运行,点预览~

咦~怎么出现ie安全警告"internet explorer"已阻止此站点用不安全方式使用ActiveX控件"

这时就要改ie的安全设置了(如果没装补丁就没事~那是你"rp"好,不一定客户和其他的人的"rp"和你一样好)

操作:

主菜单"工具"——Internet选项——安全——自定义级别, 将"安全设置"中"对没有标记为安全的ActiveX"控件进行初始化和脚本运行由"禁用"改为"启用"

另一种方法,"工具" "Internet选项" "受信任的站点(可信站点)""站点",然后填入网址即可,如果这个网站不是以https:连接的把下面"对该区域中的所有站点要求服务器验证(https:)"前面的勾去掉即可。

(如果是局域网:那就是 "工具" "Internet选项" "本地Internet" "高级")