pdf-toolz
Version:
NodeJS PDF utilities
78 lines (59 loc) • 1.94 kB
Markdown
# pdf-toolz
NodeJS PDF utilities
## Installation
```sh
npm install mz pdf-toolz
```
### Reading PDF page sizes
```js
const fs = require('mz/fs');
const {readPDFPageSizes} = require('pdf-toolz/PageSizes');
async function readPageSizes() {
const pdf = await fs.readFile('test/portrait-singlepage.pdf');
const pageSizes = await pdfPageSizes(pdf);
console.log(pageSizes); // [PageSize(842, 595)]);
}
readPageSizes()
```
### Converting PDF to one image per page
```js
const fs = require('mz/fs');
const {pdfToImage} = require('pdf-toolz/PDF2Image');
async function exportPageImages() {
const pdf = await fs.readFile('test/portrait-singlepage.pdf');
const pageImages = await pdfToImage(pdf, 'png', 400 /* dpi */);
// Export the page images
await fs.writeFile("page-1.png", pageImages[0]);
await fs.writeFile("page-2.png", pageImages[1]);
await fs.writeFile("page-3.png", pageImages[2]);
}
exportPageImages()
```
### Splitting a PDF into pages (i.e. one PDF per page)
```js
const fs = require('mz/fs');
const {splitPDF} = require('pdf-toolz/SplitCombine');
async function splitPDFIntoPages() {
const pdf = await fs.readFile('test/portrait-multipage.pdf');
const pages = await splitPDF(pdf);
// Export the page images
await fs.writeFile("page-1.pdf", pages[0]);
await fs.writeFile("page-2.pdf", pages[1]);
await fs.writeFile("page-3.pdf", pages[2]);
}
splitPDFIntoPages()
```
### Combining (appending) multiple PDFs into one
```js
const fs = require('mz/fs');
const {combinePDF} = require('pdf-toolz/SplitCombine');
async function combinePDFs() {
// Read two PDFs to be combined
const pdf1 = await fs.readFile('test/portrait-singlepage.pdf');
const pdf2 = await fs.readFile('test/landscape-singlepage.pdf');
const combined = await combinePDF([pdf1, pdf2]);
// Write output file
await fs.writeFile('combined.pdf', combined);
}
combinePDFs()
```