typerules
上传用户:weiyuanprp
上传日期:2020-05-20
资源大小:1169k
文件大小:9k
源码类别:

传真(Fax)编程

开发平台:

C/C++

  1. # $Id: typerules,v 1.11 2008/01/26 19:31:55 faxguy Exp $
  2. #
  3. # HylaFAX Facsimile Software
  4. #
  5. # Copyright (c) 1990-1996 Sam Leffler
  6. # Copyright (c) 1991-1996 Silicon Graphics, Inc.
  7. # HylaFAX is a trademark of Silicon Graphics, Inc.
  8. # Permission to use, copy, modify, distribute, and sell this software and 
  9. # its documentation for any purpose is hereby granted without fee, provided
  10. # that (i) the above copyright notices and this permission notice appear in
  11. # all copies of the software and related documentation, and (ii) the names of
  12. # Sam Leffler and Silicon Graphics may not be used in any advertising or
  13. # publicity relating to the software without the specific, prior written
  14. # permission of Sam Leffler and Silicon Graphics.
  15. # THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
  16. # EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
  17. # WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
  18. # IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
  19. # ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
  20. # OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  21. # WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
  22. # LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
  23. # OF THIS SOFTWARE.
  24. #
  25. #
  26. # HylaFAX file type rules.
  27. #
  28. # This file contains the file typing rules used by the sendfax
  29. # program to deduce how input files should be prepared for fax
  30. # transmission.  The format of this file is based on the System V
  31. # /etc/magic file used by the file(1) program.  The code that
  32. # reads this file was written entirely based on the comments that
  33. # exist at the top of the magic file and describe how it works.
  34. # The use of magic-style rules is intended to make it easier for
  35. # users to reuse rules already designed for use with file(1).
  36. #
  37. # Each entry defines a type rule.  Entries normally are terminated
  38. # by the end of a line, thought they can be continued across lines
  39. # with a ``'' (when this is done leading white space is converted
  40. # to a single space).  ``#'' is a comment character; when it appears
  41. # on a line, everything to the right is ignored.
  42. #
  43. # The fields in each entry are:
  44. #
  45. # offset: a byte offset in the file at which data should be extracted
  46. #   and compared to a matching string or value.  If this value
  47. #   begins with '>', then an additional rule is used and scanning
  48. #   continues to the next type rule line that does not begin with
  49. #   a '>'. Only a single level of '>' is permitted.
  50. # datatype: the type of data value to extract the specified offset in the
  51. #   for comparison purposes.  This can be byte, short, long, ascii or
  52. #   string (a not necessarily null-terminated string of bytes).
  53. #   A byte is 8 bits, short 16 bits, and long 32 bits.
  54. # match:  the value and operation to use in matching; the value used is
  55. #   based on the datatype field.  This value may be "x" to mean
  56. #   "match anything".  The operation is "=" if nothing is specified;
  57. #   otherwise it can be one of ">", "<", "<=", ">=", "!=", "&"
  58. #   (for and-ing and comparing to zero), "^" (for xor-ing and
  59. #   comparing to zero), and "!" (for taking one's complement and
  60. #   comparing to zero).
  61. #   For string and ascii data, no comparison operator is allowed,
  62. #   and embedded spaces, but not embedded tabs, are allowed.
  63. #   These data are taken literally; no C-style character escapes
  64. #         are meaningful.
  65. # result: one of "PS", "TIFF", "PDF", "PCL", or "error" (case insensitive).
  66. #   The first two results specifiy whether the rule generates a PostScript
  67. #   file or a bilevel TIFF image.  The "error" result indicates a
  68. #   file is unsuitable for transmission and if supplied as an
  69. #   argument to sendfax, the command should be aborted.
  70. # rule:   a string passed to the shell to convert the input file
  71. #   to the result format (suitable for sending as facsimile).
  72. #   The rule string is a printf-like string that should use the
  73. #   following "%" escapes:
  74. # %i input file name
  75. # %o output file name
  76. # %r output horizontal resolution in pixels/mm
  77. # %R output horizontal resolution in pixels/inch
  78. # %v output vertical resolution in lines/mm
  79. # %V output vertical resolution in lines/inch
  80. # %f data format, 1 for 1-d encoding or 2 for 2-d encoding
  81. # %w page width in pixels
  82. # %W page width in mm
  83. # %l page length in pixels
  84. # %L page length in mm
  85. # %s page size by name
  86. # %F the pathname of the fax library (e.g./usr/local/lib/fax)
  87. # %<x> the <x> character (e.g. ``%%'' results in ``%''
  88. #
  89. # These are the "null rules"--i.e. for matching formats handled
  90. # directly by the server.
  91. #
  92. #offset datatype match result rule
  93. 0 string %! ps
  94. 0 short 0x4d4d tiff
  95. 0 short 0x4949 tiff
  96. #
  97. 0 short 000732 tiff %F/sgi2fax -%f -o %o -v %V
  98.   -s %s %i
  99. 0 short 017436 error packed data support not configured
  100. 0 short 017635 error compressed data support not configured
  101. 0 short 0x0506 ps showcase -p -f %i
  102. 0 short 0x5343 ps showcase -p -f %i
  103. 0 short 0xf702 ps dvips -q -o %o %i
  104. 0 string GIF tiff
  105. 0 long 0x59a66a95 tiff ras2tiff -%f -v %V %i %o
  106. 0 short 0x1b45 pcl
  107. 0 short 0x1b25 pcl
  108. 0 short 0x1b26 pcl
  109. 0 short 0x1b2a pcl
  110. #
  111. # To do client-side PCL conversion to PostScript comment-out the above
  112. # and uncomment this:
  113. #0 short 0x1b25 ps pcl6 -dNOPAUSE -sDEVICE=pswrite -sOutputFile=%o %i
  114. #
  115. # HylaFAX now has server-side PDF conversion, so no need for pdf2ps.
  116. # If you have trouble or if you prefer to use pdf2ps, comment this 
  117. # next line and uncomment the second.
  118. 0 string %PDF pdf
  119. #0 string %PDF ps pdf2ps %i %o
  120. #
  121. # pdftk has the ability to auto-rotate pages to all make them portrait...
  122. #
  123. #0 string %PDF pdf pdftk %i cat 1-endN output %o
  124. #
  125. # NB: psdit is the Adobe Transcript program for converting ditroff output
  126. 0 string x T psc ps psdit <%i >%o
  127. #
  128. # These are from the PBMPLUS package's auxiliary magic numbers file
  129. # Most of these entries use the "string" format so that they will work on
  130. # both big-endian and little-endian machines.
  131. #
  132. 0 string begin error uuencoded file support not configured
  133. 0 string xbtoa error btoa'd file support not configured
  134. 0 string P1 error PBM file support not configured
  135. 0 string P2 error PGM file support not configured
  136. 0 string P3 error PPM file support not configured
  137. 0 string P4 error PBM "rawbits" file support not configured
  138. 0 string P5 error PGM "rawbits" file support not configured
  139. 0 string P6 error PPM "rawbits" file support not configured
  140. #
  141. 0 string WNGZWZSS error Wingz spreadsheet support not configured
  142. 0       string          #Inventor V error IRIS Inventor file  support not configured
  143. >15     string          binary error binary IRIS Inventor file support not configured
  144. >15     string          ascii ps %F/textfmt -B -f Courier-Bold
  145. -Ml=0.4in -p 11 -s %s >%o <%i
  146. # The following image types are not handled natively, but
  147. # can be used when a converter is installed.  Enable the 
  148. # conversion match and disable the corresponding error.
  149. #>3 string 87a tiff gif2tiff -%f -v %V %i %o
  150. #>3 string 87a ps gif2ps -y %i > %o
  151. >3 string 87a error GIF (version 87a) support not configured
  152. #>3 string 89a ps gif2ps -y %i > %o
  153. >3  string 89a error GIF (version 89a) support not configured
  154. 0 string x89PNG error PNG support not configured
  155. 0 short 0xffd8 error filetype conversion support not configured
  156. #>6 string JFIF ps jpeg2ps -a -o %o %i
  157. >6 string JFIF error JPEG support not configured
  158. 0 short 0xd8ff error filetype conversion support not configured
  159. 0 string #FIG error FIG support not configured
  160. # MS Office (Word) conversion using antiword. Install antiword
  161. # and enable this if you want it.  It may produce imperfect 
  162. # renderings, but they're better than nothing, perhaps.
  163. #0 short 0xd0cf ps antiword -p letter -m 8859-1.txt %i > %o
  164. 0 short 0xd0cf error Microsoft Word Document support not configured
  165. #
  166. # You can try to use html2ps for HTML documents...
  167. #
  168. #0 istring  <!DOCTYPE HTML ps html2ps %i >%o
  169. #0 istring  <HTML ps html2ps %i >%o
  170. #0 istring  <TITLE ps html2ps %i >%o
  171. #0 istring  <HEAD ps html2ps %i >%o
  172. #0 istring  <BODY ps html2ps %i >%o
  173. #0 istring  <DIV ps html2ps %i >%o
  174. #
  175. # Japanization (should help other iso-2022 variants too)
  176. #
  177. #>15 string asciiesc ps a2ps-j -l '' -p -ns -nt <%i >%o
  178. #0 asciiesc x ps a2ps-j -l '' -p -ns -nt <%i >%o
  179. #
  180. #
  181. # This causes anything else with ascii-only data to be treated as text.
  182. #
  183. 0 ascii x ps %F/textfmt -B -f Courier-Bold
  184. -Ml=0.4in -p 11 -s %s >%o <%i
  185. #
  186. # Use enscript, instead of HylaFAX textfmt, for converting text into ps.
  187. # 1) Comment out the 2 lines above referring to textfmt
  188. # 2) Un-comment the following 3 lines
  189. #    Notes: - The '--margins' and '-s' params are set to produce output similar
  190. #             to the textfmt invocation above.
  191. #           - Page size is fixed, since enscript doesn't handle the values
  192. #             assigned to the %s macro. Use:
  193. #             '-M Letter' (not 'letter', not 'LETTER') for US letter
  194. #             '-M A4'     (not 'a4') for ISO A4
  195. #0 ascii x ps enscript -B -f Courier-Bold@11 
  196. # --margins=24::60:36 -s 2.2 
  197. # -q -M A4 -p %o %i
  198. #  Support 7-bit text which would otherwise be seen as binary.
  199. #
  200. #0 byte x ps %F/textfmt -B -f Courier-Bold 
  201. #   -p 11 -s %s >%o <%i