ubuntuusers.de

Fax - brpcfax Anpassung java8 Problem

Status: Ungelöst | Ubuntu-Version: Ubuntu 24.04 (Noble Numbat)
Antworten |

Spacetaxi

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3265

Habe folgendes Problem.

https://forum.ubuntuusers.de/topic/faxen-brother-mfc-j265w-funktioniert-nicht/

Unter dieser Anleitung habe ich jetzt jahrelang mein Fax installiert. Ich habe immer noch das Selbe Gerät.

Ich habe heute die Brother Fax Driver heruntergeladen https://support.brother.com/g/b/downloadhowto.aspx?c=us_ot&lang=en&prod=mfcj265w_all&os=128&dlid=dlf105191_000&flang=4&type3=10530

Dort bekomme ich nun nachdem ich openjdk-8-jre heruntergeladen habe und die Zeile 37 in /usr/bin/brpcfax ändern will mit folgendem Inhalt:

extarg="`/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar /usr/local/Brother/fax/brmfcfax.jar 2>/dev/null`"

Unter nano /usr/bin/brpcfax steht jetzt neuerdings folgender Inhalt:

#! /bin/bash

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA  02111-1307  USA
#

## Brother CUPS Fax filter
# Copyright (C) 2005-  Brother Industries, Ltd.


DEBUG=0

BASEDIR="/opt/brother/fax/brmfcfax"
CONFIGFILE="/${BASEDIR}/config/brmfcfax.config"
source $CONFIGFILE



hdir=${HOME//'/'/'\/'}



number=""

chkcmd="$BASEDIR/lpd/$(uname -m)/brps2brfax"
if ! [ -e "$chkcmd" ];then
   chkcmd="./brps2brfax"
fi

if ! [ -e $chkcmd ];then
   exit 0
fi

new_args=''

while [ "$1" != '' ]
do
  if [ "$1" = '-o' ];then
    if [ "$(echo "$2" | grep '^fax-broadcast=')" != "" ];then 
      tmp=$(echo "$2"| \
          sed s/"fax-broadcast="//g |\
          sed s/"^~"/"$hdir"/g );

      if [ "$(echo "$tmp" | grep '^/')" = '' ];then
        faxbcfile=$(pwd)/$tmp
      else
        faxbcfile=$tmp
      fi
    elif [ "$(echo "$2" | grep '^fax-number=')" != "" ];then 
      number="${2//fax-number=/}"
    elif [ "$(echo "$2" | grep '^--brpcfax-debug=')" != "" ];then
      DEBUG="${2//"--brpcfax-debug="/}"
    else
      new_args="$new_args $1 $2"
    fi
    shift
  else
    datafile="$1"
  fi
  shift
done

numlist=$($chkcmd --number-check --fax_num="$number" --fax_list="$faxbcfile")
if [ "$?" != '0' ];then
    echo "INVALID FAX NUMBER [ $numlist]"
    if [ "$TXLOG" = YES ] || [ "$TXLOG" = Yes ] || [ "$TXLOG" = yes ];then
	touch "$TXLOGDIR"/"$TXLOGFILE"
	echo "ERROR: BRFAX INVALID FAX NUMBER [ $numlist]" \
	    >> "$TXLOGDIR"/"$TXLOGFILE"
    fi
    exit -1
fi




new_args=" -o fax-number=$numlist $new_args"

lprcmd="lpr -P BRFAX   $new_args"

case "$DEBUG" in
     "0" )
	$lprcmd "$datafile"
	;;
     "1" )
	echo "$lprcmd" "$datafile"
	$lprcmd "$datafile"
	;;
      "2" )
	echo "$lprcmd" "$datafile"
	;;
      "*" )
	$lprcmd "$datafile"
	;;
esac

exit 0

Ich habe meinen anderen PC vergleichen, dort funktioniert das Fax, hier steht folgender Inhalt:

Hier muss berücksichtigt werden das Zeile 37 bereits abgeändert wurde.

#!  /bin/sh

# Brother FAX share driver
# Copyright (C) 2005 Brother. Industries, Ltd.


# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA  02111-1307  USA
#



DEBUG=0



hdir=`echo $HOME | sed s/'\\/'/'\\\\\\/'/g`
cdir=`echo $PWD  | sed s/'\\/'/'\\\\\\/'/g`

args="$*"

flgn="`echo $args | grep 'fax-number='`"
flgb="`echo $args | grep 'fax-broadcast='`"

if [ -e '/usr/local/Brother/fax/brmfcfax.jar' ] && [ -e "`which java`" ] && [ "$flgn" = "" ] && [ "$flgb" = "" ]; then
	extarg="`/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar /usr/local/Brother/fax/brmfcfax.jar 2>/dev/null`"
	number=""

	if [ "`echo "$extarg" | grep 'fax-broadcast='`" != "" ];then 
		faxbcfile="`echo "$extarg"|sed s/"-o fax-broadcast="//g|sed s/'~'/"$hdir"/g`"		
	fi
	if [ "`echo "$extarg" | grep 'fax-number='`" != "" ];then 
		number="`echo "$extarg"|sed s/"-o fax-number="//g`"','
	fi
else
	extarg=""
	number=""

	while [ "$1" != '' ]
	do
	  if [ "`echo "$1" | grep 'fax-broadcast='`" != "" ];then 
	      faxbcfile="`echo $1|sed s/fax-broadcast=//g|sed s/'~'/"$hdir"/g`"
	  fi
	  if [ "`echo "$1" | grep 'fax-number='`" != "" ];then 
	      number="`echo $1|sed s/fax-number=//g`"','
	  fi
	  shift
	done
fi


if [ -e "$faxbcfile" ];then
	groupmember="$number""`cat $faxbcfile | sed -e s/#.*$// \
		| tr -d ' ' | tr -d '\t' | egrep [0-9] | tr '\n' ',' \
		| sed s/,$//`"
else
	groupmember=$number
fi

if [ "$groupmember" != "" ];then
	groupmember_opt="fax-numbers="$groupmember
else
	groupmember_opt="fax-numbers="
fi

if [ "`echo $args | grep ' --brpcfax-debug-flag=1 '`" ];then
	DEBUG=1
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=1'/''/g`"
elif [ "`echo $args | grep ' --brpcfax-debug-flag=2'`" ];then
	DEBUG=2
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=2'/''/g`"
elif [ "`echo $args | grep ' --brpcfax-debug-flag=3'`" ];then
	DEBUG=3
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=3'/''/g`"
elif [ "`echo $args | grep '^--brpcfax-debug-flag=1 '`" ];then
	DEBUG=1
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=1'/''/g`"
elif [ "`echo $args | grep '^--brpcfax-debug-flag=2'`" ];then
	DEBUG=2
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=2'/''/g`"
elif [ "`echo $args | grep '^--brpcfax-debug-flag=3'`" ];then
	DEBUG=3
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=3'/''/g`"
else
	lprargs=$args
fi


if [ $DEBUG = 1 ];then
	rm -f  /tmp/br_faxshare_log
fi

lprcmd="lpr -P BRFAX  -o $groupmember_opt  $lprargs"



if [ "`echo $lprcmd | grep 'fax-broadcast=\/'`" ];then
	lprcmd2=$lprcmd
elif [ "`echo $lprcmd | grep 'fax-broadcast=~'`" ];then
	lprcmd2="`echo $lprcmd | sed s/"fax-broadcast=~"/"fax-broadcast=""$hdir"/g`"
else
	lprcmd2="`echo $lprcmd | sed s/fax-broadcast=/fax-broadcast="$cdir"'\/'/g`"
fi



case "$DEBUG" in
	"0" )
		$lprcmd2
		;;
	"1" )
		echo $lprcmd >> /tmp/br_faxshare_log
		$lprcmd2
		;;
	"2" )
		echo $lprcmd2
        	if [ "$INPUT_TEMP_BCLIST" != "" ];then
			rm -f $INPUT_TEMP_BCLIST
		fi
		;;
	"3" )
		lprcmd3="`echo $lprcmd2 | sed s/' -o '/' -o brpcfax-debugoption=4 -o '/`"
		echo $lprcmd3
		$lprcmd3
		;;
	"*" )
		$lprcmd2
		;;
	esac



exit 0

Anstatt dem graphischen Feld bekomme ich nun

pat@pat-desktop:~$ brpcfax
INVALID FAX NUMBER [ ]
pat@pat-desktop:~$ 

dies angezeigt.

Wie kann ich die Wähltastengraphik erneut erhalten bzw. wie genau kann ich mein Fax installieren?

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3265

Das hier:

brpcfax -o fax-number=053149059113 /home/pat/Documents/Testfax.pdf

funktioniert zwar, aber ich hab kein Bock das jedesmal eingeben zu müssen.....

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3265

Hier "liegt der Hase im Pfeffer":

brmfcfaxdrv:i386 1.0.0-2

ist aauf dem andern Rechner installiert. (andere, alte "/usr/bin/brpcfax" Datei

Ich habe nun herunter geladen

brmfcfaxdrv:i386 2.0.1-1

Die dortige "/usr/bin/brpcfax" Datei ist komplett anders.

Weiß jemand wie ich die Gui dort installieren kann?

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3265

Nun, kann da jemand helfen?

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3265

Hammer:

Zeile 33 abändern:

extarg="`/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar /usr/local/Brother/fax/brmfcfax.jar 2>/dev/null`"

Geht!

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3265

Nein doch nicht, es wäre so schön gewesen.

Die Gui geht auf wenn ich brpcfax eingebe.

Gebe ich aber ein:

pat@pat-desktop:~$ brpcfax /home/Benutzer/Documents/Testfax.pdf
INVALID FAX NUMBER [ ]
pat@pat-desktop:~$ 

Kommt nur die gui!!

Auf dem anderen Rechner faxt er dann nachdem ich die Nummer eingegeben habe.

Also hier kann nicht viel fehlen...

Es wird hier nach einer Nummer verlangt....

Die Nummer soll aber in die Gui kommen.

Kann mir jemand helfen?

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3265

Hier nochmal die alte Version in der Zeile 37 abgeändert wurde, gelb markiert

nano /usr/bin/brpcfax

#!  /bin/sh

# Brother FAX share driver
# Copyright (C) 2005 Brother. Industries, Ltd.


# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA  02111-1307  USA
#



DEBUG=0



hdir=`echo $HOME | sed s/'\\/'/'\\\\\\/'/g`
cdir=`echo $PWD  | sed s/'\\/'/'\\\\\\/'/g`

args="$*"

flgn="`echo $args | grep 'fax-number='`"
flgb="`echo $args | grep 'fax-broadcast='`"

if [ -e '/usr/local/Brother/fax/brmfcfax.jar' ] && [ -e "`which java`" ] && [ "$flgn" = "" ] && [ "$flgb" = "" ]; then
	extarg="`/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar /usr/local/Brother/fax/brmfcfax.jar 2>/dev/null`"
	number=""

	if [ "`echo "$extarg" | grep 'fax-broadcast='`" != "" ];then 
		faxbcfile="`echo "$extarg"|sed s/"-o fax-broadcast="//g|sed s/'~'/"$hdir"/g`"		
	fi
	if [ "`echo "$extarg" | grep 'fax-number='`" != "" ];then 
		number="`echo "$extarg"|sed s/"-o fax-number="//g`"','
	fi
else
	extarg=""
	number=""

	while [ "$1" != '' ]
	do
	  if [ "`echo "$1" | grep 'fax-broadcast='`" != "" ];then 
	      faxbcfile="`echo $1|sed s/fax-broadcast=//g|sed s/'~'/"$hdir"/g`"
	  fi
	  if [ "`echo "$1" | grep 'fax-number='`" != "" ];then 
	      number="`echo $1|sed s/fax-number=//g`"','
	  fi
	  shift
	done
fi


if [ -e "$faxbcfile" ];then
	groupmember="$number""`cat $faxbcfile | sed -e s/#.*$// \
		| tr -d ' ' | tr -d '\t' | egrep [0-9] | tr '\n' ',' \
		| sed s/,$//`"
else
	groupmember=$number
fi

if [ "$groupmember" != "" ];then
	groupmember_opt="fax-numbers="$groupmember
else
	groupmember_opt="fax-numbers="
fi

if [ "`echo $args | grep ' --brpcfax-debug-flag=1 '`" ];then
	DEBUG=1
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=1'/''/g`"
elif [ "`echo $args | grep ' --brpcfax-debug-flag=2'`" ];then
	DEBUG=2
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=2'/''/g`"
elif [ "`echo $args | grep ' --brpcfax-debug-flag=3'`" ];then
	DEBUG=3
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=3'/''/g`"
elif [ "`echo $args | grep '^--brpcfax-debug-flag=1 '`" ];then
	DEBUG=1
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=1'/''/g`"
elif [ "`echo $args | grep '^--brpcfax-debug-flag=2'`" ];then
	DEBUG=2
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=2'/''/g`"
elif [ "`echo $args | grep '^--brpcfax-debug-flag=3'`" ];then
	DEBUG=3
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=3'/''/g`"
else
	lprargs=$args
fi


if [ $DEBUG = 1 ];then
	rm -f  /tmp/br_faxshare_log
fi

lprcmd="lpr -P BRFAX  -o $groupmember_opt  $lprargs"



if [ "`echo $lprcmd | grep 'fax-broadcast=\/'`" ];then
	lprcmd2=$lprcmd
elif [ "`echo $lprcmd | grep 'fax-broadcast=~'`" ];then
	lprcmd2="`echo $lprcmd | sed s/"fax-broadcast=~"/"fax-broadcast=""$hdir"/g`"
else
	lprcmd2="`echo $lprcmd | sed s/fax-broadcast=/fax-broadcast="$cdir"'\/'/g`"
fi



case "$DEBUG" in
	"0" )
		$lprcmd2
		;;
	"1" )
		echo $lprcmd >> /tmp/br_faxshare_log
		$lprcmd2
		;;
	"2" )
		echo $lprcmd2
        	if [ "$INPUT_TEMP_BCLIST" != "" ];then
			rm -f $INPUT_TEMP_BCLIST
		fi
		;;
	"3" )
		lprcmd3="`echo $lprcmd2 | sed s/' -o '/' -o brpcfax-debugoption=4 -o '/`"
		echo $lprcmd3
		$lprcmd3
		;;
	"*" )
		$lprcmd2
		;;
	esac



exit 0

Hier die neue, abgeänderte Version mit Zeile 33 von mir abgeändert (gelb markiert)

nano /usr/bin/brpcfax

#! /bin/bash

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA  02111-1307  USA
#

## Brother CUPS Fax filter
# Copyright (C) 2005-  Brother Industries, Ltd.


DEBUG=0

BASEDIR="/opt/brother/fax/brmfcfax"
CONFIGFILE="/${BASEDIR}/config/brmfcfax.config"
source $CONFIGFILE



hdir=${HOME//'/'/'\/'}


extarg="`/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar /usr/local/Brother/fax/brmfcfax.jar 2>/dev/null`"
number=""

chkcmd="$BASEDIR/lpd/$(uname -m)/brps2brfax"
if ! [ -e "$chkcmd" ];then
   chkcmd="./brps2brfax"
fi

if ! [ -e $chkcmd ];then
   exit 0
fi

new_args=''

while [ "$1" != '' ]
do
  if [ "$1" = '-o' ];then
    if [ "$(echo "$2" | grep '^fax-broadcast=')" != "" ];then 
      tmp=$(echo "$2"| \
          sed s/"fax-broadcast="//g |\
          sed s/"^~"/"$hdir"/g );

      if [ "$(echo "$tmp" | grep '^/')" = '' ];then
        faxbcfile=$(pwd)/$tmp
      else
        faxbcfile=$tmp
      fi
    elif [ "$(echo "$2" | grep '^fax-number=')" != "" ];then 
      number="${2//fax-number=/}"
    elif [ "$(echo "$2" | grep '^--brpcfax-debug=')" != "" ];then
      DEBUG="${2//"--brpcfax-debug="/}"
    else
      new_args="$new_args $1 $2"
    fi
    shift
  else
    datafile="$1"
  fi
  shift
done

numlist=$($chkcmd --number-check --fax_num="$number" --fax_list="$faxbcfile")
if [ "$?" != '0' ];then
    echo "INVALID FAX NUMBER [ $numlist]"
    if [ "$TXLOG" = YES ] || [ "$TXLOG" = Yes ] || [ "$TXLOG" = yes ];then
	touch "$TXLOGDIR"/"$TXLOGFILE"
	echo "ERROR: BRFAX INVALID FAX NUMBER [ $numlist]" \
	    >> "$TXLOGDIR"/"$TXLOGFILE"
    fi
    exit -1
fi




new_args=" -o fax-number=$numlist $new_args"

lprcmd="lpr -P BRFAX   $new_args"

case "$DEBUG" in
     "0" )
	$lprcmd "$datafile"
	;;
     "1" )
	echo "$lprcmd" "$datafile"
	$lprcmd "$datafile"
	;;
      "2" )
	echo "$lprcmd" "$datafile"
	;;
      "*" )
	$lprcmd "$datafile"
	;;
esac

exit 0

wenn ich brpcfax eingebe, öffnet sich bei beiden wie es sein soll die GUI (Graphische, nummerische Oberfläche zum Eingeben der Faxnummer)

Allerdings beim Alten (Zeile 37 ) wenn ich dort eingebe:

brpcfax /home/Benutzer/Documents/Testfax.pdf

dann öffnet die Gui. Dort gebe ich die gewünschte Faxnummer ein und das Fax wird gesendet.

Bei der neuen Version, meine abgeänderte Zeile 33.Auch dort öffnet sich bei Eingabe von brpcfax /home/Benutzer/Documents/Testfax.pdf die Gui.

Aber unter der Gui im Terminal steht eine Fehlermeldung:

pat@pat-desktop:~$ brpcfax /home/pat(Benutzer)/Documents/Testfax.pdf
INVALID FAX NUMBER [ ]
pat@pat-desktop:~$ 

Gebe ich die Nummer in die Gui ein passiert logischerweise nichts

Was muss ich ändern damit das funktioniert?

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3265

Lösung:

Gelb markiert was bleibt, der Rest ist die alte Version.

#! /bin/bash

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA  02111-1307  USA
#

## Brother CUPS Fax filter
# Copyright (C) 2005-  Brother Industries, Ltd.


DEBUG=0



hdir=`echo $HOME | sed s/'\\/'/'\\\\\\/'/g`
cdir=`echo $PWD  | sed s/'\\/'/'\\\\\\/'/g`

args="$*"

flgn="`echo $args | grep 'fax-number='`"
flgb="`echo $args | grep 'fax-broadcast='`"

if [ -e '/usr/local/Brother/fax/brmfcfax.jar' ] && [ -e "`which java`" ] && [ "$flgn" = "" ] && [ "$flgb" = "" ]; then
	extarg="`/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar /usr/local/Brother/fax/brmfcfax.jar 2>/dev/null`"
	number=""

	if [ "`echo "$extarg" | grep 'fax-broadcast='`" != "" ];then 
		faxbcfile="`echo "$extarg"|sed s/"-o fax-broadcast="//g|sed s/'~'/"$hdir"/g`"		
	fi
	if [ "`echo "$extarg" | grep 'fax-number='`" != "" ];then 
		number="`echo "$extarg"|sed s/"-o fax-number="//g`"','
	fi
else
	extarg=""
	number=""

	while [ "$1" != '' ]
	do
	  if [ "`echo "$1" | grep 'fax-broadcast='`" != "" ];then 
	      faxbcfile="`echo $1|sed s/fax-broadcast=//g|sed s/'~'/"$hdir"/g`"
	  fi
	  if [ "`echo "$1" | grep 'fax-number='`" != "" ];then 
	      number="`echo $1|sed s/fax-number=//g`"','
	  fi
	  shift
	done
fi


if [ -e "$faxbcfile" ];then
	groupmember="$number""`cat $faxbcfile | sed -e s/#.*$// \
		| tr -d ' ' | tr -d '\t' | egrep [0-9] | tr '\n' ',' \
		| sed s/,$//`"
else
	groupmember=$number
fi

if [ "$groupmember" != "" ];then
	groupmember_opt="fax-numbers="$groupmember
else
	groupmember_opt="fax-numbers="
fi

if [ "`echo $args | grep ' --brpcfax-debug-flag=1 '`" ];then
	DEBUG=1
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=1'/''/g`"
elif [ "`echo $args | grep ' --brpcfax-debug-flag=2'`" ];then
	DEBUG=2
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=2'/''/g`"
elif [ "`echo $args | grep ' --brpcfax-debug-flag=3'`" ];then
	DEBUG=3
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=3'/''/g`"
elif [ "`echo $args | grep '^--brpcfax-debug-flag=1 '`" ];then
	DEBUG=1
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=1'/''/g`"
elif [ "`echo $args | grep '^--brpcfax-debug-flag=2'`" ];then
	DEBUG=2
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=2'/''/g`"
elif [ "`echo $args | grep '^--brpcfax-debug-flag=3'`" ];then
	DEBUG=3
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=3'/''/g`"
else
	lprargs=$args
fi


if [ $DEBUG = 1 ];then
	rm -f  /tmp/br_faxshare_log
fi

lprcmd="lpr -P BRFAX  -o $groupmember_opt  $lprargs"



if [ "`echo $lprcmd | grep 'fax-broadcast=\/'`" ];then
	lprcmd2=$lprcmd
elif [ "`echo $lprcmd | grep 'fax-broadcast=~'`" ];then
	lprcmd2="`echo $lprcmd | sed s/"fax-broadcast=~"/"fax-broadcast=""$hdir"/g`"
else
	lprcmd2="`echo $lprcmd | sed s/fax-broadcast=/fax-broadcast="$cdir"'\/'/g`"
fi



case "$DEBUG" in
	"0" )
		$lprcmd2
		;;
	"1" )
		echo $lprcmd >> /tmp/br_faxshare_log
		$lprcmd2
		;;
	"2" )
		echo $lprcmd2
        	if [ "$INPUT_TEMP_BCLIST" != "" ];then
			rm -f $INPUT_TEMP_BCLIST
		fi
		;;
	"3" )
		lprcmd3="`echo $lprcmd2 | sed s/' -o '/' -o brpcfax-debugoption=4 -o '/`"
		echo $lprcmd3
		$lprcmd3
		;;
	"*" )
		$lprcmd2
		;;
	esac



exit 0

Klappt wunderbar wie vorher.

Oben die Intro-Einstellungen von Brother so lassen, unten das kompleete Programm der alten Version einfügen.

Ob das jetzt gegen die Bother Richtlinien verstößt weiß ich nicht...

Wenn jemand eine andere Lösung hat, bitte...

shiro

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1214

Wenn jemand eine andere Lösung hat, bitte...

Warum nutzt du nicht "yad"?

yad --title="Versenden eines Faxes" \
--text="Gib die Daten für den Fax-Empfänger ein:" \
--form \
--field="Fax-Nummer" \
--field="zu versendende Datei:FL" \
"053149059113" "$HOME/Downloads/pdf/Testfax.pdf" | 
while IFS="|" read nr file; do 
 brpcfax -o fax-number="$nr" "$file" 
done

Das kannst du ja noch nach Belieben ausschmücken.

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3265

Spacetaxi schrieb:

Lösung:

Gelb markiert was bleibt, der Rest ist die alte Version.

#! /bin/bash

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA  02111-1307  USA
#

## Brother CUPS Fax filter
# Copyright (C) 2005-  Brother Industries, Ltd.


DEBUG=0



hdir=`echo $HOME | sed s/'\\/'/'\\\\\\/'/g`
cdir=`echo $PWD  | sed s/'\\/'/'\\\\\\/'/g`

args="$*"

flgn="`echo $args | grep 'fax-number='`"
flgb="`echo $args | grep 'fax-broadcast='`"

if [ -e '/usr/local/Brother/fax/brmfcfax.jar' ] && [ -e "`which java`" ] && [ "$flgn" = "" ] && [ "$flgb" = "" ]; then
	extarg="`/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar /usr/local/Brother/fax/brmfcfax.jar 2>/dev/null`"
	number=""

	if [ "`echo "$extarg" | grep 'fax-broadcast='`" != "" ];then 
		faxbcfile="`echo "$extarg"|sed s/"-o fax-broadcast="//g|sed s/'~'/"$hdir"/g`"		
	fi
	if [ "`echo "$extarg" | grep 'fax-number='`" != "" ];then 
		number="`echo "$extarg"|sed s/"-o fax-number="//g`"','
	fi
else
	extarg=""
	number=""

	while [ "$1" != '' ]
	do
	  if [ "`echo "$1" | grep 'fax-broadcast='`" != "" ];then 
	      faxbcfile="`echo $1|sed s/fax-broadcast=//g|sed s/'~'/"$hdir"/g`"
	  fi
	  if [ "`echo "$1" | grep 'fax-number='`" != "" ];then 
	      number="`echo $1|sed s/fax-number=//g`"','
	  fi
	  shift
	done
fi


if [ -e "$faxbcfile" ];then
	groupmember="$number""`cat $faxbcfile | sed -e s/#.*$// \
		| tr -d ' ' | tr -d '\t' | egrep [0-9] | tr '\n' ',' \
		| sed s/,$//`"
else
	groupmember=$number
fi

if [ "$groupmember" != "" ];then
	groupmember_opt="fax-numbers="$groupmember
else
	groupmember_opt="fax-numbers="
fi

if [ "`echo $args | grep ' --brpcfax-debug-flag=1 '`" ];then
	DEBUG=1
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=1'/''/g`"
elif [ "`echo $args | grep ' --brpcfax-debug-flag=2'`" ];then
	DEBUG=2
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=2'/''/g`"
elif [ "`echo $args | grep ' --brpcfax-debug-flag=3'`" ];then
	DEBUG=3
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=3'/''/g`"
elif [ "`echo $args | grep '^--brpcfax-debug-flag=1 '`" ];then
	DEBUG=1
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=1'/''/g`"
elif [ "`echo $args | grep '^--brpcfax-debug-flag=2'`" ];then
	DEBUG=2
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=2'/''/g`"
elif [ "`echo $args | grep '^--brpcfax-debug-flag=3'`" ];then
	DEBUG=3
	lprargs="`echo $args | sed s/'--brpcfax-debug-flag=3'/''/g`"
else
	lprargs=$args
fi


if [ $DEBUG = 1 ];then
	rm -f  /tmp/br_faxshare_log
fi

lprcmd="lpr -P BRFAX  -o $groupmember_opt  $lprargs"



if [ "`echo $lprcmd | grep 'fax-broadcast=\/'`" ];then
	lprcmd2=$lprcmd
elif [ "`echo $lprcmd | grep 'fax-broadcast=~'`" ];then
	lprcmd2="`echo $lprcmd | sed s/"fax-broadcast=~"/"fax-broadcast=""$hdir"/g`"
else
	lprcmd2="`echo $lprcmd | sed s/fax-broadcast=/fax-broadcast="$cdir"'\/'/g`"
fi



case "$DEBUG" in
	"0" )
		$lprcmd2
		;;
	"1" )
		echo $lprcmd >> /tmp/br_faxshare_log
		$lprcmd2
		;;
	"2" )
		echo $lprcmd2
        	if [ "$INPUT_TEMP_BCLIST" != "" ];then
			rm -f $INPUT_TEMP_BCLIST
		fi
		;;
	"3" )
		lprcmd3="`echo $lprcmd2 | sed s/' -o '/' -o brpcfax-debugoption=4 -o '/`"
		echo $lprcmd3
		$lprcmd3
		;;
	"*" )
		$lprcmd2
		;;
	esac



exit 0

Klappt wunderbar wie vorher.

Oben die Intro-Einstellungen von Brother so lassen, unten das kompleete Programm der alten Version einfügen.

Ob das jetzt gegen die Bother Richtlinien verstößt weiß ich nicht...

This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the Free # Software Foundation; either version 2 of the License, or (at your option)

Nein, schonmal alles ok...

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3265

shiro schrieb:

Wenn jemand eine andere Lösung hat, bitte...

Warum nutzt du nicht "yad"?

yad --title="Versenden eines Faxes" \
--text="Gib die Daten für den Fax-Empfänger ein:" \
--form \
--field="Fax-Nummer" \
--field="zu versendende Datei:FL" \
"053149059113" "$HOME/Downloads/pdf/Testfax.pdf" | 
while IFS="|" read nr file; do 
 brpcfax -o fax-number="$nr" "$file" 
done

Das kannst du ja noch nach Belieben ausschmücken.

Das ist interessant, sehe ich mir an. Danke.

Kann ich die Gui aber dann auch mit einbauen?

shiro

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1214

Kann ich die Gui aber dann auch mit einbauen?

Die Frage verstehe ich nicht.

"yad" ist doch die GUI. Wenn du willst, kannst du natürlich noch weitere Funktionalität in die GUI (yad) einbauen.

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3265

Also die Datei wird so bearbeitet wie dus hier gepostet hast?

Erläutere das mal genauer wenns geht.

shiro

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1214

Erläutere das mal genauer wenns geht.

Wenn man früher ein Script über eine GUI bedienen wollte, musste man "tcl/tk" verwenden. Seit "zenity", "yad" usw. kann man das auch über die "normalen" Shells (sh, ksh,zsh, bash usw).

Für "yad" gibt es eine sehr einfache Beschreibung unter https://yad-guide.ingk.se/ die zu lesen es sich lohnt. Das über die Paketverwaltung bei Ubuntu abrufbare "yad" Paket bietet zwar nicht alle Funktionen (z.B. html) aber ist für den Anfang durchaus brauchbar. Man installiert es z.B. mit dem Befehl:

sudo apt-get install yad

In deinem Beispiel geht es darum, den Command-Line Befehl "brpcfax" mit den Parametern über eine grafische Bedienoberfläche zu versorgen, damit z.B. eine pdf Datei als Fax versendet werden kann. Hierzu kannst du z.B. ein Formular mit zwei Eingabefeldern aufbauen. Das es sich um ein Formular handeln soll, besagt der Parameter "--form". Die einzelnen Eingabefelder beschreibt man mit dem Parameter "--field", deren Eigenschaft man mit den Kürzeln nach dem ":" beschreibt. Näheres hierzu bitte aus dem oben angeführten Link oder der "man"-Page entnehmen.

Am Schluss der Formulardefinition kann man die Default-Werte jeweils durch ein Leerzeichen getrennt angeben. Als Ausgabe liefert "yad" die im Formular erfassten Informationen als Zeichenkette, deren default Trennzeichen "|" die einzelnen Feldwerte separiert. Drückt man in der Form nicht den "OK" Button, wird keine Zeichenkette geliefert. Daher lese ich in meinem Beispiel die Zeichenkette mit dem Trennzeichen (IFS="|") in die beiden Variablen "nr" und "file", die dann als Parameter für den "brpcfax" Befehl verwendet werden.

Natürlich kannst du auch Telefonnummern aus einer Pick-Liste selektieren aber das wäre wahrscheinlich für den ersten Testversuch zu kompliziert. Das oben angeführte Beispiel erzeugt das im beigefügten Bild dargestellte Eingabefenster.

Bilder

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3265

Danke. Das ist eine klasse Alternative.

Antworten |