vue中实现将页面或者div内容导出为pdf格式

这篇具有很好参考价值的文章主要介绍了vue中实现将页面或者div内容导出为pdf格式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

将Vue单页面转成pdf并下载

步骤1:下载对应的库

npm install html2canvas;

npm install jspdf --save

步骤2:创建一个htmlToPdf.js的js文件, 然后在main.js中全局引用一下,编写如下代码:

// htmlToPdf.js
// 导出页面为PDF格式
import html2Canvas from 'html2canvas'
import JsPDF from 'jspdf'
export default {
  install(Vue, options) {
    Vue.prototype.getPdf = function () {
      var title = this.htmlTitle  //DPF标题
        html2Canvas(document.querySelector('#pdfDom'), {
          allowTaint: true,
          taintTest: false,
          useCORS: true,
          y:72, // 对Y轴进行裁切
          // width:1200,
          // height:5000,
          dpi: window.devicePixelRatio * 4, //将分辨率提高到特定的DPI 提高四倍
          scale: 4 //按比例增加分辨率 
        }).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')
      })
    }
  }
}
// main.js
import htmlToPdf from '@/util/htmlToPdf'
Vue.use(htmlToPdf)

步骤三:在vue页面中给需要打印的区域一个div标签,然后给div一个id,id名和htmlToPdf.js中选择的名字一致,代码如下:

<div id="pdfDom">
  ... 将要打印的内容放入其中
</div>

步骤四:在data节点中声明一个htmlTitle变量,指定为pdf文件的文件名

data() {
	return {
    htmlTitle: '要生成pdf的文件名'
  }
}

步骤五:在vue页面中添加一个button按钮,事件名和htmlToPdf.js中的方法名保持一致。

<el-button @click="getPdf()">PDF</el-button>

欧克了,完成以上步骤就可以实现div中内容的转为pdf并下载文件文章来源地址https://www.toymoban.com/news/detail-670344.html

到了这里,关于vue中实现将页面或者div内容导出为pdf格式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue 前端导出页面图表保存为Html格式文档

    问题描述: 图一 解决思路: 想要达到要求的效果,网上找了很久,最后记录下2种方案: 方案一、使用html2canvas组件,html2canvas的作用就是允许我们直接在用户浏览器上拍摄网页或某一部分的截图。它的屏幕截图是基于DOM元素的,实际上它不会生成实际的屏幕截图,而是基于

    2024年02月03日
    浏览(43)
  • vue3 el-upload 上传附件及预览 限制只能上传一个图片或者pdf格式的文件

    效果如图 直接看代码吧 template部分 css部分 js部分

    2024年02月11日
    浏览(78)
  • 前端vue基于html2canva jspdf 实现前端页面加水印 并导出页面PDF

    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随

    2024年02月03日
    浏览(45)
  • vue2如何将页面生成 pdf 导出 html2Canvas + jspdf

    npm i html2canvas npm i jspdf import html2canvas from \\\'html2canvas\\\'; import jsPDF from \\\'jspdf\\\' export const htmlToPDF = async (htmlId, title = \\\"报表\\\", bgColor = \\\"#fff\\\") = {   let pdfDom = document.getElementById(htmlId)   pdfDom.style.padding = \\\'0 10px !important\\\'   const A4Width = 595.28;   const A4Height = 841.89;   let canvas = await html2canvas(pd

    2024年02月16日
    浏览(54)
  • java按照模板导出pdf或者word

    (一)制作模板  1、在word里制作模板         因为PDF常用的软件不支持编辑,所以先用Word工具,如WPS或者Office新建一个空白Word文档,里面制作出自己想要的样式。 2、 将Word转换成PDF形式          将设置好的Word文档转换成PDF形式,保存起来。 3、编辑PDF准备表单 

    2024年02月06日
    浏览(50)
  • vue中实现div可编辑,并插入指定元素,样式

    前言:         vue中实现一个既可以编辑内容,有可以动态编辑内容插入一个带有样式的内容,改变默认内容后,这个样式消失的效果,这里来整理下调研与解决实现问题之路。 1、可以光标点击任意地方,然后点击按钮,插入带有span的内容 2、默认span是有样式,但是一旦内

    2024年02月10日
    浏览(39)
  • vue中实现拖动调整左右两侧div的宽度(左右拖拽)

      一、HTML代码 template     div class=\\\"box\\\" ref=\\\"box\\\"         div class=\\\"left\\\"             !--左侧div内容--         /div         div class=\\\"resize\\\" title=\\\"收缩侧边栏\\\"             ⋮         /div         div class=\\\"mid\\\"             !--右侧div内容--         /div     /div /t

    2024年02月14日
    浏览(37)
  • 解决Visio另存为(或者导出)pdf字符间距变化/不均等字母间距的问题

    当用Visio导出PDF时,有时候会导致字符间距变化/不均等,这就让人头疼,觉得匪夷所思了 Microsoft Visio是一个流程图软件。Visio制作的图表范围十分广泛,可以利用Visio的强大绘图功能绘制地图、企业标志等,同时Visio支持将档案保存为svg、dwg等矢量通用格式。 解决方法: 按住

    2024年02月16日
    浏览(138)
  • vue 项目中实现pdf预览 pdf打印 pdf下载

    在Vue项目中实现PDF预览、打印和下载可以通过以下步骤来实现: 安装pdf.js pdf.js是一个JavaScript库,可以用于在Web上渲染PDF文件。 可以使用npm安装pdf.js,命令如下: npm install pdfjs-dist --save 创建一个PDF组件 在Vue项目中,可以创建一个PDF组件,用于显示PDF文件。 可以使用pdf.js提供

    2024年02月13日
    浏览(68)
  • 【PDFBox】PDFBox操作PDF文档之读取指定页面文本内容、读取所有页面文本内容、根据模板文件生成PDF文档

    这篇文章,主要介绍PDFBox操作PDF文档之读取指定页面文本内容、读取所有页面文本内容、根据模板文件生成PDF文档。 目录 一、PDFBox操作文本 1.1、读取所有页面文本内容 1.2、读取指定页面文本内容 1.3、写入文本内容 1.4、替换文本内容 (1)自定义PDTextStripper类 (2)创建Key

    2024年02月16日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包