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');
}
}