当前位置: 代码网 > it编程>编程语言>Javascript > 利用Print.js实现打印pdf、HTML及图片(可设置样式可分页)

利用Print.js实现打印pdf、HTML及图片(可设置样式可分页)

2024年05月26日 Javascript 我要评论
一.安装及引入print.js1.安装npm install print-js --save//oryarn add print-js 2.在需要使用的文件引入import printjs fr

一.安装及引入print.js

1.安装

npm install print-js --save
//or
yarn add print-js    

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

import printjs from 'print-js'

二.介绍

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

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

//pdf打印 传入pdf文档url
printjs('docs/printjs.pdf')

//图片打印 传入图片url,第二个参数:'image'
printjs('images/printjs.jpg', 'image')

//html打印 第一个参数:元素id,第二个参数:'html'
printjs('myelementid', 'html')

//json打印 当打印json数据时,传入要打印的数据、类型和数据属性
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

<div id="printjs-html" style="display:none;">
    <div v-for="index in 5" :key="index">
      <table>
        <tr>
          <td>序号</td>
          <td>作者</td>
        </tr>
        <tr>
          <td>1</td>
          <td>ghmin</td>
        </tr>
      </table>
       <!--  控制打印分页的关键 -->
      <div class="paging"></div>
    </div>
</div>
<button @click="printhtml">打印 html</button>
const printhtml=()=>{
      //在页面显示需打印区域来获取dom
      document.queryselector('#printjs-html').style.display = 'block'
      printjs({
        printable: 'printjs-html',//打印区域id
        type: 'html',//打印类型
        style: `@page { size: auto; } .paging{page-break-after: always;}`,
      })
      //获取打印内容后隐藏dom
      document.queryselector('#printjs-html').style.display = 'none'
}

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

2.打印图片

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

  printjs({
    printable: ['第一张图片url','第二张图片url','第三张图片url'],
    type: 'image',
    header: null,
    imagestyle: `display: block;margin: 0 auto;page-break-after: always;max-width:100%`
  })

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

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

总结

到此这篇关于利用print.js实现打印pdf、html及图片的文章就介绍到这了,更多相关print.js打印pdf、html及图片内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com