Vue 3 项目怎么在初始化时集成打印插件实现发票打印

小涛同学_7295

小涛同学_7295

2026-09-24

537人浏览

原创

推荐使用 vue3-print-nb 实现 vue 3 发票打印:安装对应版本、在 main.ts 全局注册、用 ref 标记打印区域并绑定 v-print 指令,配合 print.css 强制颜色与布局,避免不兼容 css 特性。

vue 3 项目怎么在初始化时集成打印插件实现发票打印

Vue 3 项目初始化时集成打印插件实现发票打印,核心是选对插件、配好环境、绑定数据、控制样式。推荐优先使用 vue3-print-nb——它轻量、易用、专为 Vue 3 设计,无需后端或复杂模板引擎,适合快速落地发票类打印需求。

选插件:明确版本,避免踩坑

Vue 3 必须安装 Vue 3 专用版,不是 vue-print-nb:

  • 运行 npm install vue3-print-nb --save(注意是 vue3-print-nb,不是 vue-print-nb)
  • 若项目用 TypeScript,在 src/env.d.ts 中补充声明:
    declare module "vue3-print-nb";
  • 不要全局引入 jQuery 或手动加载 hiprint 等重型方案——发票打印通常只需结构化内容输出,无需拖拽设计界面

挂载插件:在 main.ts 中全局注册

确保指令 v-print 在任意组件中可用:

Vue
Vue

避免 Vue 常见错误——响应式陷阱、ref 与 reactive 区别、计算属性时机及 Composition API 陷阱。

下载
  • 打开 src/main.ts
  • 添加导入并注册:
    import { createApp } from 'vue'<br>import App from './App.vue'<br>import Print from 'vue3-print-nb'<br><br>const app = createApp(App)<br>app.use(Print)<br>app.mount('#app')

写发票组件:用 ref 指向可打印区域

发票内容需包裹在独立容器中,便于局部打印和样式隔离:

  • 在组件中用 ref="printRef" 标记要打印的 DOM 区域
  • 配合 v-print 指令绑定该 ref:
    <button v-print:printref>打印发票</button>
  • 发票内容建议用语义化标签 + 内联样式或 scoped CSS 控制,例如:
    <div ref="printRef" class="invoice-print">
    <br>  <h2>增值税专用发票</h2>
    <br>  <p>发票号:{{ invoice.no }}</p>
    <br>  <table>...</table>
    <br>
    </div>

调优打印效果:关键样式必须加 media="print"

浏览器原生打印默认会隐藏背景色、边框、非文本元素,发票常因此丢失颜色和布局:

  • 在 public/index.html 的 中添加打印专用样式:
    <link rel="stylesheet" type="text/css" media="print" href="/print.css">
  • 在 public/print.css 中强制显示关键样式:
    @media print {<br>  * { -webkit-print-color-adjust: exact; color-adjust: exact; }<br>  .invoice-print { width: 210mm; margin: 0 auto; }<br>  img, .bg-red { background-color: #f00 !important; }<br>}
  • 避免使用 vh/vw、flex gap、CSS 变量等打印兼容性差的特性

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

全能打印神器
全能打印神器

全能打印神器是一款非常好用的打印软件,可以在电脑、手机、平板电脑等设备上使用。支持无线打印和云打印,操作非常简单,使用起来也非常方便,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

vue.js vue vue 3

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2083

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

4483

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

5610

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

5058

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

723

5

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

1975

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

2662

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

916

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

2979

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 16.7万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.4万人学习

Vue.js 微实战--十天技能课堂
Vue.js 微实战--十天技能课堂

共18课时 | 1.6万人学习