enscript(1)


NAME

   enscript  -  convert  text  files  to  PostScript, HTML, RTF, ANSI, and
   overstrikes

SYNOPSIS

   enscript [-123456789BcgGhjkKlmOqrRvVzZ]  [-#  copies]  [-a  pages]  [-A
   align]  [-b  header]  [-C[start_line]]  [-d  printer]  [-D key[:value]]
   [-e[char]] [-E[lang]] [-f font] [-F header_font] [-H[num]] [-i  indent]
   [-I  filter]  [-J title] [-L lines_per_page] [-M media] [-n copies] [-N
   newline] [-o outputfile] [-o -] [-p outputfile] [-p -] [-P printer] [-s
   baselineskip]  [-S  key[:value]] [-t title] [-T tabsize] [-u[text]] [-U
   num] [-w language] [-X encoding] [filename ...]

DESCRIPTION

   Enscript  converts  text  files  to  PostScript  or  to  other   output
   languages.   Enscript  can  spool  the  generated  output directly to a
   specified printer or leave it to a file.  If no input files are  given,
   enscript  processes the standard input stdin.  Enscript can be extended
   to handle different output media and it has many options which  can  be
   used to customize the printouts.

OPTIONS

   -# num  Print num copies of each page.

   -1, -2, -3, -4, -5, -6, -7, -8, -9, --columns=num
           Specify  how many columns each page have.  With the long option
           --columns=num you can specify more than 9 columns per page.

   -a pages, --pages=pages
           Specify which pages are printed.  The page specification  pages
           can be given in the following formats:

           begin-end
                   print pages from begin to end

           -end    print pages from 0 to end

           begin-  print pages from begin to end

           page    print page page

           odd     print odd pages

           even    print even pages

   -A align, --file-align=align
           Align  separate  input  files  to  even align page count.  This
           option   is   useful   in   two-side   and    2-up    printings
           (--file-align=2).

   -b header, --header=header
           Use  the text header as a page header.  The default page header
           is constructed from the name of the  file  and  from  its  last
           modification time.

           The  header  string  header  can  contain  the  same formatting
           escapes which can be specified for the  %Format  directives  in
           the  user  defined  fancy  headers.  For example, the following
           option prints the file name, current date and page numbers:

           enscript --header='$n %W Page $% of $=' *.c

           The header string can  also  contain  left,  center  and  right
           justified   fields.   The  fields  are  separated  by  the  '|'
           character:

           enscript --header='$n|%W|Page $% of $=' *.c

           now the file name  is  printed  left  justified,  the  date  is
           centered  to  the header and the page numbers are printed right
           justified.

   -B, --no-header
           Do not print page headers.

   -c, --truncate-lines
           Cut lines that are too  long  for  the  page.   As  a  default,
           enscript wraps long lines to the next line so no information is
           lost.

           You can also use the --slice option which slices long lines  to
           separate pages.

   -C[start_line], --line-numbers[=start_line]
           Precede  each line with its line number.  The optional argument
           start_line specifies the number of the first line in the input.
           The number of the first line defaults to 1.

   -d name Spool output to the printer name.

   -D key[:value], --setpagedevice=key[:value]
           Pass  a  page  device  definition  to  the generated PostScript
           output.  If no value is given, the key key is removed from  the
           definitions.

           For example, the command

           enscript -DDuplex:true foo.txt

           prints file foo.txt in duplex (two side) mode.

           Page device operators are implementation dependent but they are
           standardized.  See section PAGE DEVICE OPTIONS for the details.

   -e[char], --escapes[=char]
           Enable special  escapes  interpretation  (see  section  SPECIAL
           ESCAPES).  If the argument char is given, it changes the escape
           character to char.  The default escape character is 0.

   -E[lang], --highlight[=lang]
           Highlight source code by creating a special input  filter  with
           the  states  program.  The optional argument lang specifies the
           language to highlight.   As  a  default  the  states  makes  an
           educated guess.

           You can print a short description of the supported highlighting
           languages and file formats with the command:

           enscript --help-highlight

           The    highlighting    rules     are     defined     in     the
           `/usr/share/enscript/hl/*.st'  files  which  can  be  edited to
           create highlighting definitions for new languages.

           Note! You can not use your own input filters with this option.

   -f name, --font=name
           Select a font that is used for the body text.  The default body
           font  is  Courier10, unless multicolumn landscape printing mode
           is selected, in which case the default font is Courier7.

           The font specification name contains two parts: the name of the
           font   and   its  size  in  PostScript  points.   For  example,
           "Times-Roman12" selects the "Times-Roman" font with size 12pt.

           The font  specification  name  can  also  be  given  in  format
           `name@ptsize',  where  the  name of the font and its point size
           are separated by a `@' character.  This allows enscript to  use
           fonts which contain digit characters in their names.

           The   font   point  size  can  also  be  given  in  the  format
           width/height where the width and the height specify the size of
           the    font    in    x-   and   y-directions.    For   example,
           "Times-Roman@10/12" selects a 10 points wide and 12 points high
           "Times-Roman" font.

           You  can  also  give  the  font  sizes as decimal numbers.  For
           example, "Times-Roman10.2" selects a 10.2pt "Times-Roman" font.

   -F name, --header-font=name
           Select a font for the header texts.

   -g, --print-anyway
           Print a file even if it contains binary data.   The  option  is
           implemented  only  for compatibility purposes.  Enscript prints
           binary files anyway regardless of the option.

   -G, --fancy-header[=name]
           Print a fancy page header name to the top of  each  page.   The
           option  -G  specifies  the  default  fancy header.  See section
           CONFIGURATION FILES to see how the default fancy header can  be
           changed.

   -h, --no-job-header
           Suppress printing of the job header page.

   -H[num], --highlight-bars[=num]
           Specify  how  high the highlight bars are in lines.  If the num
           is not given, the default value 2 is used.  As  a  default,  no
           highlight bars are printed.

   -i num, --indent=num
           Indent  every line num characters.  The indentation can also be
           specified in other units by appending an unit  specifier  after
           the number.  The possible unit specifiers and the corresponding
           units are:

           c       centimeters

           i       inches

           l       characters (default)

           p       PostScript points

   -I filter, --filter=filter
           Read all input files through an input filter filter.  The input
           filter  can  be  a  single  command or a command pipeline.  The
           filter can refer to the name of the input file with the  escape
           `%s'.   The  name of the standard input can be changed with the
           option `--filter-stdin'.

           For example, the following command prints the file  `foo.c'  by
           using only upper-case characters:

           enscript --filter="cat %s | tr 'a-z' 'A-Z'" foo.c

           The  following  command  highlights  changes  which are made to
           files since the last checkout:

           enscript --filter="rcsdiff %s | diffpp %s" -e *.c

           To include the string "%s" to  the  filter  command,  you  must
           write it as "%%s".

   -j, --borders
           Print borders around columns.

   -J title
           An alias for the option -t, --title.

   -k, --page-prefeed
           Enable page prefeed.

   -K, --no-page-prefeed
           Disable page prefeed (default).

   -l, --lineprinter
           Emulate lineprinter.  This option is a shortcut for the options
           --lines-per-page=66, and --no-header.

   -L num, --lines-per-page=num
           Print only num lines for each page.  As a default,  the  number
           of  lines  per page is computed from the height of the page and
           from the size of the font.

   -m, --mail
           Send a mail notification to user after the print job  has  been
           completed.

   -M name, --media=name
           Select  an  output media name.  Enscript's default output media
           is determined from libpaper and falls back to A4.

   -n num, --copies=num
           Print num copies of each page.

   -N nl, --newline=nl
           Select the newline character.  The possible values for nl  are:
           n (unix newline, 0xa hex) and r (mac newline, 0xd hex).

   -o file An alias for the option -p, --output.

   -O, --missing-characters
           Print a listing of character codes which couldn't be printed.

   -p file, --output=file
           Leave  the  output  to file file.  If the file is `-', enscript
           sends the output to the standard output stdout.

   -P name, --printer=name
           Spool the output to the printer name.

   -q, --quiet, --silent
           Make enscript really quiet.   Only  fatal  error  messages  are
           printed to stderr.

   -r, --landscape
           Print in the landscape mode; rotate page 90 degrees.

   -R, --portrait
           Print in the portrait mode (default).

   -s num, --baselineskip=num
           Specify the baseline skip in PostScript points.  The number num
           can be given as a decimal number.   When  enscript  moves  from
           line  to  line,  the  current point y coordinate is moved (font
           point size + baselineskip) points down.  The  default  baseline
           skip is 1.

   -S key[:value], --statusdict=key[:value]
           Pass  a  statusdict  definition  to  the  generated  PostScript
           output.  If no value is given, the key key is removed from  the
           definitions.

           The  statusdict operators are implementation dependent; see the
           printer's documentation for the details.

           For example, the command

           enscript -Ssetpapertray:1 foo.txt

           prints the file foo.txt by using paper from the  paper  tray  1
           (assuming that the printer supports paper tray selection).

   -t title, --title=title
           Set banner page's job title to title.  The option sets also the
           name of the input file stdin.

   -T num, --tabsize=num
           Set the tabulator size to num characters.  The default is 8.

   -u[text], --underlay[=text]
           Print the string text under every page.  The properties of  the
           text  can  be  changed  with the options --ul-angle, --ul-font,
           --ul-gray, --ul-position, and --ul-style.

           If no text is given, the underlay is not printed.  This can  be
           used  to  remove  an  underlay text that was specified with the
           `Underlay' configuration file option.

   -U num, --nup=num
           Print num logical pages on each output  page  (N-up  printing).
           The values num must be a power of 2.

   -v, --verbose[=level]
           Tell what enscript is doing.

   -V, --version
           Print enscript version information and exit.

   -w [lang], --language[=lang]
           Generate output for the language lang.  The possible values for
           lang are:

           PostScript
                   generate PostScript (default)

           html    generate HTML

           overstrike
                   generate overstrikes (line printers, less)

           rtf     generate RTF (Rich Text Format)

           ansi    generate ANSI terminal control codes

   -X name, --encoding=name
           Use the input encoding name.  Currently enscript  supports  the
           following encodings:

           88591, latin1
                   ISO-8859-1 (ISO Latin1) (enscript's default encoding).

           88592, latin2
                   ISO-8859-2 (ISO Latin2)

           88593, latin3
                   ISO-8859-3 (ISO Latin3)

           88594, latin4
                   ISO-8859-4 (ISO Latin4)

           88595, cyrillic
                   ISO-8859-5 (ISO Cyrillic)

           88597, greek
                   ISO-8859-7 (ISO Greek)

           88599, latin5
                   ISO-8859-9 (ISO Latin5)

           885910, latin6
                   ISO-8859-10 (ISO Latin6)

           ascii   7-bit ascii

           asciifise, asciifi, asciise
                   7-bit  ascii  with  some scandinavian (Finland, Sweden)
                   extensions

           asciidkno, asciidk, asciino
                   7-bit ascii with some  scandinavian  (Denmark,  Norway)
                   extensions

           ibmpc, pc, dos
                   IBM PC charset

           mac     Mac charset

           vms     VMS multinational charset

           hp8     HP Roman-8 charset

           koi8    Adobe Standard Cyrillic Font KOI8 charset

           ps, PS  PostScript font's default encoding

           pslatin1, ISOLatin1Encoding
                   PostScript interpreter's `ISOLatin1Encoding'

   -z, --no-formfeed
           Turn off the form feed character interpretation.

   -Z, --pass-through
           Pass   through   all  PostScript  and  PCL  files  without  any
           modifications.  This allows that enscript can be used as  a  lp
           filter.

           The  PostScript  files  are  recognized  by looking up the `%!'
           magic cookie from the beginning of  the  file.  Note!  Enscript
           recognized also the Windoze damaged `^D%!' cookie.

           The  PCL  files are recognized by looking up the `^[E' or `^[%'
           magic cookies from the beginning of the file.

   --color[=bool]
           Use colors in the highlighting outputs.

   --download-font=fontname
           Include the font description file (.pfa or .pfb  file)  of  the
           font fontname to the generated output.

   --extended-return-values
           Enable  extended return values.  As a default, enscript returns
           1 on error and 0 otherwise.  The extended  return  values  give
           more  details  about  the  printing operation.  See the section
           RETURN VALUE for the details.

   --filter-stdin=name
           Specify how the stdin  is  shown  to  the  input  filter.   The
           default value is an empty string ("") but some programs require
           that the stdin is called something else, usually "-".

   --footer=footer
           Use the text footer as a page  footer.   Otherwise  the  option
           works like the --header option

   --h-column-height=height
           Set  the  horizontal  column  height  to  be  height PostScript
           points.    The   option   sets    the    formfeed    type    to
           horizontal-columns.

   --help  Print a short help message and exit.

   --help-highlight
           Describe all supported --highlight languages and file formats.

   --highlight-bar-gray=gray
           Specify  the gray level which is used in printing the highlight
           bars.

   --list-media
           List the names of all known output media and exit successfully.

   --margins=left:right:top:bottom
           Adjust the page marginals to be exactly left,  right,  top  and
           bottom  PostScript  points.   Any  of the arguments can be left
           empty in which case the default value is used.

   --mark-wrapped-lines[=style]
           Mark wrapped lines in the output with  the  style  style.   The
           possible values for the style are:

           none    do not mark them (default)

           plus    print  a  plus (+) character to the end of each wrapped
                   line

           box     print a black box to the end of each wrapped line

           arrow   print a small arrow to the end of each wrapped line

   --non-printable-format=format
           Specify how the  non-printable  characters  are  printed.   The
           possible values for the format are:

           caret   caret notation: `^@', `^A', `^B', ...

           octal   octal notation: `\000', `\001', `\002', ... (default)

           questionmark
                   replace  non-printable  characters with a question mark
                   `?'

           space   replace non-printable characters with a space ` '

   --nup-columnwise
           Change the layout of the sub-pages in the  N-up  printing  from
           row-wise to columnwise.

   --nup-xpad=num
           Set  the  page x-padding of the n-up printing to num PostScript
           points.  The default is 10 points.

   --nup-ypad=num
           Set the page y-padding of the n-up printing to  num  PostScript
           points.  The default is 10 points.

   --page-label-format=format
           Set  the  page  label  format to format.  The page label format
           specifies how the labels for the `%%Page:' PostScript  comments
           are formatted.  The possible values are:

           short   Print the current pagenumber: `%%Page: (1) 1' (default)

           long    Print  the  current  filename  and pagenumber: `%%Page:
                   (main.c:  1) 1'

   --ps-level=level
           Set the PostScript language level that enscript  uses  for  its
           output to level.  The possible values are 1, and 2.

   --printer-options=options
           Pass extra options to the printer command.

   --rotate-even-pages
           Rotate each even-numbered page 180 degrees.

   --slice=num
           Print  the vertical slice num.  The slices are vertical regions
           of input files.  A new slice starts from the  point  where  the
           line  would  otherwise  be wrapped to the next line.  The slice
           numbers start from 1.

   --style=style
           Set the highlighting style to style.  The possible values  are:
           a2ps, emacs, emacs_verbose, ifh, and msvc.

   --swap-even-page-margins
           Swap left and right page margins for even-numbered pages.

   --toc   Print a table of contents to the end of the output.

   --word-wrap
           Wrap long lines from word boundaries.

   --ul-angle=angle
           Set the angle of the underlay text to angle.  As a default, the
           angle is atan(-d_page_h, d_page_w).

   --ul-font=name
           Select a font for the underlay text.  The default underlay font
           is Times-Roman200.

   --ul-gray=num
           Print  the underlay text with the gray value num (0 ... 1), the
           default gray value is .8.

   --ul-position=position_spec
           Set the underlay text's  starting  position  according  to  the
           position_spec.   The  position  specification  must be given in
           format: `sign xpos sign ypos', where the sign must  be  `+'  or
           `-'.   The positive dimensions are measured from the lower left
           corner and the negative dimensions from the upper right corner.
           For  example, the specification `+0-0' specifies the upper left
           corner and `-0+0' specifies the lower right corner.

   --ul-style=style
           Set the underlay text's style to style.   The  possible  values
           for style are:

           outline print outline underlay texts (default)

           filled  print filled underlay texts

CONFIGURATION FILES

   Enscript reads configuration information from the following sources (in
   this order):  command  line  options,  environment  variable  ENSCRIPT,
   user's    personal   configuration   file   ($HOME/.enscriptrc),   site
   configuration  file   (/etc/enscriptsite.cfg)   and   system's   global
   configuration file (/etc/enscript.cfg).

   The configuration files have the following format:

   Empty lines and lines starting with `#' are comments.

   All other lines are option lines and have format:

   option [arguments ...].

   The following options can be specified:

   AcceptCompositeCharacters: bool
           Specify  whether  PostScript  font's  composite  characters are
           accepted as printable or if they should be considered  as  non-
           existent.  The default value is false (0).

   AFMPath: path
           Specifies the search path for the AFM files.

   AppendCtrlD: int
           Specify  if  the Control-D (^D) character should be appended to
           the end of the output.  A value of 1 will append ^D followed by
           a  newline,  a  value of 2 will omit the trailing newline.  The
           default value is 0 for no ^D.

   Clean7Bit: bool
           Specify how characters  greater  than  127  are  printed.   The
           valuee  true  (1)  generates  7-bit  clean code by escaping all
           characters greater than 127  to  the  backslash-octal  notation
           (default).  The value false (0) generates 8-bit PostScript code
           leaving all characters untouched.

   DefaultEncoding: name
           Select the default input encoding.  The encoding name name  can
           be one of the values of the option -X, --encoding.

   DefaultFancyHeader: name
           Select  the  default  fancy header.  The default header is used
           when the option -G is specified or the option --fancy-header is
           given   without   an  argument.   The  system-wide  default  is
           `enscript'.

   DefaultMedia: name
           Select the default output media.

   DefaultOutputMethod: method
           Select the default target to  which  the  generated  output  is
           sent.  The possible values for the method are:

           printer send output to printer (default)

           stdout  send output to stdout

   DownloadFont: fontname
           Include  the  font description file of the font fontname to the
           generated output.

   EscapeChar: num
           Specify the escape character  for  the  special  escapes.   The
           default value is 0.

   FormFeedType: type
           Specify  what  to  do  when a formfeed character is encountered
           from the input.  The possible values for type are:

           column  move to the beginning of the next column (default)

           page    move to the beginning of the next page

   GeneratePageSize: bool
           Specify whether the PageSize page device setting  is  generated
           to the PostScript output.  The default value is true (1).

   HighlightBarGray: gray
           Specify  the  gray  level  which is used to print the highlight
           bars.

   HighlightBars: num
           Specify how high the highlight bars are in lines.  The  default
           value is 0 which means that no highlight bars are printed.

   LibraryPath: path
           Specifies  the  enscript's  library path that is used to lookup
           various     resources.      The      default      path      is:
           `/usr/share/enscript:home/.enscript'.   Where  the  home is the
           user's home directory.

   MarkWrappedLines: style
           Mark wraped lines in the output  with  the  style  style.   The
           possible  values for the format are the same which can be given
           for the --mark-wrapped-lines option.

   Media: name width height llx lly urx ury
           Add a new output  media  with  the  name  name.   The  physical
           dimensions of the media are width and height.  The bounding box
           of the Media is specified by the points (llx,  lly)  and  (urx,
           ury).   Enscript prints all graphics inside the bounding box of
           the media.

           User can select this media with option -M name.

   NoJobHeaderSwitch: switch
           Specify the spooler option to suppress  the  print  job  header
           page.   This  option  is passed to the printer spooler when the
           enscript's option -h, --no-job-header is selected.

   NonPrintableFormat: format
           Specify how the  non-printable  characters  are  printed.   The
           possible  values for format are the same which can be given for
           the --non-printable-format option.

   OutputFirstLine: line
           Set the PostScript output's first line to  line.   The  default
           value  is  PS-Adobe-3.0.   Since  some printers do not like DSC
           levels greater than 2.0, this option can be used to change  the
           output  first  line  to  something  more  suitable  like  %!PS-
           Adobe-2.0 or %!.

   PageLabelFormat: format
           Set the page label format to format.  The possible  values  for
           format   are   the   same   which   can   be   given   for  the
           --page-label-format option.

   PagePrefeed: bool
           Enable / disable page prefeed.  The default value is false (0).

   PostScriptLevel: level
           Set the PostScript language level, that enscript uses  for  its
           output,  to  level.  The possible values for level are the same
           which can be given for the --ps-level option.

   Printer: name
           Names the printer to which the output is spooled.

   QueueParam: name
           The spooler command switch to select the printer queue, e.g. -P
           in  lpr -Pps.  This option can also be used to pass other flags
           to the spooler command.  These options must be given before the
           queue switch.

   SetPageDevice: key[:value]
           Pass  a  page  device  definition  to  the generated PostScript
           output.

   Spooler: name
           Names the printer spooler command.   Enscript  pipes  generated
           PostScript to the command name.

   StatesBinary: path
           Define an absolute path to the states program.

   StatesColor: bool
           Should the states program generate color outputs.

   StatesConfigFile: file
           Read highlighting states configuration from the file file.  The
           default config file is `/usr/share/enscript/hl/enscript.st'.

   StatesHighlightStyle: style
           Set the highlight style to style.

   StatesPath: path
           Define the path for the states  program.   The  states  program
           will  lookup  its  state  definition files from this path.  The
           default value is `$HOME/.enscript:/usr/share/enscript/hl'.

   StatusDict: key[:value]
           Pass  a  statusdict  definition  to  the  generated  PostScript
           output.

   TOCFormat: format
           Format table of contents entries with the format string format.
           The format string format can contain the same escapes which are
           used  to  format  header  strings  with  the  `%Format' special
           comment.

   Underlay: text
           Print string text under every page.

   UnderlayAngle: num
           Set the angle of the underlay text to num.

   UnderlayFont: fontspec
           Select a font for the underlay text.

   UnderlayGray: num
           Print the underlay text with the gray value num.

   UnderlayPosition: position_spec
           Set the underlay text's  starting  position  according  to  the
           position_spec.

   UnderlayStyle: style
           Set the underlay text's style to style.

FANCY HEADERS

   Users  can  create  their  own  fancy  headers  by  creating  a  header
   description file and placing it in a directory which is  in  enscript's
   library  path.   The  name  of  the  header  file  must  be  in format:
   `headername.hdr'.   Header  can   be   selected   by   giving   option:
   --fancy-header=headername.

   Header  description  file  contains  PostScript  code  that  paints the
   header.  Description file must provide  procedure  do_header  which  is
   called by enscript at the beginning of every page.

   Header  description  file contains two parts: comments and code.  Parts
   are separated by a line containing text:

   % -- code follows this line --

   Enscript copies only the code part of description file to the generated
   PostScript  output.   The comments part can contain any data, it is not
   copied.  If separator line is missing, no data is copied to output.

   Enscript defines following  constants  which  can  be  used  in  header
   description files:

   d_page_w        page width

   d_page_h        page height

   d_header_x      header lower left x coordinate

   d_header_y      header lower left y coordinate

   d_header_w      header width

   d_header_h      header height

   d_footer_x      footer lower left x coordinate

   d_footer_y      footer lower left y coordinate

   d_footer_w      footer width

   d_footer_h      footer height

   d_output_w      width of the text output area

   d_output_h      height of the text output area

   user_header_p   predicate  which  tells if user has defined his/her own
                   header string: true/false

   user_header_left_str
                   if user_header_p is true, this is the left field of the
                   user supplied header string.

   user_header_center_str
                   if  user_header_p  is true, this is the center field of
                   the user supplied header string

   user_header_right_str
                   if user_header_p is true, this is the  right  field  of
                   the user supplied header string

   user_footer_p   predicate  which  tells if user has defined his/her own
                   footer string: true/false

   user_footer_left_str
                   if user_footer_p is true, this is the left field of the
                   user supplied footer string.

   user_footer_center_str
                   if  user_footer_p  is true, this is the center field of
                   the user supplied footer string

   user_footer_right_str
                   if user_footer_p is true, this is the  right  field  of
                   the user supplied footer string

   HF              standard  header  font (from -F, --header-font option).
                   This can be selected simply by  invoking  command:  `HF
                   setfont'.

   pagenum         the number of the current page

   fname           the full name of the printed file (/foo/bar.c)

   fdir            the directory part of the file name (/foo)

   ftail           file name without the directory part (bar.c)

   gs_languagelevel
                   PostScript interpreter's language level (currently 1 or
                   2)

   You can also use the  following  special  comments  to  customize  your
   headers  and  to specify some extra options.  Special comments are like
   DSC comments but they  start  with  a  single  `%'  character;  special
   comments  start  from  the  beginning  of  the  line  and they have the
   following syntax:

   %commentname: options

   Currently enscript support the following special comments:

   %Format: name format
           Define a new string  constant  name  according  to  the  format
           string  format.   Format  string start from the first non-space
           character and it ends to the end of the  line.   Format  string
           can  contain  general  `%'  escapes  and input file related `$'
           escapes.  Currently following escapes are supported:

           %%      character `%'

           $$      character `$'

           $%      current page number

           $=      number of pages in the current file

           $p      number of pages processed so far

           $(VAR)  value of the environment variable VAR.

           %c      trailing component of the current working directory

           %C ($C) current time (file  modification  time)  in  `hh:mm:ss'
                   format

           %d      current working directory

           %D ($D) current  date  (file  modification  date) in `yy-mm-dd'
                   format

           %D{string} ($D{string})
                   format string string  with  the  strftime(3)  function.
                   `%D{}'  refers  to  the  current date and `$D{}' to the
                   input file's last modification date.

           %E ($E) current date (file  modification  date)  in  `yy/mm/dd'
                   format

           %F ($F) current  date  (file modification date) in `dd.mm.yyyy'
                   format

           %H      document title

           $L      number of lines in the current  input  file.   This  is
                   valid  only  for  the  toc entries, it can't be used in
                   header strings.

           %m      the hostname up to the first `.' character

           %M      the full hostname

           %n      the user login name

           $n      input file name without the directory part

           %N      the user's pw_gecos field up to the first `,' character

           $N      the full input file name

           %t ($t) current time (file modification time) in 12-hour  am/pm
                   format

           %T ($T) current time (file modification time) in 24-hour format
                   `hh:mm'

           %* ($*) current time (file modification time) in 24-hour format
                   with seconds `hh:mm:ss'

           $v      the sequence number of the current input file

           $V      the  sequence  number  of the current input file in the
                   `Table of Contents' format:  if  the  --toc  option  is
                   given,  escape  expands  to `num-'; if the --toc is not
                   given, escape expands to an empty string.

           %W ($W) current date (file  modification  date)  in  `mm/dd/yy'
                   format

           All format directives except `$=' can also be given in format

           escape width directive

           where  width  specifies  the  width  of the column to which the
           escape is printed.  For example, escape "$5%"  will  expand  to
           something like " 12".  If the width is negative, the value will
           be printed left-justified.

           For example, the `emacs.hdr' defines its date string  with  the
           following format comment:

           %Format: eurdatestr %E

           which expands to:

           /eurdatestr (96/01/08) def

   %HeaderHeight: height
           Allocate  height points space for the page header.  The default
           header height is 36 points.

   %FooterHeight: height
           Allocate height points space for the page footer.  The  default
           footer height is 0 points.

   According  to  Adobe's  Document  Structuring  Conventions  (DSC),  all
   resources needed by a document must be  listed  in  document's  prolog.
   Since  user's  can  create  their own headers, enscript don't know what
   resources those headers use.  That's why all  headers  must  contain  a
   standard  DSC  comment  that  lists all needed resources.  For example,
   used fonts can be listed with following comment:

   %%DocumentNeededResources: font fontname1 fontname2

   Comment  can  be  continued  to  the  next  line  with   the   standard
   continuation comment:

   %%+ font fontname3

SPECIAL ESCAPES

   Enscript  supports  special  escape  sequences which can be used to add
   some page formatting  commands  to  ASCII  documents.   As  a  default,
   special  escapes interpretation is off, so all ASCII files print out as
   everyone expects.   Special  escapes  interpretation  is  activated  by
   giving option -e, --escapes to enscript.

   All  special  escapes  start  with  the  escape character.  The default
   escape character is ^@ (octal 000); escape  character  can  be  changed
   with  option  -e,  --escapes.  Escape character is followed by escape's
   name and optional options and arguments.

   Currently enscript supports following escapes:

   bgcolor change the text background color.  The syntax of the escape is:

           ^@bgcolor{red green blue}

           where the color components red, green, and blue  are  given  as
           decimal numbers between values 0 and 1.

   bggray  change the text background color.  The syntax of the escape is:

           ^@bggray{gray}

           where  gray is the new text background gray value.  The default
           value is 1.0 (white).

   color   change the text color.  The syntax of the escape is:

           ^@color{red green blue}

           where color components red, green and blue are given as decimal
           numbers between values 0 and 1.

   comment comment  the  rest of the line including the newline character.
           Escape's syntax is:

           ^@comment text newline_character

   escape  change the escape character.  The syntax of the escape is:

           ^@escape{code}

           where code is the decimal code of the new escape character.

   epsf    inline EPS file to the document.  The syntax of the escape is:

           ^@epsf[options]{filename}

           where options is an optional sequence of option characters  and
           values  enclosed  with brackets and filename is the name of the
           EPS file.

           If filename ends to the `|' character, then filename is assumed
           to  name a command that prints EPS data to its standard output.
           In this case, enscript opens a pipe to  the  specified  command
           and reads EPS data from pipe.

           Following options can be given for the epsf escape:

           c       print image centered

           r       print image right justified

           n       do  not  update  current  point.   Following  output is
                   printed to that position where the  current  point  was
                   just before the epsf escape

           nx      do not update current point x coordinate

           ny      do not update current point y coordinate

           xnum    move  image's top left x coordinate num characters from
                   current point x coordinate (relative position)

           xnuma   set  image's  top  left  x  coordinate  to  column  num
                   (absolute position)

           ynum    move  image's  top  left  y  coordinate  num lines from
                   current line (relative position)

           ynuma   set image's top left y coordinate to line num (absolute
                   position)

           hnum    set image's height to num lines

           snum    scale image with factor num

           sxnum   scale image in x direction with factor num

           synum   scale image in y direction with factor num

           As  a default, all dimensions are given in lines (vertical) and
           characters (horizontal).  You can also specify other  units  by
           appending  an  unit  specifier  after  number.   Possible  unit
           specifiers and the corresponding units are:

           c       centimeters

           i       inches

           l       lines or characters (default)

           p       PostScript points

           For example to print an image one inch high,  you  can  specify
           height  by  following  options: h1i (1 inch), h2.54c (2.54 cm),
           h72p (72 points).

   font    select current font.  The syntax of the escape is:

           ^@font{fontname[:encoding]}

           where fontname is a standard font specification.  Special  font
           specification  default  can  be used to select the default body
           font (enscript's default or the one specified  by  the  command
           line option -f, --font).

           The  optional  argument  encoding  specifies  the encoding that
           should be used for the new font.  Currently  the  encoding  can
           only be the enscript's global input encoding or ps.

   ps      include  raw  PostScript code to the output.  The syntax of the
           escape is:

           ^@ps{code}

   shade   highlight regions of  text  by  changing  the  text  background
           color.  Escape's syntax is:

           ^@shade{gray}

           where  gray is the new text background gray value.  The default
           value is 1.0 (white) which disables highlighting.

PAGE DEVICE OPTIONS

   Page device is a PostScript level 2  feature  that  offers  an  uniform
   interface  to  control  printer's output device.  Enscript protects all
   page device options inside an if block so they have no effect in  level
   1 interpreters.  Although all level 2 interpreters support page device,
   they do not have to support all page device options.  For example  some
   printers  can  print  in  duplex  mode  and some can not.  Refer to the
   documentation of your printer for supported options.

   Here are some usable page device options which can be selected with the
   -D,  --setpagedevice  option.   For  a complete listing, see PostScript
   Language Reference Manual: section 4.11 Device Setup.

   Collate boolean
           how output is organized when printing multiple copies

   Duplex boolean
           duplex (two side) printing

   ManualFeed boolean
           manual feed paper tray

   OutputFaceUp boolean
           print output `face up' or `face down'

   Tumble boolean
           how opposite sides are positioned in duplex printing

PRINTING EXAMPLES

   Following printing examples  assume  that  enscript  uses  the  default
   configuration.    If   default  actions  have  been  changed  from  the
   configuration files, some examples will behave differently.

   enscript foo.txt
           Print file foo.txt to the default printer.

   enscript -Possu foo.txt
           Print file foo.txt to printer ossu.

   enscript -pfoo.ps foo.txt
           Print file foo.txt, but leave PostScript output to file foo.ps.

   enscript -2 foo.txt
           Print file foo.txt to two columns.

   enscript -2r foo.txt
           Print  file  to  two  columns  and  rotate  output  90  degrees
           (landscape).

   enscript -DDuplex:true foo.txt
           Print file in duplex (two side) mode (printer dependent).

   enscript -G2rE -U2 foo.c
           My  default  code  printing command: gaudy header, two columns,
           landscape, code highlighting, 2-up printing.

   enscript -E --color -whtml --toc -pfoo.html *.h *.c
           A nice HTML report of your project's C source files.

ENVIRONMENT VARIABLES

   The environment variable ENSCRIPT can be used to pass  default  options
   for  enscript.   For  example,  to  select  the default body font to be
   Times-Roman 7pt, set the following value to  the  ENSCRIPT  environment
   variable:

   -fTimes-Roman7

   The value of the ENSCRIPT variable is processed before the command line
   options, so command  line  options  can  be  used  to  overwrite  these
   defaults.

   Variable  ENSCRIPT_LIBRARY  specifies the enscript's library directory.
   It can be used to overwrite the build-in default `/usr/share/enscript'.

RETURN VALUE

   Enscript returns value 1 to the shell if any errors were encountered or
   0 otherwise.  If the option --extended-return-values was specified, the
   return value is constructed from the following flags:

   0       no errors or warnings

   2       some lines were truncated or wrapped

   4       some characters were missing from the used fonts

   8       some characters were unprintable

FILES

   /usr/share/enscript/*.hdr               header files
   /usr/share/enscript/*.enc               input encoding vectors
   /usr/share/enscript/enscript.pro        PostScript prolog
   /usr/share/enscript/afm/*.afm           AFM files for PostScript fonts
   /usr/share/enscript/font.map            index for the AFM files
   /usr/share/enscript/hl/*.st             states definition files
   /etc/enscript.cfg                       system-wide configuration file
   /etc/enscriptsite.cfg                   site configuration file
   ~/.enscriptrc                           personal configuration file
   ~/.enscript/                            personal resource directory

SEE ALSO

   diffpp(1), ghostview(1), gs(1), lpq(1), lpr(1), lprm(1), states(1)

AUTHOR

   Markku Rossi <mtr@iki.fi> <http://www.iki.fi/~mtr/>

   GNU Enscript WWW home page: <http://www.iki.fi/~mtr/genscript/>





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.