import html2canvas from 'html2canvas'

import jsPDF from 'jspdf'

export const downloadPDF = page => {
  html2canvas(page).then(function (canvas) {
    canvas2PDF(canvas)
  })
}

const canvas2PDF = canvas => {
  let contentWidth = canvas.width

  let contentHeight = canvas.height

  //a4纸的尺寸[595.28,841.89]，html页面生成的canvas在pdf中图片的宽高

  let imgWidth = 595.28

  let imgHeight = (592.28 / contentWidth) * contentHeight

  //let imgHeight = 700/contentWidth * contentHeight;

  //一页pdf显示html页面生成的canvas高度;

  var pageHeight = (contentWidth / 592.28) * 841.89

  let totalHeight = contentHeight

  // 第一个参数： l：横向  p：纵向

  // 第二个参数：测量单位（"pt"，"mm", "cm", "m", "in" or "px"）

  let pdf = new jsPDF('p', 'pt')

  let position = 0

  //   pdf.addImage(

  //     canvas.toDataURL("image/jpeg", 1.0),

  //     "JPEG",

  //     0,

  //     0,

  //     imgWidth,

  //     imgHeight

  //   );

  if (totalHeight < pageHeight) {
    pdf.addImage(canvas.toDataURL('image/jpeg', 1.0), 'JPEG', 0, 0, imgWidth, imgHeight)
  } else {
    while (totalHeight > 0) {
      pdf.addImage(canvas.toDataURL('image/jpeg', 1.0), 'JPEG', 0, position, imgWidth, imgHeight)

      totalHeight -= pageHeight

      position -= 841.89

      //避免添加空白页

      if (totalHeight > 0) {
        pdf.addPage()
      }
    }
  }

  // pdf.addImage(

  //     canvas.toDataURL("image/jpeg", 1.0),

  //     "JPEG",

  //     0,

  //     position,

  //     imgWidth,

  //     imgHeight

  // );

  pdf.save('导出.pdf')
}
