summaryrefslogtreecommitdiff
path: root/localpdf2pdfscreen
blob: 3d2095d7cb8f1340bd34504c15448ba7448f01ec (plain)
  1. #!/bin/sh
  2. #
  3. # /usr/local/bin/localpdf2pdfscreen
  4. # Copyright 2008 Jonas Smedegaard <dr@jones.dk>
  5. #
  6. # $Id: localpdf2pdfscreen,v 1.2 2008-03-17 12:53:04 jonas Exp $
  7. #
  8. # Downsize PDF file.
  9. #
  10. # TODO: Use *_lowres.pdf as default outfile
  11. #
  12. set -e
  13. PRG="$(basename "$0")"
  14. # Default options
  15. PDFTOPSOPTS="-paper match"
  16. PS2PDFOPTS="-dPDFSETTINGS=/screen"
  17. showhelp() {
  18. cat <<EOF
  19. Usage: $PRG INFILE [ OUTFILE ] [ pdftops opts ] [ -- ps2pdf opts ]
  20. If missing, OUTFILE is INFILE.pdf (ie. double pdf extension).
  21. Examples:
  22. $PRG newspaper.pdf newspaper_screenready.pdf
  23. EOF
  24. }
  25. exit1() {
  26. echo >&2 "ERROR: $1"
  27. exit 1
  28. }
  29. [ $# -gt 0 ] || exit1 "Input file missing"
  30. pdftopsopts=
  31. pstopdfopts=
  32. while [ $# -gt 0 ]; do
  33. case $1 in
  34. -h|--help)
  35. showhelp
  36. exit 0
  37. ;;
  38. --)
  39. shift
  40. break
  41. ;;
  42. -*)
  43. pdftopsopts="$pdftopsopts $1"
  44. shift
  45. ;;
  46. *)
  47. pools="$pools $1"
  48. shift
  49. ;;
  50. esac
  51. done
  52. ps2pdfopts="$@"
  53. # Use default options if none provided
  54. [ -n "pdftopsopts" ] || pdftopsopts="$PDFTOPSOPTS"
  55. [ -n "ps2pdfopts" ] || ps2pdfopts="$PS2PDFOPTS"
  56. infile="$1"
  57. tmpfile=$(mktemp -t "$PRG.XXXXXXXXXX") || exit 1
  58. outfile="${2:-$infile.pdf}"
  59. [ ! -e "$outfile" ] || exit1 "Output file already exists"
  60. pdftops $pdftopsopts "$infile" "$tmpfile"
  61. ps2pdf $ps2pdfopts "$tmpfile" "$outfile"
  62. rm "$tmpfile"
  63. exit 0