@lpgroup/ghostscript
Version:
Wrapping ghostscript cli tool
101 lines (72 loc) • 2.72 kB
Markdown
# ghostscript
[](https://badge.fury.io/js/%40lpgroup%2Fghostscript) [](https://snyk.io/test/npm/@lpgroup/ghostscript)
[](https://gitlab.com/lpgroup/lpgroup/-/blob/master/LICENSE.md)
[](https://github.com/facebook/jest) [](https://codecov.io/gl/lpgroup/lpgroup)
Flatten and optimize PDF with shell command Ghostscript `gsx`.
## Install
The npm module requires shell command Ghostscript to be installed on the machine.
```sh
# OSX
brew install ghostscript
# Alpine
apk update
apk add imagemagick ghostscript-fonts ghostscript
# Debian/ubuntu
apt-get update
apt-get install ghostscript
```
Installation of the npm
```bash
npm install @lpgroup/ghostscript
```
## Example
```js
const { readfilesync, writeFile } = require("fs");
const { resolve } = require("path");
const { optimize } = require("@lpgroup/ghostscript");
const fileIn = resolve("./test/flytt_uppdrag.pdf");
const fileOut = resolve("./test/flytt_uppdrag_optimized.pdf");
const input = readfilesync(fileIn);
optimize({ input }).then((output) => {
writeFile(fileOut, output, "binary");
});
```
## API
### `env DEBUG`
This package uses the [debug](https://www.npmjs.com/package/debug) npm. Debug messages are printed to stdout if the follwoing is set.
```bash
export DEBUG=ghostscript
```
### `optimize({options})`
Following are all values that can be used in options and the default values that are used if none is entered.
```js
optimize({
input,
compressFonts: true,
embedAllFonts: true,
subsetFonts: true,
dpi: 300,
colorConversionStrategy: "RGB",
});
```
## Raw shell command
Below is the shell command executed by node, if you'd like to optimize it further yourself. Credit goes to
Matt DesLauriers and the repo http://github.com/mattdesl/gsx-pdf-optimize
Removed according to https://stackoverflow.com/questions/49686527/ghostscritpt-converted-file-not-view-able-in-adobe-reader
-dPDFSETTINGS=/screen
-dCompatibilityLevel=1.5
```sh
cat test/large-file.pdf | \
gsx -sDEVICE=pdfwrite \
-dNOPAUSE \
-dQUIET \
-dBATCH \
-dSubsetFonts=true \
-dCompressFonts=true \
-dEmbedAllFonts=true \
-sOutputFile=- - > flytt_uppdrag_optimized.pdf
```
## Contribute
See [contribute](https://gitlab.com/lpgroup/lpgroup/-/blob/master/README.md#contribute)
## License
MIT - See [licence](https://gitlab.com/lpgroup/lpgroup/-/blob/master/LICENSE.md)