mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2024-12-21 19:08:24 +01:00
29 lines
880 B
JavaScript
29 lines
880 B
JavaScript
|
import { PDFDocument, ParseSpeeds } from 'pdf-lib'
|
||
|
|
||
|
export const scaleContent = async (snapshot, scale_factor) => {
|
||
|
// Load the original PDF file
|
||
|
const pdfDoc = await PDFDocument.load(snapshot, {
|
||
|
parseSpeed: ParseSpeeds.Fastest,
|
||
|
});
|
||
|
|
||
|
const pages = pdfDoc.getPages();
|
||
|
|
||
|
pages.forEach(page => {
|
||
|
const width = page.getWidth();
|
||
|
const height = page.getHeight();
|
||
|
|
||
|
// Scale content
|
||
|
page.scaleContent(scale_factor, scale_factor);
|
||
|
const scaled_diff = {
|
||
|
width: Math.round(width - scale_factor * width),
|
||
|
height: Math.round(height - scale_factor * height),
|
||
|
};
|
||
|
|
||
|
// Center content in new page format
|
||
|
page.translateContent(Math.round(scaled_diff.width / 2), Math.round(scaled_diff.height / 2));
|
||
|
|
||
|
});
|
||
|
|
||
|
// Serialize the modified document
|
||
|
return pdfDoc.save();
|
||
|
};
|