home | help
PAPS(1) 		     General Commands Manual			 PAPS(1)

NAME
     paps - text to PostScript converter using Pango

SYNOPSIS
     paps [options] files...

DESCRIPTION
     paps reads an input file and writes a PostScript language or user specified
     format rendering of the file to standard output. paps accepts international
     text  in  any  locale  and provides internationalized text layout including
     text shaping and bidirectional text rendering.

     If no filename argument is provided, paps reads the standard input. If  the
     standard input is a terminal, input is terminated by an EOF signal, usually
     Control-d.

OPTIONS
     paps  follows the usual GNU command line syntax, with long options starting
     with two dashes (`-'). A summary of options is included below.

     -h, --help
	    Show summary of options.

     --landscape
	    Landscape output. Default is portrait.

     --columns=cl
	    Format output into cl columns. Default is 1.
	    Please notice this option isn't related to the terminal length as in
	    a "80 columns terminal".

     --font=desc
	    Use font based on description desc. Default is "Monospace 12".   The
	    format of the string representation is:

	    "[family-list] [style-options] [size]"

	    where  family-list	is a comma separated list of families optionally
	    terminated by a comma, style-options is a whitespace separated  list
	    of words where each word describes one of style, variant, weight, or
	    stretch,  and  size  is  a	decimal  number for size in points, e.g.
	    "Courier,Monospace Bold Italic 10".

     -o, --output=file
	    Output file. Default is stdout. Output format is set based on file's
	    extension when --format is not provided.

     --rtl  Do right-to-left (RTL) text layout and align text to the right. Text
	    direction is detected automatically. Use this  option  for	explicit
	    RTL layout and right alignment.

     --justify
	    Justify the layout. Stretch complete lines to fill the entire width.

     --wrap=wm
	    Use line wrapping mode wm. Default is word-char.

	    word       Wrap lines at word boundaries

	    char       Wrap lines at character boundaries

	    word-char  Wrap lines at word boundaries, but fall back to character
		       boundaries if there is not enough space for a full word

     --show-wrap
	    Mark wrapped lines with special characters.

     --paper=ps
	    Choose  paper size. Accepted paper sizes are 'legal', 'letter', 'A3'
	    and 'A4'.  Default is A4.

     --gravity=gr
	    Set base glyph orientation. Default is auto.

	    south      Glyphs stand upright

	    east       Glyphs are rotated 90 degrees clockwise

	    north      Glyphs are upside-down

	    west       Glyphs are rotated 90 degrees counter-clockwise

	    auto       Gravity is resolved from the context

     --gravity-hint=gh
	    Set how horizontal scripts behave in a vertical context. Default  is
	    natural.

	    natural    Scripts will take their natural gravity based on the base
		       gravity and the script

	    strong     Always use the base gravity, regardless of the script

	    line       For scripts not in their natural direction (e.g. Latin in
		       East  gravity), choose per-script gravity such that every
		       script respects the line progression. This  means,  Latin
		       and  Arabic  will  take	opposite gravities and both flow
		       top-to-bottom for example.

     --format=fmt
	    Choose output format. Default is ps.

	    ps	       PostScript

	    pdf        Portable Document Format

	    svg        Scalable Vector Graphics

     Postscript points
	    Each postscript point equals to 1/72 of an inch. 36 points	are  1/2
	    of an inch.

     --bottom-margin=bm
	    Set bottom margin. Default is 36 postscript points.

     --top-margin=tm
	    Set top margin. Default is 36 postscript points.

     --left-margin=lm
	    Set left margin. Default is 36 postscript points.

     --right-margin=rm
	    Set right margin. Default is 36 postscript points.

     --gutter-width=gw
	    Set gutter width. Default is 40 postscript points.

     --header
	    Draw  page	header with document name, date and page number for each
	    page. Header is not printed by default.

     --header-left=fmt
	    Sets the formatting for the left side of the header. See FORMAT  for
	    an	explanation  of the header and footer formatting. Default is the
	    current localized date.

     --header-center=fmt
	    Sets the formatting for the center of the header. See FORMAT for  an
	    explanation  of  the  header  and  footer formatting. Default is the
	    filename.

     --header-right=fmt
	    Sets the formatting for the center of the header. See FORMAT for  an
	    explanation of the header and footer formatting. Default is the Page
	    number.

     --footer
	    Draw  page	footer with document name, date and page number for each
	    page. Footer is not printed by default.

     --footer-left=fmt
	    Sets the formatting for the left side of the footer. See FORMAT  for
	    an explanation of the footer and footer formatting. The default for-
	    matting is an empty string.

     --footer-center=fmt
	    Sets  the formatting for the center of the footer. See FORMAT for an
	    explanation of the footer and footer formatting. The default format-
	    ting is an empty string.

     --footer-right=fmt
	    Sets the formatting for the center of the footer. See FORMAT for  an
	    explanation of the footer and footer formatting. The default format-
	    ting is an empty string.

     --title="text"
	    Use  text  as the title string for page header. By default the input
	    filename or "stdin" is used.

     --markup
	    Interpret input as pango markup. Pango Text  Attribute  Markup  Lan-
	    guage allows marking parts of the text with tags defining additional
	    attributes	such  as font face, size, weight, colors or text decora-
	    tion such as underline or strikethrough.

     --encoding=enc
	    Assume encoding of the input text is enc. By default the encoding of
	    the current locale is used (e.g. UTF-8).

     --lpi=lines
	    Set number of lines per inch. This determines the line spacing.

     --cpi=chars
	    Set number of characters per inch. This is an alternative method  of
	    specifying the font size.

     --g-fatal-warnings
	    Make all glib warnings fatal.

EXIT STATUS
     The following exit values are returned:

     0	   Successful completion.

     1	   An error occurred.

HEADER AND FOOTER FORMATTING
     The  header  and  footers	may be formatted by a mini language based on the
     python f-strings. Text outside of squiggly brackets are  entered  literally
     in  the  output. Text inside squiggly brackets contain one of the following
     predefined list of variables:

	    now        The current time

	    mtime      The modification time of the file being printed

	    page_idx   The page index of the page

	    num_pages  The total number of pages in the document

	    filename   The filename (basename) of the document

	    path       The full path of the document

EXAMPLES
     Example 1 Printing UTF-8 text file

     The following command can be used to print a file in any of the UTF-8 based
     locales if the file is in UTF-8 or compatible codeset.

       $ paps en_US_UTF-8.txt

     By default paps will print PostScript rendering to  standard  output.  Send
     the output to a printer using lp

       $ paps en_US_UTF-8.txt | lp

     or to a file using redirection or the -o option

       $ paps en_US_UTF-8.txt > out.ps
       $ paps -o out.ps en_US_UTF-8.txt

     Example 2 Specify encoding

     To  print a file in specific encoding regardless of the current locale set-
     ting use the --encoding option. An example for Japanese EUC  encoded  input
     file:

       $ paps --encoding eucjp ja_JP_eucjp.txt > out.ps

     paps  will  still	use  current  locale setting to prioritize the available
     fonts for current language.

     Example 3 Specify locale

     Override the LC_ALL environment variable to run paps in a different locale.

       $ LC_ALL=ja_JP.eucjp paps ja_JP_eucjp.txt > out.ps

     Here paps will assume the input is in Japanese EUC encoding  and  will  use
     Japanese  eucjp locale to render the output. If --header is added, the date
     is printed in Japanese.

     Example 4 Change the header and footer

     Override the header and the footer to show only the page in the  middle  of
     the footer.

       $ paps --separation-lines -o /tmp/foo.pdf --header --header-left='' \
	--header-center='{path}' --header-right='' --footer \
	--footer-left='Printed {now:%c}' \
	--footer-right='Page {page_idx}/{num_pages}' \
	`pwd`/paps.ccx

     Here  paps  will  assume the input is in Japanese EUC encoding and will use
     Japanese eucjp locale to render the output. If --header is added, the  date
     is printed in Japanese.

ENVIRONMENT VARIABLES
     paps  uses locale environment variables to determine its behavior. The fol-
     lowing categories are used:

     LC_CTYPE	     to assume the encoding of the input. This can be overridden
		     by --encoding.

     LC_TIME	     to format the date for header.

     Font selection is also affected by current locale. Example 3 describes  how
     to run paps in a different locale.

SEE ALSO
     fc-match(1), setlocale(3C)

AUTHOR
     paps was written by Dov Grobgeld <dov.grobgeld@gmail.com>.

     This  manual  page  was written by Lior Kaplan <kaplan@debian.org>, for the
     Debian project (but may be used by others).

				December 20, 2022			 PAPS(1)

home | help