2023-11-17 00:32:09 +03:00
|
|
|
|
|
|
|
import { PdfFile } from '../wrappers/PdfFile.js';
|
|
|
|
import { detectEmptyPages } from './common/detectEmptyPages.js';
|
|
|
|
import { getPages } from './common/getPagesByIndex.js';
|
2023-11-17 13:15:20 +03:00
|
|
|
import { invertSelection } from './common/pageIndexesUtils.js';
|
2023-11-17 00:32:09 +03:00
|
|
|
|
|
|
|
export type RemoveBlankPagesParamsType = {
|
|
|
|
file: PdfFile;
|
|
|
|
whiteThreashold: number;
|
|
|
|
}
|
|
|
|
export async function removeBlankPages(params: RemoveBlankPagesParamsType) {
|
|
|
|
const { file, whiteThreashold } = params;
|
|
|
|
const pageCount = await file.pdfLibDocument;
|
|
|
|
|
|
|
|
const emptyPages = await detectEmptyPages(file, whiteThreashold);
|
|
|
|
console.debug("Empty Pages: ", emptyPages);
|
|
|
|
const pagesToKeep = invertSelection(emptyPages, pageCount.getPageCount())
|
2023-11-17 00:45:37 +03:00
|
|
|
|
|
|
|
const newFile = await getPages(file, pagesToKeep);
|
|
|
|
newFile.filename += "_removedBlanks"
|
|
|
|
return newFile;
|
2023-11-17 00:32:09 +03:00
|
|
|
}
|