ps2fax.imp.sh.in
上传用户:weiyuanprp
上传日期:2020-05-20
资源大小:1169k
文件大小:4k
源码类别:

传真(Fax)编程

开发平台:

C/C++

  1. #! @SCRIPT_SH@
  2. # $Id: ps2fax.imp.sh.in,v 1.3 2008/01/09 06:40:36 faxguy Exp $
  3. #
  4. # HylaFAX Facsimile Software
  5. #
  6. # Copyright (c) 1990-1996 Sam Leffler
  7. # Copyright (c) 1991-1996 Silicon Graphics, Inc.
  8. # HylaFAX is a trademark of Silicon Graphics
  9. # Permission to use, copy, modify, distribute, and sell this software and 
  10. # its documentation for any purpose is hereby granted without fee, provided
  11. # that (i) the above copyright notices and this permission notice appear in
  12. # all copies of the software and related documentation, and (ii) the names of
  13. # Sam Leffler and Silicon Graphics may not be used in any advertising or
  14. # publicity relating to the software without the specific, prior written
  15. # permission of Sam Leffler and Silicon Graphics.
  16. # THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
  17. # EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
  18. # WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
  19. # IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
  20. # ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
  21. # OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  22. # WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
  23. # LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
  24. # OF THIS SOFTWARE.
  25. #
  26. #
  27. # Convert PostScript to facsimile using Impressario 2.0-based RIP for IRIX.
  28. #
  29. # ps2fax [-o output] [-l pagelength] [-w pagewidth]
  30. # [-r resolution] [-m maxpages] [-*] [file ...]
  31. #
  32. # We need to process the arguments to extract the input
  33. # files so that we can prepend a prologue file that defines
  34. # LaserWriter-specific stuff as well as to insert and error
  35. # handler that generates ASCII diagnostic messages when
  36. # a problem is encountered in the interpreter.
  37. #
  38. # NB: this shell script is assumed to be run from the
  39. #     top of the spooling hierarchy -- s.t. the etc directory
  40. #     is present.
  41. test -f etc/setup.cache || {
  42.     SPOOL=`pwd`
  43.     cat<<EOF
  44. FATAL ERROR: $SPOOL/etc/setup.cache is missing!
  45. The file $SPOOL/etc/setup.cache is not present.  This
  46. probably means the machine has not been setup using the faxsetup(@MANNUM1_8@)
  47. command.  Read the documentation on setting up HylaFAX before you
  48. startup a server system.
  49. EOF
  50.     exit 1
  51. }
  52. . etc/setup.cache
  53. PS=$IMPRIP
  54. DSO_DIR=$LIBEXEC
  55. pagewidth=1728 # standard fax width
  56. pagelength=297 # default to A4 
  57. vres=98 # default to low res
  58. out=ps.fax # default output filename
  59. jobid=
  60. fil=
  61. opt=
  62. while test $# != 0
  63. do case "$1" in
  64.     -i) shift; jobid="$1" ;;
  65.     -o) shift; out="$1" ;;
  66.     -l) shift; pagelength="$1" ;;
  67.     -w) shift; pagewidth="$1" ;;
  68.     -r) shift; vres="$1" ;;
  69.     -m) shift;; # NB: not implemented
  70.     -1) ;;
  71.     -2) opt="$opt -o 2d" ;;
  72.     *) fil="$fil $1" ;;
  73.     esac
  74.     shift
  75. done
  76. test -x $PS || {
  77.     $CAT<<EOF
  78. The Impressario PostScript RIP does not exist on the server machine
  79. or is not located at the expected location:
  80.     $PS
  81. This indicates that you either do not have Impressario installed on
  82. the system or that it is installed in a nonstandard location.
  83. EOF
  84.     exit 254; # cause document to be rejected
  85. }
  86. test -r $DSO_DIR/fax.so || {
  87.     $CAT<<EOF
  88. The FAX back-end for the Impressario PostScript RIP does not exist
  89. on the server machine or is not located at the expected location:
  90.     $DSO_DIR/fax.so
  91. This indicates the Impressario 2.0 FAX back-end provided for use with
  92. HylaFAX was not installed on the server system (hylafax.sw.imprip).
  93. EOF
  94.     exit 254; # cause document to be rejected
  95. }
  96. #
  97. # Calculate raster image height based on page length
  98. # and vertical resolution.
  99. #
  100. pageheight=`expr "$pagelength" * "$vres" * 10 / 255 2>/dev/null`
  101. #
  102. # Apply customizations such as watermarking.   
  103. #
  104. if [ -f etc/FaxModify ]; then
  105.     . etc/FaxModify
  106. fi
  107. #
  108. # Force temp/scratch files away from the normal place
  109. # in the spooling area in case we are using the RIP on
  110. # a system w/o the rest of Impressario
  111. #
  112. PSRIPTMPDIR=tmp; export PSRIPTMPDIR
  113. exec 2>&1 # capture error messages
  114. $PS -b $DSO_DIR -C fax 
  115.     -X 204 -Y "$vres" 
  116.     -W "$pagewidth" -H "$pageheight" 
  117.     -I etc/dpsprinter.ps 
  118.     -O $out 
  119.     $opt -S 
  120.     $fil