vue项目导出pdf(前端将html转为pdf并导出)

工具包

复制代码
html2canvas:将页面html转canvas
jspdf:根据canvas生成的图片导出pdf

官网

GitHub - parallax/jsPDF: Client-side JavaScript PDF generation for everyone.Client-side JavaScript PDF generation for everyone. - parallax/jsPDFhttps://github.com/parallax/jsPDF

示例代码

javascript 复制代码
import html2canvas from "html2canvas";
import jsPDF from "jspdf";

export const downloadPDF = (page, name) => {
    html2canvas(page).then(function (canvas) {
        canvas2PDF(canvas, name);
    });
};

const canvas2PDF = (canvas, name) => {
    let contentWidth = canvas.width;
    let contentHeight = canvas.height;

    //a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高
    let imgWidth = 455.28;
    let imgHeight = 455.28 / contentWidth * contentHeight;

    // 第一个参数: l:横向  p:纵向
    // 第二个参数:测量单位("pt","mm", "cm", "m", "in" or "px")
    let pdf = new jsPDF("p", "pt");

    pdf.addImage(
        canvas.toDataURL("image/jpeg", 1.0),
        "JPEG",
        70,
        30,
        imgWidth,
        imgHeight
    );
    if (!name) name = '导出'
    pdf.save(name + ".pdf");
};
相关推荐
To_OC6 分钟前
绕开层层 props 搬运:我把 useContext 和自定义 Hook 跑通了
前端·react.js·前端框架
北凉温华8 分钟前
Vue3 可视化打印设计插件|拖拽生成票据/标签打印模板(开源体验版)
前端
程序员黑豆18 分钟前
Java变量详解:从入门到精通
java·前端·ai编程
andr_gale1 小时前
02_uniapp自定义上凸效果的底部TabBar
前端·javascript·uni-app·移动端
一心只读圣贤书1 小时前
AI 驱动前端测试实战:从需求文档到 Playwright 自动化用例
前端·人工智能
拖孩1 小时前
用 AI 重解千年观音灵签,做了一个微信小程序,每天摇一摇,命运给你回应
前端·后端·微信小程序
難釋懷1 小时前
Nginx日志
前端·网络·nginx
Web极客码2 小时前
用 Python 搭建工具调用 Agent 的调试过程
java·服务器·前端
2401_881828322 小时前
简易文本处理网页工具|AI 通识课第三次作业
前端·javascript·html
Ai拆代码的曹操2 小时前
Dubbo 2.7.5 的线程上下文陷阱:从版本演进看 AllChannelHandler 的设计之痛
前端·dubbo·safari