import { degrees } from "pdf-lib"; import { PdfFile, RepresentationType } from "../wrappers/PdfFile"; export interface RotateParamsType { file: PdfFile; rotation: number|number[]; } export async function rotatePages(params: RotateParamsType): Promise { const { file, rotation } = params; const pdfDoc = await file.pdfLibDocument; const pages = pdfDoc.getPages(); if (Array.isArray(rotation)) { if (rotation.length != pages.length) { throw new Error(`Number of given rotations '${rotation.length}' is not the same as the number of pages '${pages.length}'`); } for (let i=0; i { // Change page size const oldRotation = page.getRotation().angle; page.setRotation(degrees(oldRotation + rotation)); }); } return new PdfFile(file.originalFilename, pdfDoc, RepresentationType.PDFLibDocument, file.filename+"_rotated"); }