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');
      }
    }
  • 相关阅读:
    Java中的并发库学习总结
    Android源码的git下载地址
    Android下载Android源码
    工具类 验证手机邮箱
    hibernate缓存说明
    Hibernate之N+1问题
    常用正则
    Java Base64加密、解密原理Java代码
    Base64加密解密原理以及代码实现(VC++)
    情书经典语录
  • 原文地址:https://www.cnblogs.com/huangzhenhui/p/13595103.html
Copyright © 2011-2022 走看看