当前位置:首页 > VUE

vue实现pdf下载

2026-01-15 03:39:30VUE

Vue 中实现 PDF 下载的方法

使用 pdf-lib 生成并下载 PDF

安装 pdf-lib 库:

npm install pdf-lib

示例代码:

import { PDFDocument, StandardFonts, rgb } from 'pdf-lib';

async function generatePDF() {
  const pdfDoc = await PDFDocument.create();
  const page = pdfDoc.addPage();
  const { width, height } = page.getSize();
  const font = await pdfDoc.embedFont(StandardFonts.Helvetica);

  page.drawText('Hello World!', {
    x: 50,
    y: height - 50,
    size: 30,
    font,
    color: rgb(0, 0, 0),
  });

  const pdfBytes = await pdfDoc.save();
  const blob = new Blob([pdfBytes], { type: 'application/pdf' });
  const link = document.createElement('a');
  link.href = URL.createObjectURL(blob);
  link.download = 'example.pdf';
  link.click();
}

使用 html2pdf.js 将 HTML 转换为 PDF

安装 html2pdf.js

vue实现pdf下载

npm install html2pdf.js

示例代码:

import html2pdf from 'html2pdf.js';

function downloadPDF() {
  const element = document.getElementById('content-to-export');
  const opt = {
    margin: 10,
    filename: 'export.pdf',
    image: { type: 'jpeg', quality: 0.98 },
    html2canvas: { scale: 2 },
    jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
  };

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

直接下载服务器上的 PDF 文件

使用 axiosfetch 下载服务器上的 PDF:

vue实现pdf下载

function downloadPDFFromServer() {
  const link = document.createElement('a');
  link.href = '/path/to/file.pdf';
  link.download = 'document.pdf';
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
}

使用 jsPDF 生成简单 PDF

安装 jspdf

npm install jspdf

示例代码:

import jsPDF from 'jspdf';

function generateSimplePDF() {
  const doc = new jsPDF();
  doc.text('Hello World!', 10, 10);
  doc.save('simple.pdf');
}

注意事项

  • 浏览器兼容性:某些 PDF 生成库可能不支持旧版浏览器。
  • 文件大小:生成的 PDF 文件过大可能影响性能。
  • 权限问题:确保下载操作由用户交互触发,避免被浏览器拦截。
  • 样式保留:使用 HTML 转 PDF 时,复杂样式可能需要额外配置。

标签: vuepdf
分享给朋友:

相关文章

简易实现vue

简易实现vue

简易 Vue 实现思路 核心是数据劫持结合发布-订阅模式,通过 Object.defineProperty 或 Proxy 监听数据变化,触发视图更新。 数据劫持实现 class Observe…

vue表单实现搜索

vue表单实现搜索

实现Vue表单搜索功能 在Vue中实现表单搜索功能通常涉及表单绑定、事件处理和搜索逻辑。以下是具体实现方法: 数据绑定与表单结构 使用v-model实现表单与Vue数据的双向绑定: <tem…

vue 实现toast

vue 实现toast

vue 实现 toast 的方法 在 Vue 中实现 Toast 提示功能可以通过多种方式,以下是几种常见的实现方法: 使用第三方库 Vue 生态中有许多成熟的 Toast 库,例如 vue-toa…

computed vue 实现

computed vue 实现

computed 在 Vue 中的基本用法 Vue 的 computed 属性用于声明依赖于其他数据的计算属性。当依赖的数据变化时,计算属性会自动重新计算并缓存结果。 export defaul…

vue实现逻辑

vue实现逻辑

Vue 实现逻辑的核心概念 Vue.js 是一个渐进式 JavaScript 框架,其核心逻辑围绕数据驱动和组件化开发。通过响应式系统、虚拟 DOM 和组件生命周期等机制,Vue 实现了高效的前端开发…

vue实现listview

vue实现listview

Vue 实现 ListView 的方法 基础列表渲染 使用 v-for 指令可以轻松实现基础列表渲染。在 Vue 中,v-for 用于遍历数组或对象,生成动态列表。 <template>…