Vue.js组件开发-实现HTML内容打印

在Vue项目中实现打印功能,可以借助vue-html-to-paper插件来完成。

步骤

  1. 创建Vue项目:如果还没有Vue项目,可以使用Vue CLI来创建一个新的项目。
bash 复制代码
npm install -g @vue/cli
vue create vue-print-template
cd vue-print-template
  1. 安装vue-html-to-paper插件:该插件可以将HTML内容转换为打印页面。
bash 复制代码
npm install vue-html-to-paper --save
  1. 在Vue项目中配置和使用插件 :在main.js中引入并使用该插件,然后在组件中使用它来实现打印功能。

完整代码

main.js
javascript 复制代码
import Vue from 'vue';
import App from './App.vue';
// 引入vue-html-to-paper插件
import VueHtmlToPaper from 'vue-html-to-paper';

// 配置插件选项
const options = {
  name: '_blank', // 打印窗口的名称
  specs: [
    'fullscreen=yes', // 全屏模式
    'titlebar=yes', // 显示标题栏
    'scrollbars=yes' // 显示滚动条
  ],
  styles: [
    'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css', // 引入外部样式
    '/css/print.css' // 引入自定义打印样式
  ]
};

// 使用插件
Vue.use(VueHtmlToPaper, options);

Vue.config.productionTip = false;

new Vue({
  render: h => h(App),
}).$mount('#app');
App.vue
vue 复制代码
<template>
  <div id="app">
    <!-- 打印按钮 -->
    <button @click="printTemplate">打印模板</button>
    <!-- 打印模板内容 -->
    <div id="print-template" ref="printTemplate">
      <h1>这是一个打印模板</h1>
      <p>这里可以放置你需要打印的内容。</p>
    </div>
  </div>
</template>

<script>
export default {
  name: 'App',
  methods: {
    printTemplate() {
      // 使用vue-html-to-paper提供的$htmlToPaper方法进行打印
      this.$htmlToPaper(this.$refs.printTemplate, {
        // 可以在这里覆盖全局配置选项
        styles: [
          'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css',
          '/css/print.css'
        ]
      });
    }
  }
};
</script>

<style>
/* 全局样式 */
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

详细代码注释

  • main.js:

    • 引入vue-html-to-paper插件,并配置打印窗口的选项,如名称、规格和样式。
    • 使用Vue.use()方法将插件安装到Vue实例中。
  • App.vue:

    • 在模板中定义一个按钮,点击该按钮会触发printTemplate方法。
    • 创建一个div元素作为打印模板的容器,并使用ref属性引用该元素。
    • 在methods中定义printTemplate方法,使用this.$htmlToPaper方法将指定的DOM元素转换为打印页面。

使用说明

  1. 运行项目:在项目根目录下运行以下命令启动开发服务器。
bash 复制代码
npm run serve
  1. 打开浏览器 :访问http://localhost:8080,会看到一个"打印模板"按钮和一个包含打印内容的div元素。
  2. 点击打印按钮:点击"打印模板"按钮,会弹出一个新的打印窗口,显示打印模板的内容。可以在这个窗口中进行打印设置并打印。
  3. 自定义样式 :如果需要自定义打印样式,可以在/public/css/print.css文件中编写样式代码,并在main.js或组件中引入该文件。
相关推荐
高级程序源6 小时前
django校园寻物通失物招领平台32261-计算机课程设计、毕业设计
vue.js·python·mysql·小程序·django·flask·课程设计
WeiXin_DZbishe6 小时前
基于springboot宠物领养系统-计算机毕设 附源码【课程设计】94217
vue.js·spring boot·python·django·php·课程设计
架构技术专栏6 小时前
Agent 工具调用:从工具声明到执行反馈
前端·人工智能·后端
别动我齐刘海7 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
志尊宝8 小时前
Vue3 零基础每日笔记(071):暗黑模式与主题切换——CSS 变量 + Element Plus 暗黑方案
前端·css·笔记·vue·html·前端开发·软件开发
WeiXin_DZbishe8 小时前
基于springboot城市公交实时运营与调度系统-计算机毕设 附源码【课程设计】66173
java·vue.js·spring boot·后端·python·php·课程设计
刘发财8 小时前
前端如何生成10000页PDF文件?
前端·javascript·开源
WeiXin_DZbishe8 小时前
基于Springboot+AI的kuall音乐广场的设计与实现-计算机毕设 附源码【课程设计】12715
vue.js·人工智能·spring boot·后端·python·php·课程设计
A接拉起0079 小时前
2026 年 JavaScript 开发者需要了解的知识
前端·javascript·后端
_馒头9 小时前
pixiJs游戏开发实践 - 跳棋小游戏
javascript·vue.js