You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.4 KiB
85 lines
2.4 KiB
#!/bin/sh
|
|
|
|
#################################################################
|
|
# This is a script to compress pdf files with ghostscript
|
|
#
|
|
# Author: Hannes Bohnengel
|
|
# Last modified: 21 September 2016
|
|
# Revision: 0.1
|
|
# CLI usage: ./ghostscript.sh [FILENAME] [COMPRESSION LEVEL]
|
|
# Sources: https://gist.github.com/firstdoit/6390547
|
|
# http://ghostscript.com/doc/current/Ps2pdf.htm
|
|
#
|
|
#################################################################
|
|
|
|
##
|
|
# -- Settings
|
|
##
|
|
|
|
# First input argument (name of input file)
|
|
IN="$1"
|
|
|
|
# Second input argument (compression level)
|
|
LEVEL="$2"
|
|
|
|
# Description of compression levels
|
|
#- /screen selects low-resolution output similar to the Acrobat Distiller "Screen Optimized" setting.
|
|
#- /ebook selects medium-resolution output similar to the Acrobat Distiller "eBook" setting.
|
|
#- /printer selects output similar to the Acrobat Distiller "Print Optimized" setting.
|
|
#- /prepress selects output similar to Acrobat Distiller "Prepress Optimized" setting.
|
|
#- /default selects output intended to be useful across a wide variety of uses, possibly at the expense of a larger output file.
|
|
|
|
# Setting compression level (5: highest compression; 1: lowest compression)
|
|
case "$LEVEL" in
|
|
1) COMP="/prepress"
|
|
;;
|
|
2) COMP="/printer"
|
|
;;
|
|
3) COMP="/ebook"
|
|
;;
|
|
4) COMP="/screen"
|
|
;;
|
|
5) COMP="/default"
|
|
;;
|
|
*) COMP="/printer"
|
|
LEVEL=2
|
|
;;
|
|
esac
|
|
|
|
# Create name of output file as INPUTNAME_compressed.pdf
|
|
OUT=${IN%.*}
|
|
OUT="${OUT}-compressed-$LEVEL.pdf"
|
|
|
|
# Define command
|
|
MYCMD="gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=${COMP} -dNOPAUSE -dQUIET -dBATCH -sOutputFile=${OUT} ${IN}"
|
|
|
|
##
|
|
# -- End of settings
|
|
##
|
|
|
|
# Output
|
|
echo "================================================================================
|
|
Compression of a pdf file using ghostscript\n
|
|
Input file name: $IN
|
|
Output file name: $OUT
|
|
Compression level: $LEVEL/5
|
|
================================================================================\n
|
|
> Starting compression...\n"
|
|
|
|
# Check second input parameter
|
|
#if [ $2 -lt 1 ] || [ $2 -gt 5 ]
|
|
#then
|
|
# echo "> Unvalid compression level input -> Set compression level to $LEVEL\n
|
|
#> Starting compression...\n"
|
|
#else
|
|
# echo "> Starting compression...\n"
|
|
#fi
|
|
|
|
# Execute command
|
|
$MYCMD
|
|
|
|
echo "\n> Finished compression"
|
|
|
|
#################################################################
|
|
# EOF
|
|
#################################################################
|
|
|