当前位置:   article > 正文

Print.js实现打印pdf,HTML,图片(可设置样式可分页)_printjs

printjs

目录

一.安装及引入Print.js

二.介绍

三.常用配置

四.具体使用


一.安装及引入Print.js

1.安装

  1. npm install print-js --save
  2. //or
  3. yarn add print-js

2.在需要使用的文件引入

import printJS from 'print-js'

二.介绍

Print.js有四种打印类型:'pdf'、'html'、'image'、'json'。

它的基本用法是调用printJS()并传入参数

  1. //pdf打印 传入PDF文档url
  2. printJS('docs/PrintJS.pdf')
  3. //图片打印 传入图片url,第二个参数:'image'
  4. printJS('images/PrintJS.jpg', 'image')
  5. //html打印 第一个参数:元素id,第二个参数:'html'
  6. printJS('myElementId', 'html')
  7. //json打印 当打印Json数据时,传入要打印的数据、类型和数据属性
  8. printJS({printable: myData, type: 'json', properties: ['prop1', 'prop2', 'prop3']})

三.常用配置

Print.js接受一个对象作为参数,在这里你可以配置一些选项:

字段默认值                                      说明
printable null数据源:pdf or image的url,html类型则填打印区域元素id,json类型则是数据object。
type'pdf'可选类型:pdf, html, image, json。
headernull    应用于页面顶部标题文本。
headerStyle'font-weight: 300;'应用于标题文本的可选标题样式。
maxWidth800最大文档宽度(像素)。
cssnull这允许我们传递一个或多个css文件的url,应该应用到正在打印的html。Value可以是包含单个URL的字符串,也可以是包含多个URL的数组。
stylenull这允许我们传递一个自定义样式的字符串,该字符串应应用于正在打印的html。

四.具体使用

1.打印Html

  1. <div id="printJS-HTML" style="display:none;">
  2. <div v-for="index in 5" :key="index">
  3. <table>
  4. <tr>
  5. <td>序号</td>
  6. <td>作者</td>
  7. </tr>
  8. <tr>
  9. <td>1</td>
  10. <td>Ghmin</td>
  11. </tr>
  12. </table>
  13. <!-- 控制打印分页的关键 -->
  14. <div class="paging"></div>
  15. </div>
  16. </div>
  17. <button @click="printHtml">打印 HTML</button>
  1. const printHtml=()=>{
  2. //在页面显示需打印区域来获取dom
  3. document.querySelector('#printJS-HTML').style.display = 'block'
  4. printJS({
  5. printable: 'printJS-HTML',//打印区域id
  6. type: 'html',//打印类型
  7. style: `@page { size: auto; } .paging{page-break-after: always;}`,
  8. })
  9. //获取打印内容后隐藏dom
  10. document.querySelector('#printJS-HTML').style.display = 'none'
  11. }

这里 .paging{page-break-after: always;}样式就是控制分页的关键。

2.打印图片

打印图片的话可以使用上面第一种Html的方式,但更推荐使用Print.js提供的"image"打印类型

  1. printJS({
  2. printable: ['第一张图片Url','第二张图片Url','第三张图片Url'],
  3. type: 'image',
  4. header: null,
  5. imageStyle: `display: block;margin: 0 auto;page-break-after: always;max-width:100%`
  6. })

相对于Html方式这个更简单,传入需要打印的图片url数组即可。

更多内容可访问 Print.js官网:https://printjs.crabbly.com/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/105256
推荐阅读
相关标签
  

闽ICP备14008679号