jsPDF


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <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>
</head>
<body>
  <div>
      jspdf 的使用
  </div>
<div class="right-aside">
   JSPDF的使用
</div>
<script>
  fn()
  function fn() {
    var target = document.getElementsByClassName("right-aside")[0];
    target.style.background = "#FFFFFF";

    html2canvas(target, {
      onrendered:function(canvas) {
          console.log(12)
        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("content.pdf");
          // 轉base64
        var datauri = pdf.output('dataurlstring')
          var base64 = datauri.substring(28);
        console.log(base64)

      }
    })
  }

</script>
</body>
</html>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM