利用插件html2canvas 和jspdf

第一步安装 html2canvas 和jspdf

npm install html2canvas --save //html页面转换成图片

npm install jspdf --save //把base64转换为PDF

第二步检查是否有图片,没有图片直接进入第三步

根据后台方法

import axios from 'axios'

export function img2base64(src) {

return axios({

method: 'post',

url: ``,//自己的url

data: { src: src }

})

}

第三步建立htmlToPdf.js文件 ,我编写的路径为utils/htmlToPdf,如果只需要导出,到下面的PDF.save(title + '.pdf') //到此可以直接下载

打印的话,需要接口转换

// html文档转换为pdf

import axios from 'axios'

import html2Canvas from 'html2canvas'

import JsPDF from 'jspdf'

const url = '' //自己的url地址

var PDF = new JsPDF('', 'pt', 'a4')

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)

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') //到此可以直接下载

// 生产pdf 直接在网页预览 有图片的话,需要调用接口转换

var dataUrl = PDF.output('dataurlstring')

var request = {

order_type: 1,

base64: dataUrl,

}

axios({

method: 'post',

url: `${url}/application/upload/PDFupload`,

data: request

}).then(res => {

const url1 = `${url}${res.data.data}`

window.open(url1, '_blank')

})

}

)

}

第四步,需要打印为页面,加入以以下代码,我这只是个模板,可以根据自己的需求及样式修改

<template>

<div>

<!-- 这里就是要变成图片的容器 -->

<div id="pdfHtml" ref="printHtml" style="text-align: center">

<img :src="img_src"/>

多大的 hdhdhdhhdhda哈哈哈哈哈哈哈哈哈

</div>

<button type="primary" @click="exportPDF">导出PDF</button>

</div>

</template>

<script>

import { getPdf } from "@/utils/htmlToPdf";

import { img2base64 } from '@/api/upload'

export default {

data(){

return{

img_src:'https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png'

}

},

created(){

this.img_tobase64()

},

methods: {

img_tobase64() {

img2base64(this.img_src).then(res => {

this.img_src = res.data.data

})

},

// 导出PDF

exportPDF() {

getPdf("测试", "pdfHtml");

},

},

};

</script>

<style>

</style>

前端转换为pdf的方法之一相关推荐

  1. python将文档转换成pdf_Python实现将DOC文档转换为PDF的方法

    本文实例讲述了Python实现将DOC文档转换为PDF的方法.分享给大家供大家参考.具体实现方法如下: import sys, os from win32com.client import Dispa ...

  2. CAD图纸转换为PDF的方法——Speedpdf免费在线CAD转PDF

    CAD图纸怎么转换成PDF?相信很多人都经常遇到的问题,其实方法并不难,下面随小编一起来看看具体的操作步骤吧. 首先,推荐一款名的speedpdf的在线转换,网址为:https://speedpdf. ...

  3. 使用PHP将HTML + CSS转换为PDF? [关闭]

    关闭. 这个问题是题外话 . 它当前不接受答案. 想改善这个问题吗? 更新问题 ,使其成为Stack Overflow 的主题 . 3年前关闭. 我有一个HTML(不是XHTML)文档,可以在Fire ...

  4. 前端生成PDF 文件教程+在线demo案例

    个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 PDF 简介 PDF 全称Portable Document Format (PDF)(便携文档格式),该格式的显示与操作系统.分辨 ...

  5. ubuntu 下 python 将ppt,word 转换为pdf.

    最近发现了一个挺厉害的人工智能学习网站,内容通俗易懂,风趣幽默,感兴趣的可以点击此链接进行查看:床长人工智能教程 废话不多说,请看正文! 前言: 在我以前的博客中有这么两篇博客,一篇是:将word 转 ...

  6. python ubuntu word txt 转pdf_ubuntu 下 python 将ppt,word 转换为pdf.

    前言: 在我以前的博客中有这么两篇博客,一篇是:将word 转换为图片(word to pdf ->pdf to image),另一篇是:python将ppt文件转换为jpg图片. 这两篇博客都 ...

  7. linux ubuntu下怎样将pdf格式文件转换为doc格式文件,如何在Ubuntu命令行上将文档转换为PDF格式...

    在打印,共享和通过电子邮件发送文档(尤其是较大的文档)时,PDF或可移植文档格式通常是首选.对于Windows和macOS,您可能非常熟悉,也依赖于广泛使用的Acrobat产品进行pdf创建,查看和编 ...

  8. ubuntu下使用python将ppt转成图片_在Ubuntu下,python将PPT和word转换为PDF,ubuntu,pptword,pdf...

    前言: 在我以前的博客中有这么两篇博客,一篇是: python将ppt文件转换为jpg图片 . 这两篇博客都是讲如何将word,ppt转换为图片,但是这些方法都是在win系统中实现的,而在ubuntu ...

  9. 10秒将CAJ转换成PDF的方法,建议收藏!

    将CAJ转换为PDF的方法,值得收藏!CAJ是中国电子期刊的一种独有文件格式,当在知网上下载论文时选择"CAJ下载"选项时,就是下载这种文件格式的文档.个人体验表明,CAJ这种格式 ...

最新文章

  1. 彩色RGB图像转为灰度图像
  2. antd table 时间搜索_antd table按表格里的日期去排序操作
  3. 《Reids 设计与实现》第一章 简单动态字符串和链表
  4. 从“如何设计用户超过1亿的应用”说起----数据库调优实战
  5. [笔记]如何解决Your project contains C++ files but it is not using a supported native build system
  6. 一起玩转CAN卡“第五通道”吧!
  7. Python实现电影订票系统
  8. OpenAccessLibrary 网站简单爬取
  9. 用VMware克隆CentOS 6.4后HWaddr和UUID的设置
  10. c语言字符幂函数怎么编写,我如何自己编写幂函数?
  11. Unity笔记-29-ARPG游戏项目-06-弓箭
  12. rst 文件打开方式
  13. ajax请求是宏任务还是微任务_ASP.NET Web API基础(04)---异步编程和跨域请求 - 高原秃鹫...
  14. 《学习笔记》面向对象(四)多态,instanceof关键字,抽象
  15. 一个硬盘的感人爱情故事
  16. cad图文档管理系统,图文档查找困难解决方法
  17. 使用Groovy和7-Zip-JBinding解压缩7-Zip文件
  18. List.toArray
  19. 关于ios::sync_with_stdio(false);和 cin.tie(0)加速c++输入输出流
  20. Java面试题-个人笔记

热门文章

  1. vue 引入富文本编辑器(巨简单)
  2. 公众号运营情况分析 DAY02(获取公众号文章阅读量、在看和评论内容)
  3. KindEditor 图片粘贴上传,实现图文粘贴,图片自动上传
  4. 让你的手机随时成为空号
  5. 中心商务区建智慧城市 将现 “芝加哥夜景”
  6. EXCEL实用技巧-多条件求和、多条件计数、多条件查找
  7. 服务器nvida显卡驱动安装(亲测)
  8. 分布式事务—Lec12课前资料
  9. mysql ddl 导致tmp空间溢出并报错
  10. unity给定两个点和中间点的其中一个坐标比如z坐标,求该点的坐标