Vue中将页面导出为PDF

vue2中使用pdf.js浏览pdf文件,包括pdf显示、跳转指定页面、高亮关键词等功能 里面有很多的版本, 高版本的可能浏览器不兼容或者还要考虑手机上面的,最好下载低版本的,这里是v2.16.105版本。出现这个错误就是跨域的问题,找到pdfjs/web/viewer.js文件,注销跨域代码就可以。利用 web里面的viewer.html就可以直接打开pdf,里面有默认的一个pdf文档。在本地static里面创建文件夹pdfjs,然后将下载包里面的文件放进pdfjs。根据pdf.js内置函数,可直接修改当前页面,没有太大的跳动,利用Iframe。比如按照以上步骤方法为。 阅读详情

实现思路

在Vue中实际是把页面利用canvas转换成图片,然后再用图片的base64码转成PDF,这里就使用到了两个插件html2canvas和jspdf
在这里插入图片描述

第一步

安装两个插件

npm install --save html2canvas //html页面转换成图片
npm install jspdf --save //把base64转换为PDF

第二步

在目录src下创建utils文件夹,里面创建一个exportPdf.js,将下面内容复制到js文件里面

// 导出页面为PDF格式
import html2Canvas from 'html2canvas'
import JsPDF from 'jspdf'

export function getPdf(title,id){
  html2Canvas(document.querySelector(`#${id}`), {
    allowTaint: true
  }).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')
  }
  )
}

第三步

在项目或者需要用到的组件中引入方法
在这里插入图片描述

第四步

使用方法
HTML

<!-- 这里就是要变成图片的容器 -->
<div id="pdfHtml" ref="printHtml" style="text-align: center">
	<img src='../assets/logo.png'/>
</div> 
<button type="primary" @click="exportPDF">导出PDF</button>

JS

// 导出PDF
exportPDF() {
   getPdf('测试','pdfHtml');
},

全部代码

<template>
    <div>
        <!-- 这里就是要变成图片的容器 -->
        <div id="pdfHtml" ref="printHtml" style="text-align: center">
            <img src="../assets/logo.png" />
        </div>
        <button type="primary" @click="exportPDF">导出PDF</button>
    </div>
</template>

<script>
import { getPdf } from '../utils/exportPdf';
export default {
    methods: {
        // 导出PDF
        exportPDF() {
            getPdf('测试', 'pdfHtml');
        },
    },
};
</script>

<style>
</style>

展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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 阅读详情

相关推荐

前端vue基于html2canva jspdf 实现前端页面加水印 并导出页面PDF

view class="exportPdfBtn" @click="downKcReport()">导出PDF//如果将水印列数设置为0,或水印列数设置过大,超过页面最大宽度,则重新计算水印列数和水印x轴间隔。watermark_fontsize: '14px', //水印字体大小。watermark_y_space: 102, //水印y轴间隔。watermark_x_space: 80, //水印x轴间隔。watermark_font: '微软雅黑', //水印字体。

chenchuang0128的博客 4607

html转换成pdf

安装插件: npm install --save html2canvas npm install jspdf --save 引入 plugins/ htmlToPdf.js import html2Canvas from 'html2canvas' import JsPDF from 'jspdf' export default{ install (Vue, options) { Vue.prototype.getPdf = function () { var title

南下客 1010

vue前端怎么导出图片_VUE中将页面导出为图片或者PDF

导出为图片1.将页面html转换成图片 npm install html2canvas --save2.在需要导出的页面引入import html2canvas from 'html2canvas';3.在 methods 中添加方法dataURLToBlob(dataurl) {//ie 图片转格式var arr = dataurl.split(','), mime = arr[0].m...

weixin_39519741的博客 1943

vue使用pdfjs

前言:在项目开发过程中,可能会遇到在线预览pdf的功能,我就遇到了,期间真是一把心酸一把泪啊,最终把可以使用的结果记录下来,以便后面少采坑。 一、vue使用pdfjs 1、下载pdfjs 我把插件文件上传到csdn上了,下载地址 2、把下载的文件放到static下 我把文件放到了static/plugins/pdf下了,具体的位置可以自行调整 3、新建一个templete模板 模板中加入以下内容,获取到的pdf文件是以流的形式返回给插件的 html内容如下 <template> <d

温润如风的博客 1万+

vue项目中导出为pdf格式的

html2Canvas + jsPDF 导出PDF,缺点就是模糊 1、下载插件 npm i html2canvas jspdf --save-dev 2、创建一个新的文件 import html2canvas from 'html2canvas'; import JsPDF from 'jspdf'; /** * @param ele 要生成 pdf 的DOM元素(容器)...

qq_43688916的博客 1974

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

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

小柠檬爱编程 2735

vue-element-admin 项目中将局部页面导出为PDF格式

整体思路:将需要导出的内容页面转换为PDF格式,再通过图片的Base64码生成PDF。 html 页面 <el-button type=“success” @click=“getPdf(‘exportPdf’,filename)”> js部分: 下面我们将进行实际操作: 1.我们需要引入两个模块 html2canvas和jsPdf 安装上面两个模块: npm install htm2...

helloworldmyself的专栏 2614

【Unity Animation 2D】从零到一:骨骼绑定与IK动画实战指南

本文详细介绍了Unity中2D骨骼绑定与IK动画的实战流程,从角色素材准备、骨骼系统创建到权重绘制和IK设置,逐步指导开发者掌握2D动画制作技巧。通过反向动力学(IK)技术,实现更自然的角色动画效果,适用于游戏开发和动画制作。

weixin_30430677的博客 370

vue中将页面导出为.pdf和.html

vue中将页面导出为pdf介绍导出为.PDF导出为.htmlConclusion 介绍 如果项目中包含报表业务,通常都会有导出功能。根据不同需求导出为不同格式导出,有PDF、Excel、Word格式等…当然,导出的方法也有很多,一般都是后端导出前端直接点击下载即可,但是是不是前端就不能实现导出功能呢,也不是。这里,就在vue项目中使用已有的依赖包来实现导出功能。 导出为.PDF // step 1...

weixin_43443341的博客 3120

转录组分析中的Fastp和FastQC:如何快速检测数据质量并优化流程

本文深入探讨了转录组分析中数据质量控制的核心流程,重点介绍了Fastp和FastQC两款工具的组合应用。FastQC负责对原始测序数据进行全面质量评估,生成可视化报告;Fastp则能一站式完成接头切除、低质量序列过滤、长度筛选等关键质控步骤。文章提供了详细的参数解读、实战脚本和自动化流程构建指南,帮助研究人员快速检测数据质量并优化预处理流程,为下游的差异表达等分析奠定可靠基础。

weixin_28452161的博客 181

svn co --depth和svn up --set-depth 只check out下一层文件 只更新指定文件 只更新下一层的用法

svn的工程可能很大 有时我们只需要部分文件即可 这里介绍几个命令 1.svn co(check out) --depth --depth=empty,files,immediates,infinity 假设某svn结构如下 svn://root/PRO/A_dir/a svn://root/PRO/B_dir/b svn://root/PRO/c_file svn co --depth=emptysvn://root/PRO 此时只会在本地check out出 PRO/的空目录。 sv.

cy413026的博客 1万+

Vue项目中将页面内容导出为PDF文件

按照上述步骤,你可以实现在Vue项目中将指定的页面内容转换并下载为PDF文件的功能。在Vue.js项目中将页面内容转换为PDF格式,可以采用html2canvas和jsPDF这两个库来实现。2.根据要转换的内容自定义html2canvas和jsPDF的配置参数,例如设置页面大小、页边距、图像质量等。1.确保你有权访问并且正确设置了所有页面上的资源(如图片、字体等),特别是当它们跨域时。3.考虑兼容性和性能问题,因为大型或复杂的页面可能会影响转换效率和最终PDF的质量。

weixin_46266464的博客 943

uniapp 记录运动轨迹 开发_智能手环穿戴设备APP开发解决方案

智能手环是一种穿戴式智能设备,是目前备受关注的科技产品。目前智能手环具有的功能有记录日常生活中的运动数据、移动轨迹,定位等,有些还可以进行睡眠质量的检测,并将这些数据传送至移动端如手机、平板等,可对数据进行分析,指导健康生活的作用。而智能手环开发方案就是将这些功能实现,将算法烧录到主控板上。智能手环都有哪些功能  1、记录运动数据  对于喜欢健身的用户来说,智能手环记录的运动数据功能...

weixin_39678493的博客 1764

VUE中将页面导出为图片或者PDF

VUE中将页面导出为图片或者PDF导出为图片导出为PDF 导出为图片 将页面html转换成图片 npm install --save html2canvas 在需要导出的页面引入 import html2Canvas from 'html2canvas' 在 methods 中添加方法 dataURLToBlob(dataurl) {//ie 图片转格式 ...

weixin_43964779的博客 9544

MaxScript批量修改材质、贴图名称

MaxScript批量修改材质、贴图名称1 实现效果1.1 修改前材质、贴图名称1.2 修改后2 代码 1 实现效果 1.1 修改前材质、贴图名称 1.2 修改后 2 代码 prefixName = "prefiname" maxFile = "maxfilepath" makeDir "newBitmappath" mapsPath = newbitmappath + "\\" fn formatStr index = ( str = index as string newS

郑德帅 3241

Python爬虫实战:利用Playwright与异步技术高效抓取链家十万级二手房数据

在开始编写代码之前,我们首先需要为项目选择合适的技术栈。1. 传统方案:Requests + BeautifulSoup优点: 简单、轻量、学习成本低。直接发送HTTP请求获取HTML,然后解析。缺点: 对于大量由JavaScript动态渲染的内容无能为力。现代网站(包括链家)大量使用JS来加载数据和实现交互,简单的HTTP请求无法获取到完整的页面内容。此外,容易被基于IP或请求头特征的反爬机制拦截。2. 进阶方案:Selenium优点。

2201_76125261的博客 891

vue中将页面导出成pdf

vue中将页面导出成pdf

weixin_61211370的博客 713

LVGL 组件对齐方式说明

本文说明 LVGL(以 v8 为例)中常用的 lv_align_t对齐选项的含义与用法,对应界面设计工具里下拉列表中的以及等命名。

摸鱼专家 131

vue-element-admin 项目中将局部页面导出为PDF格式

整体思路:将需要导出的内容页面转换为PDF格式,再通过图片的Base64码生成PDF。 html 页面 &lt;el-button type=“success” @click=“getPdf(‘exportPdf’,filename)”&gt; js 下面我们将进行实际操作: 1.我们需要引入两个模块 html2canvas和jsPdf 安装上面两个模块: npm insta...

qq_33553636的博客 2449

基于simulink创建一个针对双馈异步风力发电机并网运行的仿真模型

摘要:本文详细介绍了基于Simulink的双馈异步风力发电机(DFIG)并网运行仿真建模方法。系统包含风速输入、风力机、双馈发电机、电力电子变换器、控制器和并网接口等模块,通过8个步骤完整呈现了建模流程,包括风速模拟、机械功率计算、发电机特性建模、变流器控制策略设计等关键环节。仿真可评估系统在不同风速条件下的动态响应、最大功率跟踪能力和发电效率,为风力发电系统的优化设计提供有效验证手段。模型可根据实际需求扩展环境因素和电网交互等细节,提高仿真精度。

amy_mhd的博客 333

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

在vue中将页面元素转化为图片和pdf导出

【代码】在vue中将页面元素转化为图片和pdf导出。

weixin_47251205的博客 968

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Vue中 前端实现生成 PDF 并下载

思路: 通过 html2canvas 将 HTML 页面转换成图片,然后再通过 jspdf 将图片的 base64 生成为 pdf 文件。 1. 安装及引入 // 将页面 html 转换成图片 npm install html2canvas --save // 将图片生成 pdf npm install jspdf --save 在项目主文件 main.js 中引入定义好的实现方法并注册 import htmlToPdf from '@/utils/htmlToPdf'; // 使用 Vue.use(

明天也要努力的博客 2581

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

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万+

vue前端怎么导出图片_将vue页面导出为图片或者PDF文件

导出为图片1.将页面html转换成图片 npm install html2canvas --save2.在需要导出的页面引入 import html2canvas from 'html2canvas';3.在 methods 中添加方法dataURLToBlob(dataurl) {//ie 图片转格式var arr = dataurl.split(','), mime = arr[0].m...

weixin_39893274的博客 1078

Vue 将页面导出成PDF文件

我在前端岗位上要实现个可视化图表页的PDF文件导出,在这里给大家分享下使用jsPDF和html2canvas包将Vue页面导出成PDF的方法。 1. 下载npm包 npm install html2canvas npm install jspdf 2. 创建插件.js文件 Vue-cli项目的话是在./utils文件夹下,我在这里使用的nuxt框架,所以是在./plugins文件夹下。 import html2Canvas from 'html2canvas'; import JsPDF from 'j

JeffreytheCoder的博客 5536

vue签字之后生成一张图片_Vue将页面导出为图片或者PDF

本文实例为大家分享了vue导出页面为pdf格式的具体代码,供大家参考,具体内容如下导出为图片1.将页面html转换成图片npm install html2canvas --save2.在需要导出的页面引入import html2canvas from 'html2canvas';在 methods 中添加方法dataurltoblob(dataurl) {//ie 图片转格式var arr = d...

weixin_42569429的博客 604
上一篇: 微信小程序获取用户信息相关问题
下一篇: 原生JS实现文件自定义位置盖章功能并导出PDF
龟中的程序员
博客等级 码龄7年 328粉丝 38原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龟中的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值