当前位置:首页 > 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

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:

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

示例代码:

vue实现pdf下载

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 实现边框的方法 在 Vue 中实现边框效果可以通过多种方式完成,包括内联样式、CSS 类绑定、动态样式以及使用第三方 UI 库。以下是几种常见的实现方法。 内联样式绑定 使用 Vue 的 :…

vue实现功能

vue实现功能

Vue 功能实现方法 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现常见功能的几种方法: 数据绑定与响应式更新 在 Vue 中,数据绑定通过 v-model…

实现vue模版

实现vue模版

Vue 模板的基本结构 Vue 模板基于 HTML 语法,通过 Vue 的指令和插值实现动态渲染。以下是一个基础模板示例: <template> <div id="app"…

vue实现markdown

vue实现markdown

Vue 实现 Markdown 编辑器 在 Vue 中实现 Markdown 编辑器可以通过集成第三方库或自定义解析器完成。以下是两种常见方法: 使用第三方库(如 marked 或 markdown…

vue实现换行

vue实现换行

Vue 中实现换行的几种方法 在 Vue 中实现换行可以通过多种方式,具体取决于使用场景和需求。以下是常见的几种方法: 使用 HTML 的 <br> 标签 在模板中直接使用 <br…

vue 实现视频

vue 实现视频

Vue 实现视频播放功能 使用 Vue 实现视频播放功能可以通过 HTML5 的 <video> 标签或第三方库(如 video.js)来实现。以下是两种常见的方法: 使用 HTML5…