#!/bin/bash echo "Setting environment variables." # LOCKFILE is use to serialize access. Only one instance of # firefox can be accessed. MAX_WAIT=150 LOCKFILE=/tmp/FPRINT_LOCK FIREFOX_PROFILE=mozillaprint export FIREFOX_INSTALL_PATH=/home/qan/mozilla-print/lib/firefox-1.5.0.1 export LD_LIBRARY_PATH=${FIREFOX_INSTALL_PATH} export MOZ=${FIREFOX_INSTALL_PATH}/firefox-bin export HOME=/home/qan export MOZ_NO_REMOTE=1 # if an instance is running, wait till completion # wait at most ${MAX_WAIT} sec. If more give up. COUNTLOOP=0 while [ -f ${LOCKFILE} ] ; do sleep 1; ((COUNTLOOP++)) if [ ${COUNTLOOP} -eq ${MAX_WAIT} ] ; then echo "Impossible to LOCK, error." exit -1 fi done touch ${LOCKFILE} echo "excuting ${MOZ} --display=:0 ${MOZ_PDF_CONVERT_URL} -P ${FIREFOX_PROFILE} &." ${MOZ} --display=:0 "${MOZ_PDF_CONVERT_URL}" -P ${FIREFOX_PROFILE} & # save PID PID=$! # Until the postscript file is created, sleep. # wait at most ${MAX_WAIT} sec. If more give up. COUNTLOOP=0 until [ -f ${MOZ_PS_FILENAME} ] ; do sleep 1; ((COUNTLOOP++)) if [ ${COUNTLOOP} -eq ${MAX_WAIT} ] ; then echo "Postscript file creation error." kill -9 ${PID} rm -f ${LOCKFILE} exit -1 fi done # kill mozilla instance echo "Killing ${MOZ} ${PID}." kill -9 ${PID} echo "Converting ${MOZ_PS_FILENAME} to pdf with ps2pdf ${MOZ_PS_FILENAME} ${MOZ_PDF_FILENAME}." # convert postscript to pdf 1.4 ps2pdf -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dEncodeGrayImages=true -dEncodeMonoImages=true -dEncodeColorImages=true -dCompressPages=true -dOffOptimizations=0 ${MOZ_PS_FILENAME} ${MOZ_PDF_FILENAME} rm -f ${LOCKFILE} echo "done."