介绍

通过在应用中集成打印功能,用户可以直接从页面打印工单,不用导出文件或使用其他外部工具。节省时间,提高效率,特别是当需要大量打印时。同时也可以将文件模板上传到数据库,提供给部门工作自行下载。
开源文档:https://www.npmjs.com/package/vue-print-nb

需求

需要对特定的区域进行打印,如果使用浏览器带的(ctrl+p)进行打印的话是全网页的,会将很多不需要的元素一起打印出这种非标准的打印方式更像是截图。而我的需求是将特定区域打印。通常情况下发表这些公告是在管理端。
在这里插入图片描述

依赖

npm install vue3-print-nb --save

引入

import { createApp } from 'vue'
import App from './App.vue'
import print from 'vue3-print-nb'
const app = createApp(App)
app.use(print)
app.mount('#app')

//或者使用指令的方式
import print from 'vue3-print-nb'
directives: {
    print   
}

文件结构

假如后端发回来的格式为富文本格式
A4标准尺寸:794*1122

  <div id="print" style="width: 794px; height: 1123px; border: 1px solid black; margin: 0 auto; padding: 20px;">
    <h1 style="text-align: center;">公告</h1>
    <p style="font-size: 18px; text-align: center;">敬请各位注意:此为公司发布的最新公告,请大家认真阅读。</p>

    <h2 style="font-size: 20px; margin-top: 40px;">公告内容:</h2>
    <p style="font-size: 16px;">
      亲爱的同事们:<br><br>
      经过公司的调整和规划,近期我们将进行以下重要事项的更新:<br><br>
      1. 公司办公时间调整为每天早上9点至下午5点。<br>
      2. 员工福利增加,包括健康检查与年度体检等项目。<br>
      3. 公司将举办年度团建活动,具体安排将另行通知。<br><br>
      请各位同事按照新安排执行,并及时向管理层反馈任何问题。<br><br>
      感谢大家的理解与支持!<br><br>
      —— 公司管理团队
    </p>
  </div>

局部打印

通过指令传递div标签上的id,调用浏览器的打印接口进行打印。

 <button v-print="'#print'">打印</button>

效果图

这样可以直接转为PDF或进行打印。
在这里插入图片描述
在这里插入图片描述

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐