系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 网络编程 > JavaScript > 详细页面

vue中使用vue-print.js实现多页打印

时间:2020-03-05来源:电脑系统城作者:电脑系统城

本文主要介绍了vue项目中使用print.js打印,解决多页,分页,打印预览样式修改等问题。

引入安装vue-print.js


 
  1. cnpm i vue-printjs --save-dev

解决打印多页只出现一页问题

由于打印插件存在问题,如果打印文件超出一页,只显示一页,所以我们需要修改print.js源文件,所以只能手动下载vue-print.js到本地,做一些修改,然后引入到项目中,不能使用npm安装

下载 print.js

https://github.com/zxc19890923/print/blob/master/print.js
在src目录下面创建plugins/print/Print.js文件保存插件内容

修改 print.js


 
  1. // 搜索getStyle方法,添加:str += "<style>html,body,div{height: auto!important;font-size:14px}</style>";
  2.  
  3. getStyle: function () {
  4. var str = "",
  5. styles = document.querySelectorAll('style,link');
  6. for (var i = 0; i < styles.length; i++) {
  7. str += styles[i].outerHTML;
  8. }
  9. str += "<style>" + (this.options.noPrint ? this.options.noPrint : '.no-print') + "{display:none;}</style>";
  10. str += "<style>html,body,div{height: auto!important;font-size:14px}</style>";
  11.  
  12. return str;
  13. },
  14.  

main.js中引入插件


 
  1. ...
  2. import Print from './plugins/print/Print'
  3. Vue.use(Print)

vue文件中的使用


 
  1. <div class="show">
  2. 这是展示的需要打印的内容,给用户看的。
  3. </div>
  4. <div ref="print" class="recordImg" id="print">
  5. 这里是需要打印的内容,出现在打印预览的界面,这里的样式需要写在 @media print {}里面 如果需要设置预览页规则,页脚等样式 @page {}
  6. <div class="no-print">不需要打印的内容</div>
  7. <div class="do-not-print-div">不要打印我</div>
  8. <button @click="printContext">打印</button>
  9. </div>
  10. ...
  11. <script>
  12. ...
  13. method: {
  14. printContext () {
  15. this.$print(this.$refs.print)
  16. }
  17. // 不打印方法1. 添加no-print样式类
  18. // 不打印方法2. this.$print(this.$refs.print,{'no-print':'.do-not-print-div'})
  19. }
  20. </script>

最后
1、为了打印全部,手动下载插件并修改。
2、打印内容样式需要写在 @media print {}中
3、this.$print(),不需要打印内容可以通过css,js两种方法控制。

到此这篇关于vue中使用vue-print.js实现多页打印的文章就介绍到这了,更多相关vue print.js 多页打印内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

分享到:

相关信息

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载