当前位置:首页 > VUE

vue实现转成pdf实现打印功能

2026-01-19 22:52:26VUE

实现Vue转PDF及打印功能的方法

使用html2canvas和jspdf库

安装依赖库:

npm install html2canvas jspdf

在Vue组件中引入并实现:

import html2canvas from 'html2canvas';
import jsPDF from 'jspdf';

export default {
  methods: {
    async exportToPDF() {
      const element = document.getElementById('content-to-export');
      const canvas = await html2canvas(element);
      const imgData = canvas.toDataURL('image/png');

      const pdf = new jsPDF('p', 'mm', 'a4');
      const imgWidth = 210; // A4宽度
      const imgHeight = canvas.height * imgWidth / canvas.width;

      pdf.addImage(imgData, 'PNG', 0, 0, imgWidth, imgHeight);
      pdf.save('export.pdf');
    }
  }
}

使用vue-html2pdf插件

安装插件:

npm install vue-html2pdf

组件实现:

import VueHtml2pdf from 'vue-html2pdf'

export default {
  components: { VueHtml2pdf },
  methods: {
    generatePDF() {
      this.$refs.html2Pdf.generatePdf()
    }
  }
}

模板部分:

<vue-html2pdf ref="html2Pdf">
  <!-- 要导出的内容 -->
  <div id="content">
    <!-- 你的HTML内容 -->
  </div>
</vue-html2pdf>
<button @click="generatePDF">导出PDF</button>

打印功能实现

添加打印按钮和方法:

methods: {
  printPDF() {
    const element = document.getElementById('content-to-print');
    const opt = {
      margin: 1,
      filename: 'document.pdf',
      image: { type: 'jpeg', quality: 0.98 },
      html2canvas: { scale: 2 },
      jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
    };

    html2pdf().set(opt).from(element).save();
  }
}

样式优化建议

为打印添加专门样式:

@media print {
  body * {
    visibility: hidden;
  }
  #content-to-print, #content-to-print * {
    visibility: visible;
  }
  #content-to-print {
    position: absolute;
    left: 0;
    top: 0;
  }
}

注意事项

  • 处理跨域图片问题,确保图片可访问
  • 大文档分页处理可考虑使用jsPDF的addPage方法
  • 复杂表格建议转换为图片再插入PDF
  • 测试不同浏览器兼容性

以上方法可根据项目需求选择合适方案,html2canvas+jspdf组合适合定制化需求,vue-html2pdf插件提供更简单的集成方式。

vue实现转成pdf实现打印功能

标签: 转成功能
分享给朋友:

相关文章

vue实现拨号功能

vue实现拨号功能

Vue实现拨号功能的方法 使用HTML5的tel协议 在Vue模板中直接使用<a>标签的tel:协议实现拨号功能。这种方法适用于移动端浏览器,点击后会调起系统的拨号界面。 <te…

php实现linux关机重启功能

php实现linux关机重启功能

通过PHP执行Linux关机或重启命令 PHP可以通过exec()、shell_exec()或system()等函数调用系统命令实现关机或重启功能,但需注意权限问题。 使用exec函数执行命令 /…

php实现留言板功能

php实现留言板功能

PHP 留言板功能实现 数据库设计 创建数据库表 messages,包含以下字段: id:自增主键 name:留言者姓名(VARCHAR) email:留言者邮箱(VARCHAR) content:…

uniapp实现支付功能

uniapp实现支付功能

支付功能实现概述 在UniApp中实现支付功能通常需要对接第三方支付平台(如微信支付、支付宝支付等)。以下是基于微信支付和支付宝支付的通用实现流程。 微信支付实现步骤 1. 配置支付权限 在微信开…

原生实现vue功能

原生实现vue功能

原生 JavaScript 实现 Vue 核心功能 使用原生 JavaScript 模拟 Vue 的核心功能(如数据绑定、虚拟 DOM、响应式更新等),可以通过以下方式实现: 数据响应式系统 通过…

php怎么实现登录功能

php怎么实现登录功能

数据库准备 创建用户表存储登录信息,通常包括用户名、密码(需加密)等字段。示例SQL: CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY…