mirror of
				https://github.com/Frooodle/Stirling-PDF.git
				synced 2025-11-01 01:21:18 +01:00 
			
		
		
		
	Added remove pages
This commit is contained in:
		
							parent
							
								
									c060b2a4e0
								
							
						
					
					
						commit
						9bca4848f3
					
				@ -73,6 +73,11 @@ registerEndpoint("/rotate-pdf", "", upload.single("file"), Operations.rotatePage
 | 
			
		||||
    rotation: Joi.alternatives().try(Joi.number(), Joi.array().items(Joi.number())).required(),
 | 
			
		||||
}).required());
 | 
			
		||||
 | 
			
		||||
registerEndpoint("/remove-pages", "", upload.single("file"), Operations.removePages, Joi.object({
 | 
			
		||||
    file: PdfFileSchema.required(),
 | 
			
		||||
    pageSelector: Joi.string().required(),
 | 
			
		||||
}).required());
 | 
			
		||||
 | 
			
		||||
//Remove Pages
 | 
			
		||||
//impose
 | 
			
		||||
//Adjust page size/scale
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										21
									
								
								shared-operations/src/functions/removePages.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								shared-operations/src/functions/removePages.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
			
		||||
 | 
			
		||||
import { PdfFile } from '../wrappers/PdfFile.js';
 | 
			
		||||
import { getPages } from './common/getPagesByIndex.js';
 | 
			
		||||
import { invertSelection, parsePageIndexSpecification } from './common/pageIndexesUtils.js';
 | 
			
		||||
 | 
			
		||||
export type RemovePagesParamsType = {
 | 
			
		||||
    file: PdfFile;
 | 
			
		||||
    pageSelector: string;
 | 
			
		||||
}
 | 
			
		||||
export async function removePages(params: RemovePagesParamsType) {
 | 
			
		||||
    const { file, pageSelector } = params;
 | 
			
		||||
    const pdfDoc = await file.pdfLibDocument;
 | 
			
		||||
    const pageCount = pdfDoc.getPageCount();
 | 
			
		||||
 | 
			
		||||
    const pageSelection = parsePageIndexSpecification(pageSelector, pageCount);
 | 
			
		||||
    const pagesToKeep = invertSelection(pageSelection, pageCount);
 | 
			
		||||
 | 
			
		||||
    const newFile = await getPages(file, pagesToKeep);
 | 
			
		||||
    newFile.filename += "_removedPages"
 | 
			
		||||
    return newFile;
 | 
			
		||||
}
 | 
			
		||||
@ -4,6 +4,7 @@ import { extractPages, ExtractPagesParamsType } from "./functions/extractPages";
 | 
			
		||||
import { impose, ImposeParamsType } from "./functions/impose";
 | 
			
		||||
import { mergePDFs, MergeParamsType } from './functions/mergePDFs';
 | 
			
		||||
import { removeBlankPages, RemoveBlankPagesParamsType } from "./functions/removeBlankPages";
 | 
			
		||||
import { removePages, RemovePagesParamsType } from "./functions/removePages";
 | 
			
		||||
import { rotatePages, RotateParamsType } from './functions/rotatePages';
 | 
			
		||||
import { scaleContent, ScaleContentParamsType} from './functions/scaleContent';
 | 
			
		||||
import { scalePage, ScalePageParamsType } from './functions/scalePage';
 | 
			
		||||
@ -22,6 +23,7 @@ const toExport = {
 | 
			
		||||
    impose,
 | 
			
		||||
    mergePDFs,
 | 
			
		||||
    removeBlankPages,
 | 
			
		||||
    removePages,
 | 
			
		||||
    rotatePages,
 | 
			
		||||
    scaleContent,
 | 
			
		||||
    scalePage,
 | 
			
		||||
@ -37,6 +39,7 @@ export type OperationsParametersBaseType = {
 | 
			
		||||
    impose: ImposeParamsType;
 | 
			
		||||
    mergePDFs: MergeParamsType;
 | 
			
		||||
    removeBlankPages: RemoveBlankPagesParamsType;
 | 
			
		||||
    removePages: RemovePagesParamsType;
 | 
			
		||||
    rotatePages: RotateParamsType;
 | 
			
		||||
    scaleContent: ScaleContentParamsType;
 | 
			
		||||
    scalePage: ScalePageParamsType;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user