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();

Additional Resources