js实现导出页面成图片/PDF

jsPDF + html2canvas A4分页截断 完美解决方案(含代码 + 案例) 整理了75个JS高频面试题,并给出了答案和解析,基本上可以保证你能应付面试官关于JS的提问 阅读详情

安装

npm install html2canvas --save

npm install jspdf --save

导入

import html2canvas from 'html2canvas';

import JsPDF from 'jspdf'

导出图片

  1. 将要导出的部分限制一下,后面附带一个a标签

    <div class="..." ref="imageDom" id="imageDom" style="height: auto">
    <a href="" download="报表.png" id="download"></a>
    

    注:height: auto为必须,这样才能导出完整的,不仅是能看到的页面部分

  2. 导出方法

    savecanvas() {
        html2canvas(this.$refs.imageDom, {
            allowTaint: true,
            taintTest: false,
            height: $('#imageDom').outerHeight()
        }).then(canvas => {
            let imgUri = canvas.toDataURL('image/png').replace('image/png', 'image/octet-stream');
            $('#download').attr('href', imgUri);
            document.getElementById('download').click();
        });
    },
    

导出pdf

  1. 封装成一个公共文件
// 导出页面为PDF格式
import html2Canvas from 'html2canvas'
import JsPDF from 'jspdf'

export default {
    install(Vue, options) {
        Vue.prototype.getPdf = function (pdfTitle) {
            var title = pdfTitle
            html2Canvas(document.querySelector('#imageDom'), {
                allowTaint: true,
                taintTest: false,
                height: $('#imageDom').outerHeight()
            }).then(function (canvas) {
                    let contentWidth = canvas.width
                    let contentHeight = canvas.height
                    let pageHeight = contentWidth / 592.28 * 841.89
                    let leftHeight = contentHeight
                    let position = 0
                    let imgWidth = 595.28
                    let imgHeight = 592.28 / contentWidth * contentHeight
                    let pageData = canvas.toDataURL('image/jpeg', 1.0)
                    let PDF = new JsPDF('', 'pt', 'a4')
                    if (leftHeight < pageHeight) {
                        PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
                    } else {
                        while (leftHeight > 0) {
                            PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
                            leftHeight -= pageHeight
                            position -= 841.89
                            if (leftHeight > 0) {
                                PDF.addPage()
                            }
                        }
                    }
                    PDF.save(title + '.pdf')
                }
            )
        }
    }
}

  1. 调用
<Button  type="primary" @click="getPdf('报表')">导出PDF</Button>
【解决】jsPDF之长图片生成PDF 虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。 阅读详情

相关推荐

JS将图片转pdf,jspdf的使用

一个用JavaScript生成PDF的库。addImage第一个参数为图片,可以为链接、字节等,第二个参数为图片格式,第三和第四代表图片编写到当前页的哪个位置,第五和第六代表绘制图片的...

砷碲 - Shendi 6953

pdf.addimage的用法介绍

pdf.addimage()是一个可用于在PDF文件上插入图片的函数,它提供了控制图片大小、压缩质量、图片旋转度数等属性。

tcy9099的专栏 1万+

vue.js+jspdf.js+html2pdf.js 实现页面导出PDF

vue.js+jspdf.js+html2pdf.js 实现页面导出PDF 原本是导出word但客户考虑到问到的安全性要求改成了PDF,由于之前的word导出也是有前端生成的,所以为了不增加工作量导出依旧有前端完成。起初在网上找了很多方法都无法实现,都想放弃了让后端写,后来看到了关于jspdf.js+html2canvas.js的文章,想着试试看吧。对于前端导出PDF我就是个小白,啥也不会。按着文章一步步写吧。 安装插件html2canvas和jspdf npm install html2canvas--s

cosmos16的博客 5998

pdfjs 参数,使用jspdf以pdf格式添加图像

I am using jspdf to convert an image into a PDF.I have converted the image into a URI using base64encode. But the problem is that there are no errors or warnings shown in the console.A PDF is generate...

weixin_29304985的博客 2829

纯js实现页面html导出pdf(一)

    页面导出pdf,因为我的页面是动态生成且样式是不固定的,故采用这种方式将html页面导出pdf格式,可以实现分页 function $exportReportTemplet() {     // 将 id 为preview_container 的 div 渲染成 canvas html2canvas(document.getElementById("p...

有翅膀的猪 3486

Vue导出页面为PDF格式高清(亲测有效)

通过在网上查阅资料,说一下思路.就是将页面转换成图片格式.然后通过图片的base64码.生成PDF… 做个整理总结,如果也你实现了请留下你点赞的小手 1 、首先我们要安装两个包.分别是: 注意: 如果npm下载较慢,建议可以考虑换成cnpm下载 下载完这两个包之后项目有可能会报错,不要慌张,如果英语不好看不懂,复制到百度,就会解决(我当时报错的内容是Module build failed: Error: ENOENT: no such file or directory, scandir...,就是..

小柠檬爱编程 2734

vue将页面导出pdf,vue导出pdf

vue导出pdf 新需求:需要前端下载把当前html下载成pdf文件 菜鸟觉得牛逼啊,这必须记录下来嗷嗷嗷嗷 1、第一步:我们要添加两个模块 //第一个:将页面html转换成图片 npm install --save html2canvas //第二个:将图片生成pdf npm install jspdf --save 2、第二步: 定义全局函数…创建一个htmlToPdf.js文件在指定位置.我个人习惯放在('src/components/utils/htmlToPdf’)中 htmlToPdf.js文

weixin_45869649的博客 1万+

uniapp页面转为pdf文件并下载(导出)

uniapp页面转为pdf文件并下载(导出)一、cmd指令安装 vue-print-nb --save二、定义全局函数,创建htmlToPdf.js文件四、在main.js函数中使用定义的函数文件。五、使用方法:需要导出的ui部分.定义id为"pdfDom".此部分将就是pdf显示的部分。 一、cmd指令安装 vue-print-nb --save npm install --save html2canvas npm install jspdf --save ``` 二、定义全局函数,创建htmlToP

weixin_44089042的博客 8425

JavaScript 实现html导出为PDF文件

相信各位前端工程狮们在一些报表项目,管理系统项目中都会遇到在这样的需求:申请报、表格、简历等等图文信息有导出为PDF文件。下面是记录我在项目中完成该需求的代码dome,发布出来也是希望对大家有些帮助。 1,整体思路 将HTML元素打印或导出为PDF文件,无非就是提取元素页面内容,然后转化为图片,将图片保存为PDF文件。 2,准备工作 将HTML元素转化为图片:html2canvas.js 插件; <script src="https://cdn.bootcss.com/h...

weixin_39166851的博客 1万+

手推反向传播+numpy实现

反向传播的重要性不必多说,手推也是必备基础,大厂面试要求用numpy实现一下BP也是经常的事。下面以一个简单的两层网络为例(简单到连bias都没有的那种),真·手推反向传播+numpy实现。 说明: input:输入 net_h:隐层 S(x):sigmoid简写 SD(x):sigmoid导数的简写 out_h:隐层经过sigmoid激活的输出 net_o:输出层 out_o:经过经过sigmoid激活的输出层,也就是最后的输出 target(简写t1、t2):Ground...

xian0710830114的专栏 1234

【Labview与SQL Server互联(labview可以引用数据库)】

Labview与SQL Server互联

Magize的博客 3578

html页面导出为pdf(jsPDF、iText、wkhtmltopdf)

html页面导出pdf,本来是一件很简单的事情,在浏览器直接打印(Mac快捷键为⌘+p;Windows快捷键为ctrl+p),就可以把页面另存为pdf文件,但对于要经常把页面导出为pdf的用户来说并不友好。 调研了几种html导出pdf的实现方式,这里把要点记录下来分享下。 调研对象 优点 缺点 分页 图片 表格 链接 中文 特殊字符、样式 导出...

点滴汇聚,智在积累。——Danny 15万+

新手小白如何学习编程

学习目标推荐第一门语言优势网站 / APP 开发(前端)JavaScript浏览器原生支持,能快速做出可视化效果后端 / 服务器 / 数据分析Python语法简洁像英语,库多、应用广(入门友好)游戏开发先用电竞入门,再转专业引擎硬件 / 嵌入式(比如单片机)C 语言贴近硬件,行业标准办公自动化(Excel / 文档处理)Python快速解决重复工作(比如批量改文件)👉新手首选推荐。

2501_94331842的博客 2225

JS 如何将 HTML 页面导出为 PDF

好久没在CSDN写博客了,因为都放在了个人网站了哈 我这里有个需求,就是前端添加个按钮,提供HTML页面导出为PDF的功能。我谷歌了好久(难道是我谷歌的方式不对 (ˉ▽ˉ;)…),找到的答案大都推荐 jsPDF + html2canvas 的方式。参考了这两个开源项目的文档,自己写,失败,导出的pdf是空的。 参考 stackoverflow 代码,同样失败,同样只导出空白的pdf,他们咋成功了?

pwc1996的博客 7万+

振动能量采集技术:从原理到实战,破解物联网供电难题

能量采集技术旨在捕获环境中的废弃能量(如机械振动、热能、光能)并将其转化为电能,其核心原理在于通过压电、电磁、静电或摩擦电等物理效应实现能量形式的转换。这项技术的核心价值在于为物联网(IoT)中难以布线或更换电池的分布式传感器节点、植入式医疗设备等提供近乎永续的电力解决方案,从而解决物联网部署的“最后一米供电”瓶颈。其应用场景广泛覆盖工业预测性维护、结构健康监测、可穿戴设备及消费电子等领域。本文聚焦于振动能量采集这一细分方向,深入剖析了压电式、电磁式、电容式及摩擦纳米发电机(TENG)等主流技术路线的实战考

weixin_42660494的博客 560

计算机视觉(角点检测)- 1 - Harris角点检测

计算机视觉(角点检测)-1.1 Harris角点检测学习前言 学习前言   今天更新一下计算机视觉的东西吧,哈哈哈o( ̄︶ ̄)o   关于角点检测呢,就是检测图像中角点的算法,常见的有四种常见的算法:Moravec角点检测算法、 Harris角点检测算法、Shi-Tomasi 算法、FAST角点检测算法,不过常用的就两种吧——Harris角点检测算法、Shi-Tomasi 算法(反正我基本上就只用到这两种,先着重介绍前面两种,后面再花世界介绍吧)(~ ̄▽ ̄)~ ...

qq_40374812的博客 1万+

Html转PDF,前端JS实现Html页面导出PDF(html2canvas+jspdf)

当我们在不想改变后端代码的同时想是纯html页面导出PDF,那么(html2canvas+jspdf)就是无疑最好的选择,导出时它不占用我们服务器的资源,而是由用户本地自行执行js文件下载PDF,不占用我们系统的带宽,所以这无非是最好的选择方式

qq_45830276的博客 2万+

网络系统管理专栏-配套练习+知识点详解

网络系统管理专栏-配套练习+知识点详解

bfq05234214的博客 678

JS 如何将 HTML 页面导出为多页 PDF

前话之前写了一篇博文 JS 如何将 HTML 页面导出为 PDF 。 当时只是自己有个需求,只是导出一页PDF,写个了示例。之后就有同学私信我问我怎么导出多页PDF。好吧,其实这些看文档画画图自己是可以写出来的。以后也可能有转换HTML导出多页的PDF需求,就决定写一个库 renderPDF 吧。地址在这里:https://github.com/pwcong/how-transform-html-

pwc1996的博客 2万+

PMO与供应链管理的整合:端到端项目交付的优化策略

在当今全球化和市场竞争日益激烈的环境中,组织面临着前所未有的项目复杂性和交付压力。传统上相互独立的项目管理办公室(PMO)与供应链管理(SCM)正逐渐意识到:只有通过无缝整合,才能实现真正高效的端到端项目交付。本文深入探讨了PMO与供应链管理整合的战略价值、核心框架和实施路径,通过生动的比喻、实际案例和实用工具,展示了如何打破部门壁垒,构建协同高效的项目生态系统。无论您是PMO负责人、供应链专业人士还是高级管理层,都将从本文获得重塑项目交付模式、优化资源利用、降低风险并提升组织竞争力的宝贵见解和行动指南。

项目管理的博客 943

外部PLC触发VisionMaster多流程运行

上一讲,介绍了海康VisionMaster与西门子PLC1200进行S7通信。在前一讲的基础上,讲解如何通过PLC触发,实现VisionMaster的多流程运行。

haier123888的博客 4645

vue 将echarts的图片导出成pdf文件

需求: 将页面的echarts 图和页面的列表导出成pdf文件。 思路:echarts可以直接保存为图片,将经过base64编码后直接传给后台即可,table 表格只需要表格中的数据传给后台即可,pdf的导出利用itextpdf 即可。 具体实现 1 导出按钮 <Button type="success" @click="exportPdf()"><Icon t...

5506

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Vue中将页面导出为PDF

在Vue中实际是把页面利用canvas转换成图片,然后再用图片的base64码转成PDF,这里就使用到了两个插件html2canvas和jspdf。在目录src下创建utils文件夹,里面创建一个exportPdf.js,将下面内容复制到js文件里面。在项目或者需要用到的组件中引入方法。.........

HAI_GUI的博客 7027

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

前端实现html页面导出pdf

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-...

岁月如歌去,十年弹指间 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

HTML页面导出为PDF

交接的内容中涉及到了HTML页面导出为PDF这一功能需求,虽然之前由看过,但是为了防止自己忘记,还是自己再实践一下的好,嗯。测试1:准备两个js文件jsPdf.debug.js //选择合适你的版本 html2canvas.js //选择合适你的版本需要这样两个js文件,其中html2canvas.js文件主要用于将html文件转换为图片,而后jsPdf.debug.js文件负责将图片导成文件...

2tong 1万+

html2canvas + jspdf实现页面导出成pdf

通过这个封装,我们实现了一个轻量级且功能完备的 PDF 导出工具。它不仅解决了最让人头疼的 长页面截断 问题,还通过 scale 参数保证了导出的清晰度。

softshow1026的博客 1079
上一篇: 使用路由守卫 + vuex实现前端路由权限控制
下一篇: js + vue实现导出页面数据/全部数据至excel表格(自定义导出内容的格式)
qq_42373684
博客等级 码龄8年 2粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值