【jsPDF】jsPDF插件实现将html页面转换成PDF,并下载,支持分页

1、目的:在前段是 jQuery库 或者 VUE库 或者两者混合库,将html 页面和数据 转换成PDF格式并下载,支持分页

2、引入类库包:

<!-- .pdf文件下载  download -->
    <script src="https://cdn.bootcss.com/html2canvas/0.5.0-beta4/html2canvas.js"></script>
    <script src="https://cdn.bootcss.com/jspdf/1.3.4/jspdf.debug.js"></script>
<!-- jQuery 2.2.3 -->
<script src="/plugins/jQuery/jquery-2.2.3.min.js"></script>

3、需要下载页面内容,假设在一个DIV里面(vue2.0示例):

<div class="right-aside" id="pdfDom" class="right-aside">

        <section class="content-header">
            @yield(‘search‘)
        </section>
        <section class="content">
            @yield(‘content‘)
        </section>
        <i-col span="8">
            <i-button type="warning" @click="makeMpdf()">导出PDF文件</i-button>
        </i-col>
</div>
<script type="text/javascript">
function makeMpdf () {
    if(confirm("您确认下载该PDF文件吗?")){
       var pdf = new jsPDF(‘p‘,‘pt‘,‘a4‘);
    // 设置打印比例 越大打印越小
       pdf.internal.scaleFactor = 2;
       var options = {
           pagesplit: true, //设置是否自动分页
          "background": ‘#FFFFFF‘   //如果导出的pdf为黑色背景,需要将导出的html模块内容背景 设置成白色。
      };
       var printHtml = $(‘#pdfDom‘).get(0);   // 页面某一个div里面的内容,通过id获取div内容
       pdf.addHTML(printHtml,15, 15, options,function() {
          pdf.save(‘目标.pdf‘);
      });
    }
}

</script>

4、或者上面的JS方法可以替换成这个也是可以的。

//将html页面导出.pdf格式文件(适用于jQuery、vue库)  -- xzz 2018/04/24
function makeMpdf(pdfName) {
  if(confirm("您确认下载该PDF文件吗?")){
    var target = document.getElementsByClassName("right-aside")[0];
    target.style.background = "#FFFFFF";
    if(pdfName==‘‘||pdfName==undefined) pdfName= getNowFormatDate();

    html2canvas(target, {
        onrendered:function(canvas) {
            var contentWidth = canvas.width;
            var contentHeight = canvas.height;

            //一页pdf显示html页面生成的canvas高度;
            var pageHeight = contentWidth / 592.28 * 841.89;
            //未生成pdf的html页面高度
            var leftHeight = contentHeight;
            //页面偏移
            var position = 0;
            //a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高
            var imgWidth = 595.28;
            var imgHeight = 592.28/contentWidth * contentHeight;

            var pageData = canvas.toDataURL(‘image/jpeg‘, 1.0);

            var pdf = new jsPDF(‘‘, ‘pt‘, ‘a4‘);

            //有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
            //当内容未超过pdf一页显示的范围,无需分页
            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(pdfName+".pdf");
        }
      })
  }
}

5、效果:

原文地址:https://www.cnblogs.com/xuzhengzong/p/8929665.html

时间: 2024-07-31 10:25:51

【jsPDF】jsPDF插件实现将html页面转换成PDF,并下载,支持分页的相关文章

ppt转换成pdf转换器下载

ppt转换成pdf转换器下载日常的工作和学习中,经常要碰到各种文档之间的相互转换问题,其中pdf文档转换为ppt文档尤为常见,经常遇到一门课已经有了ppt文档,但又需要pdf文档用于阅览这种情况.如果逐个文件.逐页.逐个文本框的复制,但工作量十分可怕,而且容易出错:利用迅捷ppt转换成pdf转换器提供的先进识别设备能让再复杂的文字图片清晰识别出来,完美解决ppt文档想pdf文档的转换问题. 最为简单的转换方法可以归纳为以下2种,分别叙述如下: 方法一,使用迅捷版ppt转pdf转换器,首先进入pp

vue 将base64 的文件流转换成pdf 并下载, 兼容 IE10+

//base64 转换 blob dataURLtoBlob(dataurl) { var bstr = atob(dataurl) var n = bstr.length; var u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new Blob([u8arr], { type: 'pdf' }); } // res.data   就是后台返回的base64的 文件流 let UR

怎么把图片转换成pdf jpg转pdf案例

图片有各种格式,jpg.gif.png都是我们常见的,当我们想要把图片转换成pdf时,首先要注意这些文件的格式,考虑使用的方法是否可以兼容这些图片的格式,然后再查看此种方法的图片转成pdf的效果.那么,怎么把图片转换成pdf才能保证图片内容的整洁与清晰呢?想要达到这一点,其实并不是很难! 在执行图片转换成pdf操作前,我们要在电脑上下载安装好迅捷pdf转换器,然后还需要我们将要转换的图片放在同一个文件夹中,并将文件夹放在我们可以找到的位置.      第1步:在电脑桌面上用鼠标双击软件图标打开软

扫描ppt转换成pdf软件

扫描ppt转换成pdf软件目前,许多信息资料需要转化成电子文档以便于各种应用及管理,但因信息数字化处理的方式落后,不但费时费力,而且资金耗费巨大,造成了大量文档资料的积压,因此急需一种快速高效的软件系统来满足这种海量录入需求.迅捷ppt转换成pdf转换器软件系统正是适用于个人.小型图书馆.小型档案馆.小型企业进行大规模文档输入.图书翻印.大量资料电子化的软件系统. 专业的计算机公司团队为帮助办公人员更好的解决文档格式转换的问题,也是推出了多款软件.其中最有口碑的就是ppt转换成pdf转换器201

MVC页面打印成pdf插件Rotativa

最近做项目,需要把用户信息页面打印成pdf导出,在github上发现了一个插件,非常好用. Rotativa是一个开源的用户MVC页面生成PDF格式文档的dll封装库,我们可以在管理Nuget包中找到并安装它. 安装好之后就可以直接输入一个视图,并生成pdf返回了,具体上代码: 1 return new Rotativa.ActionAsPdf("UserInfo", new { id = id }) { FileName = "User.pdf" }; Rotat

JS框架_(Qrcode.js)插件将你的内容转换成二维码格式

二维码格式演示 (扫描此二维码会自动跳转到我博客的首页O(∩_∩)O~) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>qrcode.js插件将你的内容转换成二维码格式</title> <link rel="stylesheet" href="css/style.cs

html转换成pdf

指定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 titl

将excel转换成pdf要用什么软件

小编以前只听说过把word文档转换成pdf,不知道excel和word之间也可以互相转换.Excel作为报表形式的文档该怎么转换成word文字形式的呢?这种专业的事情就交给专业的软件来办. 现在的文档转换工具基本都支持大多数办公文件格式的转换,能够实现对PDF.Word.Excel.PPT.HTML.TXT等文档之间的格式转换.支持转换模式非常多,其中有:文件转Word.文件转Excel.文件转PPT.文件转换HTML.图片转PDF.文件转TXT.文件转IMG.Word转PDF.PPT转PDF.

怎么使用软件把jpg转换成pdf格式

最近大学同学聚会,好多年没见的老同学,我们在一起说说笑笑,拍了不少有意思的照片.大家也都知道JPG图片上传到网上并不安全,可以被人随意修改.有人提议将图片转换成PDF格式,做成一个相册,这样就可以方便我们查看和保存文件了.不得不说这是个好主意,可怎么把jpg转换成pdf呢? 利用图片转换工具基本上是达不到理想的效果,转换后的图片一片模糊,很不清晰.看来,还得用PDF转换软件,下面就跟着小编一起来看下怎么使用软件把jpg转换成pdf格式.      1.首先从网上下载迅捷PDF转换器软件,打开后,