zoukankan      html  css  js  c++  java
  • react--pdf-lib给PDF添加水印兼容IE11

    import { degrees, PDFDocument, rgb, StandardFonts } from 'pdf-lib';

    export async function modifyPdf(url, texts) {
      const text = `${texts}`;
      const existingPdfBytes = await fetch(url).then(res => res.arrayBuffer());
      const pdfDoc = await PDFDocument.load(existingPdfBytes);
      const helveticaFont = await pdfDoc.embedFont(StandardFonts.Helvetica);
      const page = pdfDoc.getPages();
      const firstPage = page[0];
      const { height } = firstPage.getSize();
      page.forEach(item => {
        item.drawText(text, {
          x: 10,
          y: height - 100,
          size: 30,
          font: helveticaFont,
          color: rgb(0.82, 0.86, 0.89),
          rotate: degrees(45),
        });
        item.drawText(text, {
          x: 480,
          y: height - 65,
          size: 30,
          font: helveticaFont,
          color: rgb(0.82, 0.86, 0.89),
          rotate: degrees(45),
        });
        item.drawText(text, {
          x: 15,
          y: height - 200,
          size: 30,
          font: helveticaFont,
          color: rgb(0.82, 0.86, 0.89),
          rotate: degrees(45),
        });
      });
      if (window.navigator && window.navigator.msSaveOrOpenBlob) {
        const blob = new Blob([await pdfDoc.save()], { type: 'application/pdf' });
        window.navigator.msSaveBlob(blob,'预览.pdf');
      } else {
        const pdfUrl = URL.createObjectURL(
          new Blob([await pdfDoc.save()], { type: 'application/pdf' }),
        );
        window.open(pdfUrl, '_blank');
      }
    }
  • 相关阅读:
    Git基本操作二
    Git基本操作一
    Mysql查询一
    接口的token验证
    Laravel模型的一些小技巧
    AOP编程思想实现全局异常处理
    5.4 RegExp类型
    5.4.1 RegExp实例属性
    5.4.2 RegExp实例方法
    5.4.3 RegExp构造函数属性
  • 原文地址:https://www.cnblogs.com/huangzhenhui/p/13595103.html
Copyright © 2011-2022 走看看