This repository contains usefull shell scripts for daily use.
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

#!/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
#################################################################