Files
sign/packages/lib/server-only/pdf/insert-image-in-pdf.ts

27 lines
762 B
TypeScript
Raw Normal View History

2023-06-09 18:21:18 +10:00
import { PDFDocument } from 'pdf-lib';
export async function insertImageInPDF(
pdfAsBase64: string,
image: string | Uint8Array | ArrayBuffer,
positionX: number,
positionY: number,
2023-06-09 18:21:18 +10:00
page = 0,
): Promise<string> {
const existingPdfBytes = pdfAsBase64;
const pdfDoc = await PDFDocument.load(existingPdfBytes);
const pages = pdfDoc.getPages();
const pdfPage = pages[page];
const pngImage = await pdfDoc.embedPng(image);
2023-03-07 17:12:24 +01:00
const drawSize = { width: 192, height: 64 };
pdfPage.drawImage(pngImage, {
2023-02-20 18:23:54 +01:00
x: positionX,
y: pdfPage.getHeight() - positionY - drawSize.height,
width: drawSize.width,
height: drawSize.height,
});
const pdfAsUint8Array = await pdfDoc.save();
2023-06-09 18:21:18 +10:00
return Buffer.from(pdfAsUint8Array).toString('base64');
}