怎么结合html2canvas.js 和jspdf.js 给转化成pdf的网页加水印呢 ,有没有什么api

发布于 2022-09-06 23:12:27 字数 1273 浏览 20 评论 0

下面是我通过html2canvas.js 和jspdf.js 把网页转换为pdf的代码
pdf(){

  let that = this
  this.loading = false
  html2Canvas(this.$refs.pictureData).then(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);
  // 加水印-----------------
  console.log('水印')
  console.log(typeof pageData)
  // 加水印-----------------

  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');
  this.loading = true
  });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

画离情绘悲伤 2022-09-13 23:12:27

利用canvas可以加水印的啊 drawImage

Spring初心 2022-09-13 23:12:27

这个应该是下载的那种效果,有没有直接给定一个路径,然后把pdf文件保存在该路径下的方法呢?我试着重写jspdf.js中的源码,可是没有效果

著墨染雨君画夕 2022-09-13 23:12:27

请问楼主找到解决的方法了吗?

不醒的梦 2022-09-13 23:12:27

在pdf.addPage();前后加pdf.text(20, 20, 'Do you like that?');(ps:20,20的位置随意调整)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文