From 955d1a5c31d7b6ac704d1eba8e11e36cb94f7438 Mon Sep 17 00:00:00 2001 From: "Colin Z. Robertson" Date: Sun, 13 Aug 2017 17:13:38 +0100 Subject: [PATCH] Add --image-resolution option The /printer setting is for 300dpi. --- pdfScale.sh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/pdfScale.sh b/pdfScale.sh index 7eeaae2..ced11b8 100755 --- a/pdfScale.sh +++ b/pdfScale.sh @@ -59,6 +59,7 @@ PGWIDTH="" # Input PDF Page Width PGHEIGHT="" # Input PDF Page Height RESIZE_WIDTH="" # Resized PDF Page Width RESIZE_HEIGHT="" # Resized PDF Page Height +IMAGE_RESOLUTION=300 # Image resolution (dpi) (300 is /Printer default) ########################## EXIT FLAGS ########################## @@ -79,6 +80,7 @@ EXIT_NOWRITE_PERMISSION=29 EXIT_NOREAD_PERMISSION=30 EXIT_TEMP_FILE_EXISTS=40 EXIT_INVALID_PAPER_SIZE=50 +EXIT_INVALID_IMAGE_RESOLUTION=51 ############################# MAIN ############################# @@ -189,6 +191,7 @@ gsPageScale() { "$GSBIN" \ -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dSAFER \ -dCompatibilityLevel="1.5" -dPDFSETTINGS="/printer" \ +-dColorImageResolution=$IMAGE_RESOLUTION -dGrayImageResolution=$IMAGE_RESOLUTION \ -dColorConversionStrategy=/LeaveColorUnchanged \ -dSubsetFonts=true -dEmbedAllFonts=true \ -dDEVICEWIDTHPOINTS=$PGWIDTH -dDEVICEHEIGHTPOINTS=$PGHEIGHT \ @@ -217,6 +220,7 @@ gsPageResize() { "$GSBIN" \ -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dSAFER \ -dCompatibilityLevel="1.5" -dPDFSETTINGS="/printer" \ +-dColorImageResolution=$IMAGE_RESOLUTION -dGrayImageResolution=$IMAGE_RESOLUTION \ -dColorConversionStrategy=/LeaveColorUnchanged \ -dSubsetFonts=true -dEmbedAllFonts=true \ -dDEVICEWIDTHPOINTS=$RESIZE_WIDTH -dDEVICEHEIGHTPOINTS=$RESIZE_HEIGHT \ @@ -383,6 +387,11 @@ getOptions() { parseAutoRotationMode "$1" shift ;; + --image-resolution) + shift + parseImageResolution "$1" + shift + ;; *) initError "Invalid Parameter: \"$1\"" $EXIT_INVALID_OPTION ;; @@ -559,6 +568,16 @@ parsePaperResize() { fi } +# Parses and validates the scaling factor +parseImageResolution() { + if isNotAnInteger "$1"; then + printError "Invalid image resolution: $1" + printError "The image resolution must be an integer" + exit $EXIT_INVALID_IMAGE_RESOLUTION + fi + IMAGE_RESOLUTION="$1" +} + ################### PDF PAGE SIZE DETECTION #################### @@ -1295,6 +1314,9 @@ Parameters: n, none Retains orientation of each page a, all Rotates all pages (or none) depending on a kind of \"majority decision\" + --image-resolution + Resolution in DPI of color and grayscale images in output + Default: 300 -p, --print-papers Prints Standard Paper info tables to screen and exits