前端如何把html結構下載到本地并保存成pdf文件格式

/**
*  element 需要下載的dom節(jié)點(傳dom節(jié)點的id)
*  pdfTitle 下載到本地pdf文件的文件名
*/
const downloadPdf =  (element, pdfTitle) => {
      const el = document.querySelector(element)
      html2Canvas(el, {
        allowTaint: true,
        tainTest: false
      }).then(function (canvas) {
        const contentWidth = canvas.width
        const contentHeight = canvas.height
       // 592.28 A4 紙的寬度
      //  841.89 A4紙的長度
        const pageHeight = contentWidth / 592.28 * 841.89
        let leftHeight = contentHeight
        let position = 0
        const imgWidth = 595.28
        const imgHeight = 592.28 / contentWidth * contentHeight
        const pageData = canvas.toDataURL('image/jpeg', 1.0)
       // PDF 參數(shù)可參考文檔
        const PDF = new JsPDF('', 'pt', 'a4')
        if (leftHeight < pageHeight) {
          PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
        } else {
         // 如果頁面長度超出a4 的長度, 就分頁
          while (leftHeight > 0) {
            PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
            leftHeight -= pageHeight
            position -= 841.89
            if (leftHeight > 0) {
              PDF.addPage()
            }
          }
        }
        PDF.save(pdfTitle + '.pdf')
      }
      )
    }
  }

// 調用
downloadPdf('#domNode',   '下載pdf')

遇到問題:

  1. 截取的圖片沒有超出滾動的部分
    問題: 需要下載的dom元素節(jié)點設置了固定高度并且設置了overflow: hidden
    解決: 需要下載的dom元素不設置固定高度,讓它讓內部的內容撐起高度
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容