@lpgroup/ghostscript
v1.9.1
Published
Wrapping ghostscript cli tool
Downloads
745
Readme
ghostscript
Flatten and optimize PDF with shell command Ghostscript gsx
.
Install
The npm module requires shell command Ghostscript to be installed on the machine.
# 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
npm install @lpgroup/ghostscript
Example
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 npm. Debug messages are printed to stdout if the follwoing is set.
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.
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
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
License
MIT - See licence