On second though, shell script should not have .sh extension for simplicity
This commit is contained in:
parent
d6c84c7429
commit
249eb79fc9
2 changed files with 114 additions and 100 deletions
|
@ -7,9 +7,9 @@ You need to have ghoscript installed on your machine.
|
|||
```
|
||||
git clone https://gitea.auro.re/otthorn/pdf-optimize
|
||||
cd pdf-optimize
|
||||
chmod +x pdf-optimize.sh
|
||||
chmod +x pdf-optimize
|
||||
sudo mkdir -p /opt/bin/
|
||||
sudo cp pdf-optimize.sh /opt/bin/pdf-optimize
|
||||
sudo cp pdf-optimize /opt/bin/
|
||||
```
|
||||
|
||||
Don't forget to add `/opt/bin` to your `PATH`.
|
||||
|
|
62
pdf-optimize
62
pdf-optimize
|
@ -19,11 +19,18 @@ function usage
|
|||
{
|
||||
echo "usage: pdf-optimize [options] input.pdf"
|
||||
echo " ";
|
||||
echo " -a | --archive : archive mode (PDF/A)";
|
||||
echo " -c | --compatibility : compability more with PDF 1.4";
|
||||
echo " -h | --help : print this message";
|
||||
echo " -k | --quality : choose quality profile from:
|
||||
* 1 HIGH QUALITY [default]
|
||||
* 2 LOW QUALITY
|
||||
* 3 AGGRESSIVE
|
||||
* 4 VERY AGGRESIVE";
|
||||
echo " -o | --output : output filename";
|
||||
echo " -q | --quiet : run quietly";
|
||||
echo " -v | --verbose : run verbosly";
|
||||
echo " -y | --yes-to-replace : yes to replace existing files";
|
||||
echo " -h | --help : print this message";
|
||||
echo " ";
|
||||
echo "If no output path is specified, given input.pdf as input will output
|
||||
input_compressed.pdf"
|
||||
|
@ -41,7 +48,10 @@ function arg_parse
|
|||
|
||||
while [ "$1" != "" ]; do
|
||||
case "$1" in
|
||||
-k | --quality ) quality="$2"; shift;;
|
||||
-o | --output ) output_path="$2"; shift;;
|
||||
-a | --archive ) archive=1;;
|
||||
-c | --compatibility ) compatibility=1;;
|
||||
-q | --quiet ) quiet=1;;
|
||||
-v | --verbose ) verbose=1;;
|
||||
-y | --yes-to-replace ) replace=1;;
|
||||
|
@ -95,32 +105,36 @@ function run
|
|||
${bold}$output_path${normal}."
|
||||
fi
|
||||
|
||||
# run the compression using ghostscript
|
||||
if [[ "$verbose" != 1 ]]; then
|
||||
ghostscript -sDEVICE=pdfwrite \
|
||||
-dCompatibilityLevel=1.4 \
|
||||
# define the base command
|
||||
base_command="
|
||||
gs -sDEVICE=pdfwrite \
|
||||
-dPDFSETTINGS=/prepress \
|
||||
-dNOPAUSE \
|
||||
-dQUIET \
|
||||
-dBATCH \
|
||||
-sOutputFile=$output_path \
|
||||
$input_path
|
||||
else
|
||||
echo "input_path=$input_path";
|
||||
echo "output_path=$output_path";
|
||||
echo "quiet=$quiet";
|
||||
echo "verbose=$verbose";
|
||||
echo "replace=$replace";
|
||||
echo " ";
|
||||
ghostscript -sDEVICE=pdfwrite \
|
||||
-dCompatibilityLevel=1.4 \
|
||||
-dPDFSETTINGS=/prepress \
|
||||
-dNOPAUSE \
|
||||
-dBATCH \
|
||||
-sOutputFile=$output_path \
|
||||
$input_path
|
||||
-dBATCH ";
|
||||
|
||||
# add compatibilty
|
||||
if [[ "$compatibility" == 1 ]]; then
|
||||
base_command+="-dCompatibilityLevel=1.4 ";
|
||||
fi
|
||||
|
||||
# ask ghostsript to be quiet
|
||||
if [[ "$verbose" == 1 ]]; then
|
||||
base_command+="-dQUIET ";
|
||||
fi
|
||||
|
||||
# add archive mode option
|
||||
if [[ "$archive" == 1 ]]; then
|
||||
base_command+="-dPDFA=2 -dPDFACompatibilityPolicy=1 "
|
||||
fi
|
||||
|
||||
# add input and ouput paths
|
||||
base_command+="-sOutputFile=$output_path \
|
||||
$input_path"
|
||||
|
||||
# run command
|
||||
echo $base_command;
|
||||
#eval $base_command;
|
||||
|
||||
# catching errors
|
||||
if [[ "$?" != 0 ]]; then
|
||||
echo "Something went wrong with ghostscript.";
|
||||
|
@ -130,7 +144,7 @@ ${bold}$output_path${normal}."
|
|||
|
||||
# compute the compresion rate
|
||||
if [[ "$quiet" != 1 ]]; then
|
||||
compute_compression;
|
||||
#compute_compression;
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue