Re: making a pdf file smaller the debian way....
On Mon, 2011-01-03 at 20:57 -0600, John Hasler wrote:
> John A. Sullivan III writes:
> > Does anyone know how to change the behavior of gs, Konqueror, KDE,
> > dcop, or anything else to ensure the file icon does not appear until
> > the reduction is complete?
>
> Have gs write to a hidden temporary file. Rename it when it's done.
> Arrange to remove the temporary if gs exits abnormally (you need to add
> error-handling anyway).
> --
> John Hasler
>
>
Oops - needed to added quotes around the DIR variable in case of spaces
in the directory names. Here's what we have now:
#!/bin/bash
OFILE=""
OK=true
FILES="\"$(echo "${1}" | sed 's/ \//\" \"\//g')\""
DIR="$(echo ${FILES} | sed 's/\"\([^\"]*\)\".*/\1/')"
DIR="${DIR%/*}/"
EXT=""
ret=0
while ${OK}
do
OFILE="$(kdialog --title "Enter New Reduced PDF File Name"
--getsavefilename "${DIR}")"
if [ $? -ne 0 ];then
exit 4
fi
EXT="${OFILE: -4:4}"
if [ "${EXT}" != ".pdf" -a "${EXT}" != ".PDF" ];then
OFILE="${OFILE}.pdf"
fi
if [ -f "${OFILE}" ];then
kdialog --title "Reduce PDF File" --warningyesno "The file ${OFILE}
already exists.\nShall I overwrite it?"
if [ $? -ne 0 ];then
continue
fi
fi
OK=false
done
FNAME="${OFILE##*/}"
DNAME="${OFILE%/*}"
kdialog --title "Reduce PDF File" --msgbox "PDF reduction can take
several minutes.\nYou will be notified via popup when the process is
complete.\nThank you." &
eval gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=\"${HOME}/tmp/${FNAME}\" ${FILES}
ret=$?
if [ $ret -eq 0 ];then
mv "${HOME}/tmp/${FNAME}" "${OFILE}"
ret=$?
fi
if [ $ret -ne 0 ];then
rm -f "${HOME}/tmp/${FNAME}"
kdialog --title "Reduce PDF File" --error "PDF Reduction of ${OFILE}
failed."
exit 5
fi
kdialog --title "Reduce PDF File" --msgbox "PDF Reduction Completed for:
\n${OFILE}"
Reply to: