鍍金池/ 問(wèn)答/HTML5  網(wǎng)絡(luò)安全  HTML/ 怎么結(jié)合html2canvas.js 和jspdf.js 給轉(zhuǎn)化成pdf的網(wǎng)頁(yè)加

怎么結(jié)合html2canvas.js 和jspdf.js 給轉(zhuǎn)化成pdf的網(wǎng)頁(yè)加水印呢 ,有沒(méi)有什么api

下面是我通過(guò)html2canvas.js 和jspdf.js 把網(wǎng)頁(yè)轉(zhuǎn)換為pdf的代碼
pdf(){

  let that = this
  this.loading = false
  html2Canvas(this.$refs.pictureData).then(canvas => {
  var contentWidth = canvas.width;
  var contentHeight = canvas.height;

  //一頁(yè)pdf顯示html頁(yè)面生成的canvas高度;
  var pageHeight = contentWidth / 592.28 * 841.89;
  //未生成pdf的html頁(yè)面高度
  var leftHeight = contentHeight;
  //頁(yè)面偏移
  var position = 0;
  //a4紙的尺寸[595.28,841.89],html頁(yè)面生成的canvas在pdf中圖片的寬高
  var imgWidth = 595.28;
  var imgHeight = 592.28/contentWidth * contentHeight;

  var pageData = canvas.toDataURL('image/jpeg', 1.0);
  // 加水印-----------------
  console.log('水印')
  console.log(typeof pageData)
  // 加水印-----------------

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

  //有兩個(gè)高度需要區(qū)分,一個(gè)是html頁(yè)面的實(shí)際高度,和生成pdf的頁(yè)面高度(841.89)
  //當(dāng)內(nèi)容未超過(guò)pdf一頁(yè)顯示的范圍,無(wú)需分頁(yè)
  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;
          //避免添加空白頁(yè)
          if(leftHeight > 0) {
            pdf.addPage();
          }
      }
  }

  pdf.save('content.pdf');
  this.loading = true
  });
回答
編輯回答
亮瞎她

利用canvas可以加水印的啊 drawImage

2017年6月13日 10:00
編輯回答
氕氘氚

請(qǐng)問(wèn)樓主找到解決的方法了嗎?

2017年9月20日 22:14
編輯回答
乖乖噠

這個(gè)應(yīng)該是下載的那種效果,有沒(méi)有直接給定一個(gè)路徑,然后把pdf文件保存在該路徑下的方法呢?我試著重寫(xiě)jspdf.js中的源碼,可是沒(méi)有效果

2017年8月20日 04:51