Splitting PDFs in the JavaScript PDF Library
23 Jul 20265 minutes to read
The JavaScript PDF Library supports splitting a PDF file into individual pages, a user-defined range of pages, or a fixed number of pages per output document.
Choosing a split method
The library provides three methods on the PdfDocument class. Use the table below to pick the one that matches your scenario.
| If you need to… | Use | Output |
|---|---|---|
| Split every page into its own PDF | split |
One PDF per page. |
| Extract specific page ranges | splitByPageRanges |
One PDF per range you specify. |
| Chunk the document into equal-sized groups | splitByFixedNumber |
One PDF per group of N pages. |
Splitting a PDF into individual pages
Use the split method to produce one PDF per page.
import { PdfDocument, PdfDocumentSplitEventArgs} from '@syncfusion/ej2-pdf';
import { Save } from '@syncfusion/ej2-file-utils';
// Load an existing PDF document
let document: PdfDocument = new PdfDocument(data);
document.splitEvent = documentSplitEvent;
// Split PDF document into individual pages
document.split();
// Event to invoke while splitting PDF document data
function documentSplitEvent(sender: PdfDocument, args: PdfDocumentSplitEventArgs): void {
Save.save('output_' + args.index + '.pdf', new Blob([args.pdfData], { type: 'application/pdf' }));
}
// Destroy the document
document.destroy();// Load an existing PDF document
var document = new ej.pdf.PdfDocument(data);
document.splitEvent = documentSplitEvent;
// Split PDF document into individual pages
document.split();
// Event to invoke while splitting PDF document data
function documentSplitEvent(sender, args): void {
Save.save('output_' + args.index + '.pdf', new Blob([args.pdfData], { type: 'application/pdf' }));
}
// Destroy the document
document.destroy();Splitting a specified range of pages
Use the splitByPageRanges method when you know exactly which pages belong in each output.
import { PdfDocument, PdfDocumentSplitEventArgs} from '@syncfusion/ej2-pdf';
import { Save } from '@syncfusion/ej2-file-utils';
// Load an existing PDF document
let document: PdfDocument = new PdfDocument(data);
document.splitEvent = documentSplitEvent;
// Split PDF document by page ranges specified
document.splitByPageRanges([[0, 4], [5, 9]]);
// Event to invoke while splitting PDF document data
function documentSplitEvent(sender: PdfDocument, args: PdfDocumentSplitEventArgs): void {
Save.save('output_' + args.index + '.pdf', new Blob([args.pdfData], { type: 'application/pdf' }));
}
// Destroy the document
document.destroy();// Load an existing PDF document
var document = new ej.pdf.PdfDocument(data);
document.splitEvent = documentSplitEvent;
// Split PDF document by page ranges specified
document.splitByPageRanges([[0, 4], [5, 9]]);
// Event to invoke while splitting PDF document data
function documentSplitEvent(sender, args): void {
Save.save('output_' + args.index + '.pdf', new Blob([args.pdfData], { type: 'application/pdf' }));
}
// Destroy the document
document.destroy();Splitting by a fixed number of pages
Use the splitByFixedNumber method to chunk the document into equal-sized groups of N pages. The final chunk may contain fewer than N pages.
import { PdfDocument, PdfDocumentSplitEventArgs} from '@syncfusion/ej2-pdf';
import { Save } from '@syncfusion/ej2-file-utils';
// Load an existing PDF document
let document: PdfDocument = new PdfDocument(data);
document.splitEvent = documentSplitEvent;
// Split PDF document by fixed number of pages
document.splitByFixedNumber(1);
// Event to invoke while splitting PDF document data
function documentSplitEvent(sender: PdfDocument, args: PdfDocumentSplitEventArgs): void {
Save.save('output_' + args.index + '.pdf', new Blob([args.pdfData], { type: 'application/pdf' }));
}
// Destroy the document
document.destroy();// Load an existing PDF document
var document = new ej.pdf.PdfDocument(data);
document.splitEvent = documentSplitEvent;
// Split PDF document by fixed number of pages
document.splitByFixedNumber(1);
// Event to invoke while splitting PDF document data
function documentSplitEvent(sender, args): void {
Save.save('output_' + args.index + '.pdf', new Blob([args.pdfData], { type: 'application/pdf' }));
}
// Destroy the document
document.destroy();