Cleanup, Documented Impose

This commit is contained in:
Felix Kaspar 2023-11-17 20:38:45 +01:00
parent 432342415e
commit 8a63ebe6cf
7 changed files with 30 additions and 21 deletions

View File

@ -7,8 +7,7 @@ import { PdfFile } from "@stirling-pdf/shared-operations/src/wrappers/PdfFile"
import * as pdfcpuWrapper from "@stirling-pdf/shared-operations/wasm/pdfcpu/pdfcpu-wrapper-browser.js";
async function impose(params: ImposeParamsType): Promise<PdfFile> {
const paramsToUse = { ...params, pdfcpuWrapper: pdfcpuWrapper };
return SharedOperations.impose(paramsToUse);
return SharedOperations.impose(params, pdfcpuWrapper);
}
const toExport: OperationsType = {

View File

@ -7,8 +7,7 @@ import { PdfFile } from "@stirling-pdf/shared-operations/src/wrappers/PdfFile"
import * as pdfcpuWrapper from "@stirling-pdf/shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper-node.js";
async function impose(params: ImposeParamsType): Promise<PdfFile> {
const paramsToUse = { ...params, pdfcpuWrapper: pdfcpuWrapper };
return SharedOperations.impose(paramsToUse);
return SharedOperations.impose(params, pdfcpuWrapper);
}
const toExport: OperationsType = {

View File

@ -4,6 +4,18 @@ export interface Action {
actions?: Action[];
}
export interface WaitAction extends Action {
values: { id: number }
}
export interface ExtractAction extends Action {
values: { indecies: string | number[] }
}
export interface ImposeAction extends Action {
values: { nup: number, format: string }
}
export interface WaitAction extends Action {
values: { id: number }
}

View File

@ -5,19 +5,19 @@ import { parsePageIndexSpecification } from './common/pageIndexesUtils'
export type ExtractPagesParamsType = {
file: PdfFile;
pageIndexes: string | number[];
pageIndecies: string | number[];
}
export async function extractPages(params: ExtractPagesParamsType): Promise<PdfFile> {
const { file, pageIndexes } = params;
const { file, pageIndecies: pageIndecies } = params;
const pdfLibDocument = await file.pdfLibDocument;
var indexes = pageIndexes;
var indecies = pageIndecies;
if (!Array.isArray(indexes)) {
indexes = parsePageIndexSpecification(indexes, pdfLibDocument.getPageCount());
if (!Array.isArray(indecies)) {
indecies = parsePageIndexSpecification(indecies, pdfLibDocument.getPageCount());
}
const newFile = await getPages(file, indexes);
const newFile = await getPages(file, indecies);
newFile.filename += "_extractedPages"
return newFile;
}

View File

@ -2,17 +2,16 @@ import { PdfFile, RepresentationType } from "../wrappers/PdfFile";
export type ImposeParamsType = {
file: PdfFile;
/** Accepted values are 2, 3, 4, 8, 9, 12, 16 - see: {@link https://pdfcpu.io/generate/nup.html#n-up-value} */
nup: number;
/** A0-A10, other formats available - see: {@link https://pdfcpu.io/paper.html} */
format: string;
}
export type ImposeParamsBaseType = {
file: PdfFile;
nup: number;
format: string;
pdfcpuWrapper: any;
}
export async function impose(params: ImposeParamsBaseType): Promise<PdfFile> {
const uint8Array = await params.pdfcpuWrapper.oneToOne(
/** 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",

View File

@ -1,7 +1,7 @@
import { arrangePages, ArrangePagesParamsType } from './functions/arrangePages'
import { extractPages, ExtractPagesParamsType } from "./functions/extractPages";
import { impose, ImposeParamsBaseType, ImposeParamsType } from "./functions/impose";
import { impose, ImposeParamsType } from "./functions/impose";
import { mergePDFs, MergeParamsType } from './functions/mergePDFs';
import { removeBlankPages, RemoveBlankPagesParamsType } from "./functions/removeBlankPages";
import { rotatePages, RotateParamsType } from './functions/rotatePages';
@ -34,7 +34,7 @@ export default toExport;
export type OperationsParametersBaseType = {
arrangePages: ArrangePagesParamsType
extractPages: ExtractPagesParamsType;
impose: ImposeParamsBaseType;
impose: ImposeParamsType;
mergePDFs: MergeParamsType;
removeBlankPages: RemoveBlankPagesParamsType;
rotatePages: RotateParamsType;

View File

@ -54,7 +54,7 @@ export async function * traverseOperations(operations: Action[], input: PdfFile[
break;
case "extract":
yield* nToN(input, action, async (input) => {
const newPdf = await Operations.extractPages({file: input, pageIndexes: action.values["pageIndexes"]});
const newPdf = await Operations.extractPages({file: input, pageIndecies: action.values["pageIndecies"]});
return newPdf;
});
break;