
| Current Path : /bin/X11/X11/X11/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //bin/X11/X11/X11/fbgs |
#!/bin/sh
#
# PostScript/pdf viewer for the linux framebuffer console
# (c) 1999-2012 Gerd Hoffmann <gerd@kraxel.org>
#
# tmp dir
DIR="$(mktemp -dtp ${TMPDIR-/var/tmp} fbgs-XXXXXX)"
test -d "$DIR" || exit 1
trap "rm -rf $DIR" EXIT
# parse options
fbiopts=""
gsopts=""
passwd=""
device="png16m"
opt=1
bell="off"
helptext="\
This program displays PostScript/pdf files using the linux framebuffer device.
It is a simple wrapper script for GhostScript and fbi.
usage: fbgs [fbgs options] [fbi options] file
-b --bell emit a beep when the document is ready
-h --help print this help text
-p --password <arg> a <password> passed to the PDF
-fp --firstpage <arg> begins on the <arg> page
-lp --lastpage <arg> stops on the <arg> page
-c --(no)color pages in color
-l pages rendered with 100 dpi
-xl pages rendered with 120 dpi
-xxl pages rendered with 150 dpi
-r --resolution <arg> choose resolution of <arg> dpi
Read the fbgs(1) and fbi(1) manpages for more details.
"
[ $# -ne 0 ] || set -- -h
while test "$opt" = "1"; do
case "$1" in
# fbgs options
-b | --bell)
bell="on"
shift
;;
-h | --help)
printf "$helptext"
exit 1
;;
-p | --password)
password="$2"
shift; shift
;;
-fp | --firstpage)
gsopts="$gsopts -dFirstPage=$2"
shift; shift
;;
-lp | --lastpage)
gsopts="$gsopts -dLastPage=$2"
shift; shift
;;
-c | --color)
device="png16m"
shift
;;
--nocolor)
device="tiffpack"
shift
;;
-l) gsopts="$gsopts -r100x100"
shift
;;
-xl) gsopts="$gsopts -r120x120"
shift
;;
-xxl) gsopts="$gsopts -r150x150"
shift
;;
-r | --resolution)
gsopts="$gsopts -r$2x$2"
shift; shift
;;
# fbi options without argument
-a | --autozoom | \
--autoup | --noautoup | \
--autodown | --noautodown | \
--fitwidth | --nofitwidth | \
--readahead | --noreadahead | \
-v | --verbose | --noverbose | \
-u | --random | --norandom | \
-1 | --once | --noonce)
fbiopts="$fbiopts $1"
shift
;;
# fbi options with one argument
-T | --vt | \
-s | --scroll | \
-t | --timeout | \
-g | --gamma | \
-f | --font | \
-d | --device | \
-m | --mode)
fbiopts="$fbiopts $1 $2"
shift; shift
;;
# others options
-*) echo "unknown option: $1"
exit 1
;;
*) opt=0
;;
esac
done
if [ ! -f "$1" ]; then
echo "fbgs: cannot stat '$1': No such file or directory"
exit 1
fi
# run ghostscript
echo
echo "### rendering pages, please wait ... ###"
echo
gs -dSAFER -dNOPAUSE -dBATCH \
-sPDFPassword="$password" \
-sDEVICE=${device} -sOutputFile=$DIR/ps%03d.tiff \
$gsopts \
"$1"
# tell the user we are done :-)
if test "$bell" = "on"; then
printf "\a"
fi
# sanity check
pages=`ls $DIR/ps*.tiff 2>/dev/null | wc -l`
if test "$pages" -eq "0"; then
echo
echo "Oops: ghostscript wrote no pages?"
echo
exit 1
fi
# show pages
fbi $fbiopts -P $DIR/ps*.tiff