vue3问题:如何实现打印功能?

这篇具有很好参考价值的文章主要介绍了vue3问题:如何实现打印功能?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue3问题:如何实现打印功能?

 文章来源地址https://www.toymoban.com/news/detail-492810.html

编辑排版 | 宋大狮

平台运营 | 小唐狮

ONE 问题描述

2023年4月22号记,久违了大家。

今天要和大家分享的是关于如何实现表单、表格等自定义内容的打印功能。

最近在后台项目中,有遇到打印详情页的需求,因为开发中此功能用的次数不多,所以放在此处仅做一下记录,以供大家查阅。

具体的需求:在表格的操作栏中,点击打印按钮,会弹出一个对话弹框,弹框里会预览要打印的详情内容,然后在弹框中可以点击确认打印,可以点击取消关闭。

具体的问题:1、点击打印按钮,弹出的对话弹框中的内容总是显示第一次打开时的内容,不会重新变化;2、如何实现打印功能;3、如何实现只打印对话弹框中的指定内容。

今天,我们就在这篇文章,用最简洁的语言,来好好地理理上述问题。

TWO 问题解决 

一、代码总览

1、打印功能实现代码

1、安装依赖vue3-print-nb
npm install vue3-print-nb --save

2、main.ts中添加
  import print from "vue3-print-nb";
  .use(print)

3、布局中添加
要打印的内容,最外层盒子加上id
<div class="mod-sys_country__syscountry" id="printMe"> 
打印按钮
<button v-print="printObj">Print local range</button>

4、逻辑中添加相关配置
 data(){
    return {
      printObj: {
      id: "printMe",
      popTitle: '',
      extraCss: "https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css, https://cdn.bootcdn.net/ajax/libs/hover.css/2.3.1/css/hover-min.css",
      extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>',
    }
    }
  },

5、样式中添加
<style media="print">
@page{
  size: auto;
  margin-bottom: 0;
}
</style>

2、弹出的对话框实现代码

1、弹出的对话弹框
<el-dialog v-model="dialogFormVisible" title="Shipping address" destroy-on-close>
     2、要打印的内容,此处封装成了组件
     <printCustomerDetail :printId="printId" :AuditMethod="AuditMethod" :printLevel="printLevel" ref="printRef"> </printCustomerDetail>

     <template #footer>
       <span class="dialog-footer">
         <el-button @click="dialogFormVisible = false">Cancel</el-button>

         3、确认打印按钮,点击开始打印
         <el-button type="primary" @click="dialogFormVisible = false" v-print="printObj"> Confirm </el-button>
       </span>
     </template>
</el-dialog>

二、问题解析

1、问:点击打印按钮,弹出的对话弹框中的内容总是显示第一次打开时的内容,不会重新变化。

答:这是element的Dialog 组件本身存在的问题, dialog作为父组件调用子组件时,仅仅只渲染一次,就不再进行渲染。解决的方法有两种,一种是在Dialog 组件中添加属性destroy-on-close,默认为false,功能是当关闭 Dialog 时,销毁其中的元素;一种是在Dialog 组件外边加上一个div标签,加上v-if ,条件和Dialog 出现的条件一致,这样每次渲染完都会进行摧毁,再重新调用组件,每次都会重新进行渲染。

2、问:如何实现打印功能。

答:使用vue3-print-nb库的v-print指令。


3、问:如何实现只打印对话弹框中的指定内容。

答:对要打印的内容,最外层盒子加上id,并在配置中指定对应的id。

- END -

 

到了这里,关于vue3问题:如何实现打印功能?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue实现打印功能

    在Vue应用中调用打印机功能,可以使用 JavaScript 的 window.print() 方法。这个方法会打开打印对话框,然后让我们选择打印设置并打印文档,但是尼这种方法依赖于浏览器的打印功能。 以下是一个简单的示例,演示如何在Vue组件中调用打印功能: 在Vue组件中,将需要打印的内容

    2024年02月12日
    浏览(40)
  • 【vue】实现打印功能

    一、vue-print-nb 官网地址:https://github.com/Power-kxLee/vue3-print-nb 【1】安装 【2】引用 vue2 引用 vue3 引用 【3】API 属性 类型 默认值 必要 可选值 描述 id String - 是 - 范围打印 ID(如果设置url则可以不设置id) url String - 否 - 打印指定的 URL。(不允许同时设置ID popTitle String - 否 - 默认

    2023年04月08日
    浏览(41)
  • vue 实现打印功能

    浏览器原生 API window.print() 可以用于打印当前窗口(window.document)视图内容。调用此方法会产生一个打印预览弹框,用户可以根据具体设置来得到打印结果。 调用 window.print() 会对整个 document.body 进行打印,而我们通常只需要打印一部分页面,可以使用打印插件 vue-print-nb vue

    2024年02月09日
    浏览(39)
  • 记录--vue3实现excel文件预览和打印

    在前端开发中,有时候一些业务场景中,我们有需求要去实现excel的预览和打印功能,本文在vue3中如何实现Excel文件的预览和打印。 关于实现excel文档在线预览的做法,一种方式是通过讲文档里的数据处理成html,一种是将文档处理成图片进行预览。 首先我们先讲一下实现ht

    2024年02月08日
    浏览(49)
  • 记录--vue3问题:如何实现微信扫码授权登录?

    一、需求 微信扫码授权,如果允许授权,则登录成功,跳转到首页。 二、问题 1、微信扫码授权有几种实现方式? 2、说一下这几种实现方式的原理是什么? 3、vue中的微信扫码授权登录,与uniapp和原生小程序的微信授权登录,它们之间有共同点吗? TWO 解决问题,答案速览

    2024年02月13日
    浏览(54)
  • vue3-print-nb 实现页面打印(含分页打印)

    全局引入 局部引入 官网地址: https://github.com/Power-kxLee/vue3-print-nb 官网有详细介绍 全页面打印 局部打印 被打印的区域需要被渲染出来,隐藏的元素不能打印 分页打印

    2024年02月09日
    浏览(47)
  • vue笔记——实现打印功能1

    第一步:安装vue-print-nb,打开项目终端输入 npm install vue-print-nb --save 第二步:打开package.json文件,在dependencies中出现vue-print-nb,说明安装成功,如下图所示。  第三步: 方法一:全局导入 在main.js文件输入以下代码: // 导入vue-print-nb import Print from \\\'vue-print-nb\\\' Vue.use(Print) 第四步

    2024年02月07日
    浏览(38)
  • vue-print 实现打印功能

    一、安装 1. Vue2 2. Vue3 二、基本使用 1. 直接打印页面HTML 1)方法 ① 给要打印的部分设置一个 id ② 在打印按钮中添加 v-print=\\\"\\\'#id名\\\'\\\" 2)代码(以表格为例) 2. 个性化设置 1)方法 打印按钮的 v-print 绑定一个对象 2)代码 3)效果展示 ① 预览工具 3. 打印URL 1)方法 ① 给 打印

    2024年02月02日
    浏览(43)
  • Vue前端实现excel的导入、导出、打印功能

    导入导出依赖: npm install xlsx@0.16.9 npm install xlsx-style@0.8.13 --save 安装xlsx-style,运行报错 This relative module was not found: ./cptable in ./node_modules/xlsx-style@0.8.13@xlsx-style/dist/cpexcel.js 解决报错 在node_modulesxlsx-styledistcpexcel.js 807行 的 var cpt = require(\\\'./cpt\\\' + \\\'able\\\'); 改为: var cpt = cptable; 打印

    2023年04月08日
    浏览(47)
  • vue实现打印浏览器页面功能(两种方法)

    1,安装 npm install vue-print-nb --save 2,引入 安装好以后在main.js文件中引入 Vue.use(Print); //注册 3,现在就可以使用了 4.如需通过链接地址打印:window.location.href = airway_bill; airway_bill为链接地址。 5.如果内容打印不全,在打印操作时点击更多设置,然后设置缩放。 插件地址:https

    2024年02月02日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包