Browse Source

making stuff better :) case-insensitive page size mode and changed ifs to case switch

master
Gustavo Neves 8 years ago
parent
commit
f5979cba6d
1 changed files with 74 additions and 72 deletions
  1. +74
    -72
      pdfScale.sh

+ 74
- 72
pdfScale.sh View File

@@ -157,13 +157,13 @@ pageResize() {
# Get new paper sizes if not custom paper
isNotCustomPaper && getGSPaperSize "$RESIZE_PAPER_TYPE"

vprint " Auto Rotate: $(basename $AUTO_ROTATION)"
vprint " Auto Rotate: $(basename $AUTO_ROTATION)"

# Flip detect
local tmpInverter=""
if [[ $FLIP_DETECTION -eq $TRUE || $FLIP_FORCE -eq $TRUE ]]; then
if [[ $PGWIDTH -gt $PGHEIGHT && $RESIZE_WIDTH -lt $RESIZE_HEIGHT ]] || [[ $FLIP_FORCE -eq $TRUE ]]; then
[[ $FLIP_FORCE -eq $TRUE ]] && vprint " Flip Detect: Forced Mode!" || vprint " Flip Detect: Wrong orientation detected!"
[[ $FLIP_FORCE -eq $TRUE ]] && vprint " Flip Detect: Forced Mode!" || vprint " Flip Detect: Wrong orientation detected!"
vprint " Inverting Width <-> Height"
tmpInverter=$RESIZE_HEIGHT
RESIZE_HEIGHT=$RESIZE_WIDTH
@@ -305,82 +305,79 @@ parseScale() {

# Parse a forced mode of operation
parseMode() {
if isEmpty "$1"; then
printError "Mode is empty, please specify the desired mode"
printError "Falling back to adaptive mode!"
ADAPTIVEMODE=$TRUE
MODE=""
return $FALSE
fi
if [[ $1 = 'c' || $1 = 'catgrep' || $1 = 'cat+grep' || $1 = 'CatGrep' || $1 = 'C' || $1 = 'CATGREP' ]]; then
ADAPTIVEMODE=$FALSE
MODE="CATGREP"
return $TRUE
elif [[ $1 = 'i' || $1 = 'imagemagick' || $1 = 'identify' || $1 = 'ImageMagick' || $1 = 'Identify' || $1 = 'I' || $1 = 'IDENTIFY' ]]; then
ADAPTIVEMODE=$FALSE
MODE="IDENTIFY"
return $TRUE
elif [[ $1 = 'm' || $1 = 'mdls' || $1 = 'MDLS' || $1 = 'quartz' || $1 = 'mac' || $1 = 'M' ]]; then
ADAPTIVEMODE=$FALSE
MODE="MDLS"
return $TRUE
elif [[ $1 = 'p' || $1 = 'pdfinfo' || $1 = 'PDFINFO' || $1 = 'PdfInfo' || $1 = 'P' ]]; then
ADAPTIVEMODE=$FALSE
MODE="PDFINFO"
return $TRUE
elif [[ $1 = 'a' || $1 = 'adaptive' || $1 = 'automatic' || $1 = 'A' || $1 = 'ADAPTIVE' || $1 = 'AUTOMATIC' ]]; then
ADAPTIVEMODE=$TRUE
MODE=""
return $TRUE
else
printError "Invalid mode: $1"
printError "Falling back to adaptive mode!"
ADAPTIVEMODE=$TRUE
MODE=""
return $FALSE
fi
local param="$(lowercase $1)"
case "${param}" in
c|catgrep|'cat+grep')
ADAPTIVEMODE=$FALSE
MODE="CATGREP"
return $TRUE
;;
i|imagemagick|identify)
ADAPTIVEMODE=$FALSE
MODE="IDENTIFY"
return $TRUE
;;
m|mdls|quartz|mac)
ADAPTIVEMODE=$FALSE
MODE="MDLS"
return $TRUE
;;
p|pdfinfo)
ADAPTIVEMODE=$FALSE
MODE="PDFINFO"
return $TRUE
;;
*)
ADAPTIVEMODE=$TRUE
MODE=""
if [[ "$param" != 'a' && "$param" != 'auto' && "$param" != 'automatic' && "$param" != 'adaptive' ]]; then
printError "Error! Invalid PDF Size Detection Mode: \"$1\", using adaptive mode!"
return $FALSE
fi
return $TRUE
;;
esac
return $FALSE
}

# Parses and validates the scaling factor
parseFlipDetectionMode() {
local param="$(lowercase $1)"
case "${param}" in
d|disable)
FLIP_DETECTION=$FALSE
FLIP_FORCE=$FALSE
;;
f|force)
FLIP_DETECTION=$FALSE
FLIP_FORCE=$TRUE
;;
*)
[[ "$param" != 'a' || "$param" != 'auto' ]] && printError "Error! Invalid Flip Detection Mode: \"$1\", using automatic mode!"
FLIP_DETECTION=$TRUE
FLIP_FORCE=$FALSE
;;
esac
local param="$(lowercase $1)"
case "${param}" in
d|disable)
FLIP_DETECTION=$FALSE
FLIP_FORCE=$FALSE
;;
f|force)
FLIP_DETECTION=$FALSE
FLIP_FORCE=$TRUE
;;
*)
[[ "$param" != 'a' && "$param" != 'auto' ]] && printError "Error! Invalid Flip Detection Mode: \"$1\", using automatic mode!"
FLIP_DETECTION=$TRUE
FLIP_FORCE=$FALSE
;;
esac
}

# Parses and validates the scaling factor
parseAutoRotationMode() {
local param="$(lowercase $1)"
case "${param}" in
n|none)
AUTO_ROTATION='/None'
;;
a|all)
AUTO_ROTATION='/All'
;;
p|pagebypage|auto)
AUTO_ROTATION='/PageByPage'
;;
*)
printError "Error! Invalid Auto Rotation Mode: $param, using default: $(basename $AUTO_ROTATION)"
;;
esac
local param="$(lowercase $1)"
case "${param}" in
n|none)
AUTO_ROTATION='/None'
;;
a|all)
AUTO_ROTATION='/All'
;;
p|pagebypage|auto)
AUTO_ROTATION='/PageByPage'
;;
*)
printError "Error! Invalid Auto Rotation Mode: $param, using default: $(basename $AUTO_ROTATION)"
;;
esac
}


@@ -1013,10 +1010,13 @@ notIsAvailable() {
printVersion() {
local vStr=""
[[ "$2" = 'verbose' ]] && vStr=" - Verbose Execution"
local strBanner="$PDFSCALE_NAME v$VERSION$vStr"
if [[ $1 -eq 2 ]]; then
printError "$PDFSCALE_NAME v$VERSION$vStr"
printError "$strBanner"
elif [[ $1 -eq 3 ]]; then
echo "$strBanner"
else
vprint "$PDFSCALE_NAME v$VERSION$vStr"
vprint "$strBanner"
fi
}

@@ -1030,10 +1030,12 @@ vPrintScaleFactor() {

# Prints help info
printHelp() {
printVersion
printVersion 3
local paperList="$(printPaperNames)"
echo "
Usage: $PDFSCALE_NAME [-v] [-s <factor>] [-m <mode>] [-r <paper>] <inFile.pdf> [outfile.pdf]
Usage: $PDFSCALE_NAME <inFile.pdf>
$PDFSCALE_NAME [-v] [-s <factor>] [-m <page-detection>] <inFile.pdf> [outfile.pdf]
$PDFSCALE_NAME [-v] [-r <paper>] [-f <flip-detection>] [-a <auto-rotation>] <inFile.pdf> [outfile.pdf]
$PDFSCALE_NAME -p
$PDFSCALE_NAME -h
$PDFSCALE_NAME -V


Loading…
Cancel
Save