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');
  }
}
原文地址:https://www.cnblogs.com/huangzhenhui/p/13595103.html