https://github.com/nicofuccella/pdf-thumbnail
npm package to create the preview of a pdf file
https://github.com/nicofuccella/pdf-thumbnail
crop ghostscript imagemagick nodejs npm-package pdf pdf-thumbnail pdf-thumbnails resize
Last synced: 10 months ago
JSON representation
npm package to create the preview of a pdf file
- Host: GitHub
- URL: https://github.com/nicofuccella/pdf-thumbnail
- Owner: nicofuccella
- License: mit
- Created: 2018-01-02T14:39:18.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2022-02-11T05:02:44.000Z (almost 4 years ago)
- Last Synced: 2024-10-29T10:42:55.377Z (about 1 year ago)
- Topics: crop, ghostscript, imagemagick, nodejs, npm-package, pdf, pdf-thumbnail, pdf-thumbnails, resize
- Language: JavaScript
- Homepage:
- Size: 653 KB
- Stars: 29
- Watchers: 3
- Forks: 7
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pdf-thumbnail
[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Issues][issues-image]][issues-url] [![Dependency Status][dependencies-image]][dependencies-url]
[npm-url]: https://www.npmjs.com/package/pdf-thumbnail
[npm-image]: http://img.shields.io/npm/v/pdf-thumbnail.svg?style=flat
[downloads-image]: https://img.shields.io/npm/dm/pdf-thumbnail.svg?style=flat-square
[dependencies-image]: https://david-dm.org/nicofuccella/pdf-thumbnail.svg
[dependencies-url]: href="https://david-dm.org/nicofuccella/pdf-thumbnail
[issues-image]: https://img.shields.io/github/issues/nicofuccella/pdf-thumbnail.svg
[issues-url]: https://github.com/nicofuccella/pdf-thumbnail/issues
## Installation
$ npm i pdf-thumbnail
## Getting started
This module works with gm, so you have to install imagemagick and ghostscript on your pc.
On Mac OS X:
$ brew install imagemagick
$ brew install ghostscript
On Linux:
$ sudo apt-get install imagemagick
$ sudo apt-get install ghostscript
## What is pdf-thumbnail?
pdf-thumbnail creates a thumbnail of the first page of a pdf file. You can also manipulate the image:
* You can resize it
* You can compress it with less quality
* You can crop it
## How to use it
pdf-thumbnail returns a Promise:
```javascript
const pdf = require('pdf-thumbnail');
const pdfBuffer = require('fs').readFileSync('/some/path/example.pdf');
pdf(
pdfBuffer, /*Buffer or stream of the pdf*/
options
)
.then(data /*Stream of the image*/ => {
// ...
})
.catch(err => console.log(err))
```
### Options
An object where you can put the operations you would like to do on the thumbnail. The current available operations are:
* Compress
* Crop
* Resize
#### Compress
```javascript
const pdf = require('pdf-thumbnail');
const pdfBuffer = require('fs').readFileSync('/some/path/example.pdf');
pdf(pdfBuffer, {
compress: {
type: 'JPEG', //default
quality: 70 //default
}
})
.then(data => {
// ...
})
.catch(err => console.log(err))
```
#### Crop
```javascript
const pdf = require('pdf-thumbnail');
const pdfBuffer = require('fs').readFileSync('/some/path/example.pdf');
pdf(pdfBuffer, {
crop: {
width: 200,
height: 400,
x: 0,
y: 0
}
})
.then(data => {
// ...
})
.catch(err => console.log(err))
```
If you want to crop the image keeping the aspect ratio, yuo have to add another key to the object:
crop: {
width: 200,
height: 400,
x: 0,
y: 0,
ratio: true //default true
}
#### Resize
```javascript
const pdf = require('pdf-thumbnail');
const pdfBuffer = require('fs').readFileSync('/some/path/example.pdf');
pdf(pdfBuffer, {
resize: {
width: 200, //default
height: 200, //default
}
})
.then(data => {
// ...
})
.catch(err => console.log(err))
```
## Example
See a few examples [here](test/)
## People
- [Nicolò Fuccella](https://github.com/nicoFuccella)
- [Nicola Guerra](https://github.com/Ng2k)
## License
MIT