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');
      }
    }
  • 相关阅读:
    【linux 文件管理】7-文件重定向
    by David Bombal CCNA with kali linux
    【linux 文件管理】6-软链接和硬链接
    13.mysql索引的使用
    11.mysql SQL优化之SQL问题定位
    mysql服务常用命令
    10.mysql存储引擎
    9. Mysql的体系结构概览
    8.mysql触发器
    项目上线部署
  • 原文地址:https://www.cnblogs.com/huangzhenhui/p/13595103.html
Copyright © 2011-2022 走看看