37 lines
1.2 KiB
TypeScript
Raw Normal View History

import { PdfFile, RepresentationType } from "../wrappers/PdfFile";
export type ImposeParamsType = {
file: PdfFile;
2023-11-17 20:38:45 +01:00
/** Accepted values are 2, 3, 4, 8, 9, 12, 16 - see: {@link https://pdfcpu.io/generate/nup.html#n-up-value} */
nup: number;
2023-11-17 20:38:45 +01:00
/** A0-A10, other formats available - see: {@link https://pdfcpu.io/paper.html} */
format: string;
}
2023-11-17 20:38:45 +01:00
/** PDF-Imposition, PDF-N-Up: Put multiple pages of the input document into a single page of the output document. - see: {@link https://en.wikipedia.org/wiki/N-up} */
export async function impose(params: ImposeParamsType, pdfcpuWrapper: any): Promise<PdfFile> {
// https://pdfcpu.io/generate/nup.html
const uint8Array = await pdfcpuWrapper.oneToOne(
[
"pdfcpu.wasm",
"nup",
"-c",
"disable",
'f:' + params.format,
"/output.pdf",
String(params.nup),
"input.pdf",
],
await params.file.uint8Array
);
const result = new PdfFile(
params.file.originalFilename,
uint8Array,
RepresentationType.Uint8Array,
params.file.filename + "_imposed"
);
console.log("ImposeResult: ", result);
return result;
2023-10-18 01:20:31 +02:00
}