Stirling-PDF/shared-operations/functions/scalePage.ts

32 lines
742 B
TypeScript
Raw Normal View History

2023-10-26 20:53:02 +02:00
2023-10-26 22:41:48 +02:00
import { PDFDocument, ParseSpeeds } from 'pdf-lib';
2023-10-26 20:53:02 +02:00
export async function scalePage(snapshot: string | Uint8Array | ArrayBuffer, pageSize: {width:number,height:number}): Promise<Uint8Array> {
2023-10-16 23:11:33 +02:00
// Load the original PDF file
2023-10-26 22:41:48 +02:00
const pdfDoc = await PDFDocument.load(snapshot, {
parseSpeed: ParseSpeeds.Fastest,
2023-10-16 23:11:33 +02:00
});
const new_size = pageSize;
2023-10-16 23:11:33 +02:00
const pages = pdfDoc.getPages();
pages.forEach(page => {
// Change page size
page.setSize(new_size.width, new_size.height);
});
// Serialize the modified document
return pdfDoc.save();
};
export const PageSize = {
a4: {
width: 594.96,
height: 841.92
},
letter: {
width: 612,
height: 792
}
};