#!/bin/sh
# rcrsn51 2011-08-09
# version 2.3 2012-11-15
# gettexted by esmourguit 2013/02/13
# updated to v5.5 2025-03-22

export TEXTDOMAIN=peasypdf
export OUTPUT_CHARSET=UTF-8

eval_gettext ()
{
local myMESSAGE=$(gettext "$1")
eval echo -n \"$myMESSAGE\"
}
export -f eval_gettext

CONVERT ()
{
[ ! -f "$CONVERTNAME" ] && Xdialog --title " "  --msgbox "$(eval_gettext 'File $CONVERTNAME not found!')" 0 0 && exit

Xdialog --title " " --no-buttons --infobox "$(eval_gettext 'Converting $CONVERTNAME ...')" 0 0 10000 &
MSGPID=$!

TYPE=$(file -L "$CONVERTNAME" | cut -d ":" -f 2 | cut -d " " -f 2)
case $TYPE in
	JPEG) jpegtopnm "$CONVERTNAME" > /tmp/pptemp.pnm ;;
	PNG)	pngtopnm "$CONVERTNAME" > /tmp/pptemp.pnm	;;
	TIFF)	tifftopnm "$CONVERTNAME" > /tmp/pptemp.pnm ;;
	*) kill $MSGPID
		 Xdialog --title " " --msgbox "$(gettext 'Not a valid graphics file!')" 0 0
		 exit
		 ;;
esac

CUSTOMMODE="yes"
if [ "$PAGESIZE" = "$(gettext 'Custom')" ]; then
	CUSTOMDPI=300;
elif [ "$PAGESIZE" = "$(gettext 'Custom+')" ]; then
	CUSTOMDPI=100;
elif [ "$PAGESIZE" = "$(gettext 'Custom-')" ]; then
	CUSTOMDPI=500;
else
	CUSTOMMODE="no"
fi

if [ "$CUSTOMMODE" = "yes" ]; then	
	read PIXWIDTH PIXHEIGHT <<< $(get-image-size /tmp/pptemp.pnm)
	INWIDTH=$(dc -e "3 k $PIXWIDTH $CUSTOMDPI / p")	#inches
	INHEIGHT=$(dc -e "3 k $PIXHEIGHT $CUSTOMDPI / p")
	OPTIONS="-noturn -setpage -imagewidth=$INWIDTH -imageheight=$INHEIGHT -width=$INWIDTH -height=$INHEIGHT"
else
	OPTIONS="-center -setpage"
	[ "$TURN" = "false" ] && OPTIONS=$OPTIONS" -noturn" 
	[ "$RESIZE" = "false" ] && OPTIONS=$OPTIONS" -equalpixels"
	case "$PAGESIZE" in
		Letter) INWIDTH=8.5; INHEIGHT=11 ;;
		Legal) INWIDTH=8.5; INHEIGHT=14 ;;
		A4) INWIDTH=8.3; INHEIGHT=11.7 ;;
		5x7) INWIDTH=5; INHEIGHT=7 ;;
		6x8) INWIDTH=6; INHEIGHT=8 ;;
		*) INWIDTH=8.5; INHEIGHT=11 ;;
	esac
	if [ $LANDSCAPE = "true" ]; then
		TEMP=$INWIDTH; INWIDTH=$INHEIGHT; INHEIGHT=$TEMP
	fi 
	OPTIONS=$OPTIONS" -w $INWIDTH -h $INHEIGHT"
fi

pnmtops $OPTIONS /tmp/pptemp.pnm > /tmp/pptemp.ps
OUTNAME=$CONVERTNAME".pdf"
ps2pdf /tmp/pptemp.ps "$OUTNAME"
rm /tmp/pptemp.pnm /tmp/pptemp.ps

kill $MSGPID
Xdialog --title " " --msgbox "$(eval_gettext 'File saved as $OUTNAME')" 0 0
}
export -f CONVERT 

NEWPROJECT ()
{ 
mkdir -p $JOINPATH
rm -f $JOINPATH/*
echo "0" > $JOINPATH/.filecounter
Xdialog --title " " --msgbox "$(eval_gettext 'New project started in $JOINPATH')" 0 0
}
export -f NEWPROJECT

ADD ()
{
[ ! -f $JOINPATH/.filecounter ] && NEWPROJECT

[ -z "$JOINNAME" ] && Xdialog --title " " --msgbox "$(gettext 'Nothing to add!')" 0 0 && exit
[ ! -f "$JOINNAME" ] && Xdialog --title " "  --msgbox "$(eval_gettext 'File $JOINNAME not found!')" 0 0 && exit
	
FC=$(cat $JOINPATH/.filecounter)
((++FC))
FN=$(printf "%003d" $FC)".pdf"
echo $FC > $JOINPATH/.filecounter

TYPE=$(file "$JOINNAME" | cut -d ":" -f 2 | cut -d " " -f 2)
case $TYPE in
	PDF)
		Xdialog --title " " --no-buttons --infobox "$(eval_gettext 'Adding $JOINNAME ...')" 0 0 1000 &
		if [ "${JOINNAME:0:4}" = "/tmp" ]; then
			cp "$JOINNAME" $JOINPATH/$FN
		else
			ln -s "$JOINNAME" $JOINPATH/$FN
		fi
		;;
	*) 
		Xdialog --title " " --msgbox "$(gettext 'Not a valid PDF file!')" 0 0
		;;
esac
}
export -f ADD

JOIN ()
{
ls $JOINPATH/*.pdf > /dev/null
[ $? -gt 0 ] && Xdialog --title " " --msgbox "$(gettext 'Nothing to join!')" 0 0 && exit

Xdialog --title " " --no-buttons --infobox "$(gettext 'Joining PDFs ...')" 0 0 10000 &
MSGPID=$!

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=$HOME/JOINPROJECT.PDF $JOINPATH/*.pdf

kill $MSGPID
Xdialog --title " " --msgbox "$(eval_gettext 'Project saved as $HOME/JOINPROJECT.PDF\nGive the file a different name')" 0 0
}
export -f JOIN

JOINALL ()
{
[ ! -d "$JOINALLFOLDER" ] && Xdialog --title " " --msgbox "Folder not found!" 0 0 && exit
ls "$JOINALLFOLDER"/*.pdf > /dev/null
[ $? -gt 0 ] && Xdialog --title " " --msgbox "No .pdf files found!" 0 0 && exit

Xdialog --title " " --no-buttons --infobox "$(gettext 'Joining PDFs ...')" 0 0 10000 &
MSGPID=$!

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="$HOME/JOINALL.PDF" "$JOINALLFOLDER"/*.pdf

kill $MSGPID
Xdialog --title " " --msgbox "$(eval_gettext 'Project saved as $HOME/JOINALL.PDF\nGive the file a different name')" 0 0
}
export -f JOINALL

JPEG2PDF ()
{
[ ! -d "$JPEGFOLDER" ] && Xdialog --title " "  --msgbox "$(eval_gettext 'Folder $JPEGFOLDER not found!')" 0 0 && exit

mkdir -p $JOINPATH
rm -f $JOINPATH/*

Xdialog --title " " --no-buttons --infobox "$(gettext 'Converting images ...')" 0 0 10000 &
MSGPID=$!

for F in "$JPEGFOLDER"/*; do
	OUTNAME=$(basename "$F")
	OUTPATH=$JOINPATH/${OUTNAME%.*}.pdf
	TYPE=$(file -L "$F" | cut -d ":" -f 2 | cut -d " " -f 2)
	case $TYPE in
		JPEG|PNG) image-changer "$F" /tmp/pptemp.tif 
					tiff2pdf -F -j -o "$OUTPATH" /tmp/pptemp.tif ;;
		TIFF) tiff2pdf -F -j -o "$OUTPATH" "$F" ;;
	esac
	[ $? -gt 0 ] && rm -f "$OUTPATH"
done

kill $MSGPID
Xdialog --title " " --no-buttons --infobox "$(gettext 'Joining PDFs ...')" 0 0 10000 &
MSGPID=$!
pdfunite $JOINPATH/*.pdf "$HOME/JPEG2PDF.PDF"
kill $MSGPID
Xdialog --title " " --msgbox "$(eval_gettext 'The images are combined in the file $HOME/JPEG2PDF.PDF\nGive the file a different name')" 0 0

rm /tmp/pptemp.tif
}
export -f JPEG2PDF

EXTRACT ()
{
[ -z "$PDFNAME" -o -z "$PAGELIST" -o -z "$DPI" ] && Xdialog --title " " --msgbox "$(gettext 'Missing data!')" 0 0 && exit
[ ! -f "$PDFNAME" ] && Xdialog --title " " --msgbox "$(gettext 'File not found!')" 0 0 && exit

mkdir -p $EXTRACTPATH

PAGELIST=$(echo $PAGELIST | tr -s "," " ")

Xdialog --title " " --no-buttons --infobox "$(eval_gettext 'Extracting pages $PAGELIST')" 0 0 20000 &
MSGPID=$!

BIGLIST=""
for N in $PAGELIST; do
	if [ ${N/-/} = $N ]; then  #a single page number
		BIGLIST=$BIGLIST" "$N
	else	#a page range
		FIRST=${N%-*}
		LAST=${N#*-}
		[ -z "$FIRST" ] && FIRST=1
		[ -z "$LAST" ] && LAST=$(pdfinfo "$PDFNAME" | grep "^Pages" | awk '{print $2}')
		if [ $EXTRACTPDF = true -a $PDFRANGE = true ]; then
			gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -sOutputFile=$EXTRACTPATH/$(printf "%03d" $FIRST)-$(printf "%03d" $LAST).pdf -dFirstPage=$FIRST -dLastPage=$LAST "$PDFNAME"
		else
			BIGLIST=$BIGLIST" "$(seq $FIRST $LAST)
		fi
	fi
done

for PAGE in $BIGLIST; do
	PAGENUM=$(printf "%03d" $PAGE)
	if [ $EXTRACTJPG = "true" ]; then
		gs -sDEVICE=jpeg -dNOPAUSE -dBATCH -dSAFER -r$DPI -sOutputFile=$EXTRACTPATH/$PAGENUM.jpg -dFirstPage=$PAGE -dLastPage=$PAGE "$PDFNAME"
	elif [ $EXTRACTPNG = "true" ]; then
		gs -sDEVICE=png16m -dNOPAUSE -dBATCH -dSAFER -r$DPI -sOutputFile=$EXTRACTPATH/$PAGENUM.png -dFirstPage=$PAGE -dLastPage=$PAGE "$PDFNAME"
	elif [ $EXTRACTTXT = "true" ]; then
		pdftotext -f $PAGE -l $PAGE "$PDFNAME" - >> $EXTRACTPATH/EXTRACTED.TXT
	elif [ $EXTRACTPDF = "true" ]; then
		gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -sOutputFile=$EXTRACTPATH/$PAGENUM.pdf -dFirstPage=$PAGE -dLastPage=$PAGE "$PDFNAME"
	fi
	[ $? -gt 0 ] && Xdialog --title " " --msgbox "Page $PAGE failed to extract!" 0 0
done

kill $MSGPID
Xdialog --title " " --msgbox "$(gettext 'Pages extracted. Click View to see them.')" 0 0
}
export -f EXTRACT

CLEAR ()
{
rm -f $EXTRACTPATH/*
Xdialog --title " " --msgbox "$(gettext 'The folder /tmp/PDFextract has been cleared.')" 0 0
}
export -f CLEAR

GODUPLICATE ()
{
mkdir -p $JOINPATH
rm -f $JOINPATH/*

FILELIST=""
for I in $(seq 1 $NUP); do
	FILELIST=$FILELIST" "\"$PRINTPDFNAME\"
done
eval pdfunite $FILELIST $JOINPATH/DUPLICATE.PDF
}
export -f GODUPLICATE

PRINT ()
{
[ ! -f "$PRINTPDFNAME" ] && Xdialog --title " "  --msgbox "$(eval_gettext 'File $PRINTPDFNAME not found!')" 0 0 && exit

TYPE=$(file "$PRINTPDFNAME" | cut -d ":" -f 2 | cut -d " " -f 2)
[ "$TYPE" != "PDF" ] &&	Xdialog --title " " --msgbox "$(gettext 'Not a valid PDF file!')" 0 0 && exit

if [ $DUP = "true" ]; then
	PAGECOUNT=$(pdfinfo "$PRINTPDFNAME" | grep "^Pages:" | awk '{print $2}')
	[ "$PAGECOUNT" -ne 1 ] && Xdialog --title " "  --msgbox "Only use on 1-page PDFs!" 0 0 && exit
	[ "$NUP" -eq 1 ] && Xdialog --title " "  --msgbox "Only use with N-up > 1!" 0 0 && exit
  GODUPLICATE
  PRINTPDFNAME=$JOINPATH/DUPLICATE.PDF
fi

OPTIONS="-n $PRINTCOPIES -o media=$PAPERSIZE"
[ $CUPSFITTOPAGE = "true" ] && OPTIONS=$OPTIONS" -o fit-to-page"
[ "$NUP" -gt 1 ] && OPTIONS=$OPTIONS" -o number-up="$NUP
[ $TWOSIDED = "true" ] && OPTIONS=$OPTIONS" -o sides=two-sided-long-edge"

if [ -z "$PRINTSELECTION" ]; then	#print the whole document
	PRINTPDFNAME2=$PRINTPDFNAME
else
	FIRST=${PRINTSELECTION%-*}
	LAST=${PRINTSELECTION#*-}
	[ -z "$FIRST" ] && FIRST=1
	[ -z "$LAST" ] && LAST=$(pdfinfo "$PRINTPDFNAME" | grep "^Pages" | awk '{print $2}')
	test "$FIRST" -le "$LAST" 
	[ $? -gt 0 ] && Xdialog --title " " --msgbox "$(gettext 'Not a valid page range!')" 0 0 && exit

	PRINTPDFNAME2=/tmp/$(basename "$PRINTPDFNAME" ".pdf")-${FIRST}-${LAST}.pdf
	rm -f $PRINTPDFNAME2
	Xdialog --title " " --no-buttons --infobox "$(gettext 'Extracting pages ...')" 0 0 10000 &
	MSGPID=$!
	gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -dFirstPage=$FIRST -dLastPage=$LAST  -sOutputFile="$PRINTPDFNAME2" "$PRINTPDFNAME"
	kill $MSGPID
fi

if [ $CUPSPSMODE = "true" ]; then
	Xdialog --title " " --no-buttons --infobox "$(gettext 'Converting to Postscript ...')" 0 0 120000 &
	MSGPID=$!
	PRINTPDFNAME3=/tmp/$(basename "$PRINTPDFNAME2" ".pdf").ps
	rm -f "PRINTPDFNAME3"
	pdftops "$PRINTPDFNAME2" "$PRINTPDFNAME3"
	PRINTPDFNAME2=$PRINTPDFNAME3
	kill $MSGPID
fi

Xdialog --title " " --no-buttons --infobox "$(gettext 'Printing ...')" 0 0 3000 &
lp $OPTIONS -d $PRINTER "$PRINTPDFNAME2"
}
export -f PRINT

CANCELPRINT ()
{
cancel -ax
rm -f /var/spool/cups/tmp/*
Xdialog --title " "  --msgbox "$(gettext 'All print jobs cancelled!')" 0 0
}
export -f CANCELPRINT

MUPDF ()
{
[ -z $(which mupdf) ] && Xdialog --title " "  --msgbox "$(gettext 'MuPDF not installed!')" 0 0 && exit
[ ! -f "$MUPDFNAME" ] && Xdialog --title " "  --msgbox "$(eval_gettext 'File $MUPDFNAME not found!')" 0 0 && exit
mupdf "$MUPDFNAME"
}
export -f MUPDF

MUPDFCONTROLS ()
{
Xdialog --left --wrap --title "MuPDF Keyboard Controls" --msgbox "$(gettext '\nPgUp/PgDn  page through the document\nUp/Down     scroll the page\ng/G              go to the first/last page\nxxxg            jump to page xxx\n\n+/-     zoom in/out\nf         toggle full screen mode\nW       fit page to the width of the window\nH        fit page to the height of the window\nL/R     rotate left/right\n\n?       search for text\nn/N   find the next/previous search result\n\nq       quit')" 0 0
}
export -f MUPDFCONTROLS

PDF2PICCONVERT ()
{
[ ! -f "$PDF2PICNAME" ] && Xdialog --title " "  --msgbox "$(eval_gettext 'File $PDF2PICNAME not found!')" 0 0 && exit

Xdialog --title " " --no-buttons --infobox "$(gettext 'Converting PDF ...')" 0 0 10000 &
MSGPID=$!

BASENAME=${PDF2PICNAME%.pdf}
pdftoppm -$PDF2PICFORMAT -f $PDF2PICPAGE  -l $PDF2PICPAGE -r $PDF2PICDPI "$PDF2PICNAME" "$BASENAME"
RETVAL=$?

kill $MSGPID
if [ $RETVAL -eq 0 ]; then
	Xdialog --title " " --msgbox "Image saved to $(dirname "$PDF2PICNAME")" 0 0
else
	Xdialog --title " " --msgbox "Conversion failed! Is this a PDF file?" 0 0
fi

}
export -f PDF2PICCONVERT

#########################

export FILEMANAGER=rox
export WEBBROWSER=defaultbrowser

export JOINPATH="/tmp/PDFjoin"
export EXTRACTPATH="/tmp/PDFextract"
mkdir -p $JOINPATH $EXTRACTPATH

PRINTERLIST=`lpstat -v | cut -d " " -f 3 | cut -d ":" -f 1`
COMBOLIST=""
for P in $PRINTERLIST
do
 COMBOLIST="$COMBOLIST<item>$P</item>"
done

export DIALOG="
<window title=\"PeasyPDF v5.5\">
<vbox>
<notebook labels=\"$(gettext 'Convert|Join|JPEG|Extract|PDF2Pic|Print|MuPDF')\">
	<vbox>
		<frame>
			<text xalign=\"0\"><label>$(gettext 'This tool converts JPEG, PNG, TIFF graphic files to PDF format.')</label></text>
			<text xalign=\"0\"><label>$(gettext 'To convert a text document, load it into a word processor and')</label></text>
			<text xalign=\"0\"><label>$(gettext 'use Print > Print to File.')</label></text>
		</frame>
		<frame $(gettext 'Select a file')>
			<hbox>
				<entry accept=\"filename\"><variable>CONVERTNAME</variable></entry>
				<button>
					<input file stock=\"gtk-open\"></input>
					<action type=\"fileselect\">CONVERTNAME</action>
				</button>
				<button>
       			<input file stock=\"gtk-clear\"></input>
       			<action>Clear:CONVERTNAME</action>
      			</button>
			</hbox>
		</frame>
		<frame>
			<hbox>
				<text><label>$(gettext 'Choose a PDF page size') </label></text>
				<comboboxtext>
					<variable>PAGESIZE</variable>
					<item>$(gettext 'Custom')</item><item>$(gettext 'Custom+')</item><item>$(gettext 'Custom-')</item>
					<item>Letter</item><item>Legal</item><item>A4</item><item>5x7</item><item>6x8</item>
				</comboboxtext>
			</hbox>
			<hbox>
				<checkbox>
					<label>$(gettext 'Resize graphic to fit page') </label>
					<variable>RESIZE</variable>
				</checkbox>
				<checkbox>
					<label>$(gettext 'Turn')</label>
					<variable>TURN</variable>
				</checkbox>
				<checkbox>
					<label>$(gettext 'Landscape')</label>
					<variable>LANDSCAPE</variable>
				</checkbox>
			</hbox>
			<hbox>
				<button>
					<label>$(gettext 'Convert')</label>
					<action>CONVERT &</action>
				</button>
			</hbox>
		</frame>
		<text><label>\"    \"</label></text>
	</vbox>
	<vbox>
		<frame>
			<text xalign=\"0\"><label>$(gettext 'This tool joins individual PDF files into a single PDF document.')</label></text>
			<text xalign=\"0\"><label>$(gettext 'Click New to start a new project. Select a file and click Add.')</label></text>
			<text xalign=\"0\"><label>$(gettext 'Repeat. When all files are added, click Join.')</label></text>
			<text xalign=\"0\"><label>$(gettext 'Click View to see the project folder in /tmp.')</label></text>
		</frame>
		<frame $(gettext 'Select a PDF file')>
			<hbox>
				<entry accept=\"filename\"><variable>JOINNAME</variable></entry>
				<button><input file stock=\"gtk-open\"></input><action type=\"fileselect\">JOINNAME</action></button>
			</hbox>
		<hbox>
			<button>
				<label>$(gettext 'New')</label>
				<action>NEWPROJECT &</action>
			</button>
			<button>
				<label>$(gettext 'Add')</label>
				<action>ADD</action>
				<action>Clear:JOINNAME</action>
			</button>
			<button>
				<label>$(gettext 'Join')</label>
				<action>JOIN &</action>
			</button>
			<button>
				<label>$(gettext 'View')</label>
				<action>$FILEMANAGER $JOINPATH</action>
			</button>
		</hbox>
		</frame>
		<frame Or join all the PDFs in this folder at once>
			<hbox>
				<entry accept=\"directory\"><variable>JOINALLFOLDER</variable></entry>
				<button>
					<input file stock=\"gtk-open\"></input>
					<action type=\"fileselect\">JOINALLFOLDER</action>
				</button>
				<button>
       		<input file stock=\"gtk-clear\"></input>
       		<action>Clear:JOINALLFOLDER</action>
      	</button>
			  <button>
				 <label>$(gettext 'Join')</label>
				 <action>JOINALL &</action>
			  </button>
			</hbox>
		</frame>
	</vbox>
	<vbox>
		<frame>
			<text xalign=\"0\"><label>$(gettext 'This tool combines a folder of images (JPEG,PNG,TIFF)')</label></text>
			<text xalign=\"0\"><label>$(gettext 'into a single PDF.')</label></text>
		</frame>
		<frame $(gettext 'Folder of image files')>
			<hbox>
				<entry accept=\"directory\"><variable>JPEGFOLDER</variable></entry>
				<button>
					<input file stock=\"gtk-open\"></input>
					<action type=\"fileselect\">JPEGFOLDER</action>
				</button>
				<button>
       		<input file stock=\"gtk-clear\"></input>
       		<action>Clear:JPEGFOLDER</action>
      	</button>
			</hbox>
			<hbox>
				<button>
					<label>$(gettext 'Combine')</label>
					<action>JPEG2PDF &</action>
				</button>
				<button>
					<label>$(gettext 'View')</label>
					<action>$FILEMANAGER $JOINPATH</action>
				</button>
			</hbox>
		</frame>
		<text><label>\"    \"</label></text>
		<text><label>\"    \"</label></text>
		<text><label>\"    \"</label></text>
		<text><label>\"    \"</label></text>
		<text><label>\"    \"</label></text>
	</vbox>
	<vbox>
		<frame>
			<text xalign=\"0\"><label>$(gettext 'This tool extracts pages from a PDF document. Pages can be selected')</label></text>
			<text xalign=\"0\"><label>$(gettext 'with a list, a range like 1-10 or both. To combine PDF pages, use')</label></text>
			<text xalign=\"0\"><label>$(gettext 'the Join tool with the source folder /tmp/PDFextract.')</label></text>
		</frame>
		<frame $(gettext 'Select a PDF file')>
			<hbox>
				<entry accept=\"filename\">
					<variable>PDFNAME</variable>
				</entry>
				<button>
					<input file stock=\"gtk-open\"></input>
					<action type=\"fileselect\">PDFNAME</action>
				</button>
				<button>
       			<input file stock=\"gtk-clear\"></input>
       			<action>Clear:PDFNAME</action>
      		</button>
			</hbox>
			<hbox>
			  <text><label>Page number(s)</label></text>
				<entry>
					<variable>PAGELIST</variable>
				</entry>
				<button>
       		<input file stock=\"gtk-clear\"></input>
       		<action>Clear:PAGELIST</action>
      	</button>
				<text><label>\"          \"</label></text>
			</hbox>	 
		</frame>
		<frame $(gettext 'Extract to')>
		<hbox>
			<radiobutton> 
				<variable>EXTRACTPDF</variable>
				<label>PDF</label>
			</radiobutton>
			<checkbox tooltip-text=\"Combine pages in a PDF range\">
				<variable>PDFRANGE</variable>
				<label>Range</label>
			</checkbox>
			<radiobutton>
				<variable>EXTRACTJPG</variable>
				<label>JPG</label>
			</radiobutton>
			<radiobutton> 
				<variable>EXTRACTPNG</variable>
				<label>PNG</label>
			</radiobutton>
			<radiobutton> 
				<variable>EXTRACTTXT</variable>
				<label>TXT</label>
			</radiobutton>
			<text><label>\"  \"</label></text>
			<text><label>DPI</label></text>
				<comboboxtext width-request=\"100\">
					<variable>DPI</variable>
					<item>150</item><item>300</item><item>600</item>
					<default>300</default>
				</comboboxtext>
			<text><label>\"  \"</label></text>
		</hbox>
		</frame>
		<hbox>
			<button>
				<label>$(gettext 'Clear')</label>
				<action>CLEAR &</action>
			</button>
			<button>
				<label>$(gettext 'Extract')</label>
				<action>EXTRACT &</action>
			</button>
			<button>
				<label>$(gettext 'View')</label>
				<action>$FILEMANAGER $EXTRACTPATH</action>
			</button>
		</hbox>
	</vbox>
	<vbox>
		<frame>
			<text xalign=\"0\"><label>$(gettext 'This tool converts a PDF page into a graphic image.')</label></text>
			<text xalign=\"0\"><label>$(gettext 'It may work better than Extract.')</label></text>
		</frame>
		<frame $(gettext 'Select a PDF file')>
			<hbox>
				<entry accept=\"filename\"><variable>PDF2PICNAME</variable></entry>
				<button>
					<input file stock=\"gtk-open\"></input>
					<action type=\"fileselect\">PDF2PICNAME</action>
				</button>
				<button>
       			<input file stock=\"gtk-clear\"></input>
       			<action>Clear:PDF2PICNAME</action>
      		</button>
			</hbox>
		</frame>
		<frame>
			<hbox>
				<vbox>
					<text><label>Page number</label></text>
					<hbox>
					<entry>
						<variable>PDF2PICPAGE</variable>
						<default>1</default>
					</entry>
					<button>
       			<input file stock=\"gtk-clear\"></input>
       			<action>Clear:PDF2PICPAGE</action>
      		</button>
					</hbox>
				</vbox>
				<text><label>\"    \"</label></text>
				<vbox>
					<text><label>Format</label></text>
					<comboboxtext width-request=\"100\">
						<variable>PDF2PICFORMAT</variable>
						<item>png</item><item>jpeg</item><item>tiff</item><item>gray</item>
					</comboboxtext>
				</vbox>
				<text><label>\"    \"</label></text>
				<vbox>
					<text><label>DPI</label></text>
					<comboboxtext width-request=\"100\">
						<variable>PDF2PICDPI</variable>
						<item>150</item><item>300</item><item>600</item>
						<default>300</default>
					</comboboxtext>
				</vbox>
				<text><label>\"    \"</label></text>
			</hbox>
		</frame>
		<hbox>
			<button>
				<label>$(gettext 'Convert')</label>
				<action>PDF2PICCONVERT &</action>
			</button>
		</hbox>
		<text><label>\"    \"</label></text>
		<text><label>\"    \"</label></text>
	</vbox>
	<vbox>
		<frame $(gettext 'Select a PDF file')>
			<hbox>
				<entry accept=\"filename\">
					<variable>PRINTPDFNAME</variable>
				</entry>
				<button>
					<input file stock=\"gtk-open\"></input>
					<action type=\"fileselect\">PRINTPDFNAME</action>
				</button>
				<button>
       			<input file stock=\"gtk-clear\"></input>
       			<action>Clear:PRINTPDFNAME</action>
      		</button>
			</hbox>
		</frame>
		<frame $(gettext 'Select a printer')>
			<comboboxtext>
				<variable>PRINTER</variable>
				 $COMBOLIST 
			</comboboxtext>
		</frame>
		<frame $(gettext 'Pages (optional - select one page or a page range)')>
			<hbox>
				<entry>
					<variable>PRINTSELECTION</variable>
				</entry>
				<button>
       					<input file stock=\"gtk-clear\"></input>
       					<action>Clear:PRINTSELECTION</action>
      				</button>
				<checkbox>
					<label>$(gettext 'Fit to page')</label>
					<variable>CUPSFITTOPAGE</variable>
				</checkbox>
				<checkbox tooltip-text=\"Duplicate a PDF image and print with N-up\">
					<label>$(gettext 'Dup')</label>
					 <variable>DUP</variable>
				</checkbox>
				<checkbox tooltip-text=\"For duplex printers\">
					<label>$(gettext '2-sided')</label>
					 <variable>TWOSIDED</variable>
				</checkbox>
				<checkbox tooltip-text=\"Convert a print job to Postscript\">
					<label>$(gettext 'PS')</label>
					<variable>CUPSPSMODE</variable>
				</checkbox>
			</hbox>
			<hbox>
			<vbox>
			  <text><label>Paper size</label></text>
				<comboboxtext width-request=\"100\">
					 <variable>PAPERSIZE</variable>
					 <item>Letter</item><item>Legal</item><item>A4</item>
				</comboboxtext>
			</vbox>
			<text><label>\"    \"</label></text>
			<vbox>
			  <text><label>Copies</label></text>
				<comboboxtext width-request=\"100\">
					 <variable>PRINTCOPIES</variable>
					 <item>1</item><item>2</item><item>3</item><item>4</item><item>5</item>
				</comboboxtext>
			</vbox>
			<text><label>\"    \"</label></text>
			<vbox>
			  <text><label>N-up pages per sheet</label></text>
				<comboboxtext width-request=\"100\">
					 <variable>NUP</variable>
					 <item>1</item><item>2</item><item>4</item><item>6</item><item>9</item>
				</comboboxtext>
			</vbox>
			<text><label>\"    \"</label></text>
			</hbox>
		</frame>
		<hbox>

				 <text><label>\"     \"</label></text>
				<button>
					<label>$(gettext 'CUPS')</label>
      		<action>$WEBBROWSER http://localhost:631/printers/\$PRINTER &</action>
    		</button>
				<button>
					<label>$(gettext 'Cancel')</label>
					<action>CANCELPRINT &</action>
				</button>
				<button>
					<label>$(gettext 'Print')</label>
					<action>PRINT &</action>
				</button>
		 </hbox>
	</vbox>
	<vbox>
		<frame>
			<text xalign=\"0\"><label>$(gettext 'MuPDF is a fast, accurate PDF viewer that may work')</label></text>
			<text xalign=\"0\"><label>$(gettext 'better than your regular viewer. Install it with apt.')</label></text>
			<text xalign=\"0\"><label>$(gettext 'MuPDF uses keyboard controls. See below.')</label></text>
		</frame>
		<frame $(gettext 'Select a PDF file')>
			<hbox>
				<entry accept=\"filename\"><variable>MUPDFNAME</variable></entry>
				<button>
					<input file stock=\"gtk-open\"></input>
					<action type=\"fileselect\">MUPDFNAME</action>
				</button>
				<button>
       			<input file stock=\"gtk-clear\"></input>
       			<action>Clear:MUPDFNAME</action>
      		</button>
			</hbox>
		</frame>
		<hbox>
			<button>
				<label>$(gettext 'Controls')</label>
				<action>MUPDFCONTROLS &</action>
			</button>
			<button>
				<label>$(gettext 'View')</label>
				<action>MUPDF &</action>
			</button>
		</hbox>
		<text><label>\"    \"</label></text>
		<text><label>\"    \"</label></text>
		<text><label>\"    \"</label></text>
		<text><label>\"    \"</label></text>
	</vbox>
</notebook>
<hbox>
	<button>
		<label>$(gettext 'Help')</label>
		<action>$WEBBROWSER https://oldforum.puppylinux.com/viewtopic.php?p=551954&i=2 &</action>
	</button>
	<button><label>$(gettext 'Quit')</label></button>
</hbox>
</vbox>
</window>"

gtkdialog -c -p DIALOG
