This utility provides functionality to compress and split PDF files, ensuring that individual pages and entire files do not exceed specified size limits. It utilizes Ghostscript for compression and PDF-Lib for PDF manipulation.
- Compress PDF Pages: Reduces the size of individual PDF pages to a specified maximum size.
- Split PDF Files: Splits a PDF file into multiple parts if the file size exceeds a specified limit.
- Node.js: Ensure you have Node.js installed on your system.
- Ghostscript: This utility depends on Ghostscript for compressing PDF files.
- For Windows: Download and install Ghostscript from the official Ghostscript website .
- For Linux: Install Ghostscript using your package manager (e.g.,
sudo apt-get install ghostscript
on Ubuntu).
To use this library in your project, you can install it via npm:
npm install pdf-compress-split-utility
The compressPDF
function compresses individual pages of a PDF to ensure they do not exceed the specified size limit.
const { compressPDF } = require('pdf-compress-split-utility');
const path = require('path');
const inputPath = path.join(__dirname, 'path-to-your-pdf.pdf');
const KB = 1024;
(async () => {
try {
await compressPDF(inputPath, 900 * KB); // Compress pages to be under 900KB each
console.log('PDF pages compressed successfully');
} catch (err) {
console.error(err);
}
})();
The splitPDF
function splits a PDF file into smaller parts if the total file size exceeds the specified limit.
const { splitPDF } = require('pdf-compress-split-utility');
const path = require('path');
const inputPath = path.join(__dirname, 'path-to-your-pdf.pdf');
const KB = 1024;
(async () => {
try {
await splitPDF(inputPath, 9 * KB * KB); // Split file to be under 9MB
console.log('PDF split successfully');
} catch (err) {
console.error(err);
}
})();
You can combine both functions to first compress the pages and then split the PDF file if necessary.
const { compressPDF, splitPDF } = require('pdf-compress-split-utility');
const path = require('path');
const inputPath = path.join(__dirname, 'path-to-your-pdf.pdf');
const KB = 1024;
(async () => {
try {
await compressPDF(inputPath, 900 * KB); // Compress pages to be under 900KB each
console.log('PDF pages compressed successfully');
await splitPDF(inputPath, 9 * KB * KB); // Split file to be under 9MB
console.log('PDF split successfully');
} catch (err) {
console.error(err);
}
})();
- Ensure Ghostscript is installed and accessible from your command line. Verify by running
gs --version
(Linux) orgswin64c --version
/gswin32c --version
(Windows). - Adjust the paths and size limits (
maxPageSize
forcompressPDF
andmaxFileSize
forsplitPDF
) as per your requirements.
This project is licensed under the MIT License. See the LICENSE file for details.