blob: e2c4d023a2cc20b276d08d36ebe3812b8d4a66d6 (
plain)
- #!/bin/sh
- #
- # /usr/local/bin/localpdf2pdfscreen
- # Copyright 2008 Jonas Smedegaard <dr@jones.dk>
- #
- # $Id: localpdf2pdfscreen,v 1.5 2008-03-17 13:39:17 jonas Exp $
- #
- # Downsize PDF file.
- #
- set -e
- PRG="$(basename "$0")"
- # Default options
- PDFTOPSOPTS="-preload -paper match"
- PS2PDFOPTS="-dPDFSETTINGS=/screen"
- showhelp() {
- cat <<EOF
- Usage: $PRG INFILE [ OUTFILE ] [ pdftops opts ] [ -- ps2pdf opts ]
- Defaults:
- OUTFILE: INFILE with trailing ".pdf" replaced with "_lowres.pdf".
- pdftops: $PDFTOPSOPTS
- ps2pdf: $PS2PDFOPTS
- Examples:
- $PRG newspaper.pdf newspaper_screenready.pdf
- $PRG newspaper.pdf -level3
- EOF
- }
- exit1() {
- echo >&2 "ERROR: $1"
- exit 1
- }
- [ $# -gt 0 ] || exit1 "Input file missing"
- infile=
- outfile=
- pdftopsopts=
- pstopdfopts=
- while [ $# -gt 0 ]; do
- case $1 in
- -h|--help)
- showhelp
- exit 0
- ;;
- --)
- shift
- break
- ;;
- -*)
- pdftopsopts="$pdftopsopts $1"
- shift
- ;;
- *)
- if [ -z "$infile" ]; then
- infile="$1"
- elif [ -z "$outfile" ]; then
- outfile="$1"
- else
- exit1 "Too many parameters"
- fi
- shift
- ;;
- esac
- done
- ps2pdfopts="$@"
- # Use defaults if not overridden
- outfile="${outfile:-$(basename "$infile" .pdf)_lowres.pdf}"
- pdftopsopts="${pdftopsopts:-$PDFTOPSOPTS}"
- ps2pdfopts="${ps2pdfopts:-$PS2PDFOPTS}"
- [ ! -e "$outfile" ] || exit1 "Output file already exists"
- tmpfile=$(mktemp -t "$PRG.XXXXXXXXXX") || exit 1
- pdftops $pdftopsopts "$infile" "$tmpfile" || rm "$tmpfile"
- ps2pdf $ps2pdfopts "$tmpfile" "$outfile"
- rm "$tmpfile"
- exit 0
|