Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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

NAME
     c2ps - converts a file with C/C++ code to Postscript

SYNOPSIS
     c2ps  [  -?h124abceikmnruvwx  ]  [  -F defaultfont  ]  [ -C commentfont ] [
     -K keywordfont ] [ -N lnumberfont ] [ -P preprocfont ] [ -S stringfont ]  [
     -T typefont ] [ -U functionfont ] [ -X nonlatinfont ] [ -d dim ] [ -f font-
     size  ]  [ -l lines ] [ -p paper ] [ -o outputfile ] [ -s space ] [ -t tab-
     size ] [ -_  fun_highlight ] [ -DPREPROC_VAR ...  ] [ -UPREPROC_VAR ...   ]
     [ file ...  ]

DESCRIPTION
     Converts  the  specified file(s) containing C/C++ code to Postscript output
     conforming to the Adobe Structuring Conventions.

     If no input file is specified then input is  accepted  from  stdin.   Post-
     script output is directed to stdout unless you specify an output file.  The
     actual output page may be out with one, two or four columns.

     Supported paper types are A4 and Letter.

     Tabs  in  the input stream are expanded (by default) by blank characters to
     the closest modulo 8 position. You can specify your own constant number  of
     blanks different from 8 for a tab to expand.

     A formfeed (^L) character makes the converter move to the next column.

     By  default, C/C++ constructs are highlighted with following standard fonts
     presented on every Postscript printer:

	  Preprocessor directives  Courier-BoldOblique

	  Comments		   Helvetica-Oblique

	  Strings		   Courier-Oblique

	  Keywords		   Courier-Bold

	  Line numbers		   Times-Roman

	  Types 		   Courier-Bold

	  Function identificators  Bookman-LightItalic

     The rest is printed with Courier (default font). If  highlighting	is  dis-
     abled  only  the  default font is used to print the read code (but not line
     numbers).

     Comments may be printed dimmed to a configurable degree in a way  that  al-
     lows  reader  to  concentrate mainly on the source itself referring to com-
     ments only when needed.

     c2ps has basic preprocessor  capabilities.  You  may  define/undefine  pre-
     processor variables in the command line.  c2ps will neglect those pieces of
     code  that  are  cut out by the preprocessor given a set of mentioned vari-
     ables.

     By default, on each column c2ps draws an alphabetic index of  all	function
     id definitions with locations, scanned from the beginning of the file being
     printed.	As the number of these id's grows the font used to print the in-
     dex may get smaller in order to accommodate all the entries.

     Occasionally, function index is drawn upon already printed source code.  To
     cope with this you can either cancel the index option or use smaller fonts.

     All the read symbols with codes 128..255 (0x80..0xff) are	printed  escaped
     so  that  c2ps output is all clean 7-bit ascii and can be sent over the In-
     ternet without uuencoding.

     You can easily print source including fragments in Cyrillic, Hebrew, Arabic
     etc.  which may be found in string and/or comments if you're printing C/C++
     code and anywhere otherwise. You just need a postscript font with	encoding
     corresponding to the one that is used in the above fragments. If there's no
     suitable  built-in  font in your PS printer you will have to prepend one to
     c2ps output.

     If the symbols from the both halves of the code table  are  implemented  in
     your  PS  font,  you may simply use it to print any constructs that include
     8-bit text (don't forget to disable ISO Latin 1 font  reencoding).   Other-
     wise,  with  only	upper half symbols (with codes > 127(0x7f)) implemented,
     there is an option to set a font to print specifically these symbols  leav-
     ing the rest to be printed by either default or newly set fonts.

     Also, as much as we know there exists a version of c2ps modified to support
     Chinese  (Hanja)  and  Korean (Hangul). An address of the implementor is on
     the c2ps web page.

     This is a manual page for c2ps ver4.0

OPTIONS
     -? -h  Print usage message.

     -1     Specify single column per page output - default (portrait).

     -2     Specify two columns per page output (1/2 size, landscape).

     -4     Specifiy four columns per page output (1/4 size, portrait).

     -a     Disable adjusted multiple lines comments printing.

     -b     Disable drawing a  box  containing	alphabetic  index  of  functions
	    scanned from the beginning of the file.

     -c     Disable C/C++ construct highlighting.

     -e     Disable printing entry/exit function name in the column's header.

     -i     Disable ISO 8859-1 (ISO Latin 1) character encoding.

     -k     Use standard set of keywords rather than extended one.

     -m     When printing a file use the date of printing instead of file's last
	    modification date.

     -n     Disable line numbering.

     -r     Draw a frame round each column.

     -u     Disable drawing header at the top of each column.

     -v     Print current version.

     -w     Disable  wrapping  too  wide lines onto following lines.  Note, that
	    when wrapping is enabled the maximum number of  characters	in  line
	    printed  with  any font is the number of the same point size Courier
	    characters that may appear in single line without crossing	column's
	    border.

     -x     Automatically toggle C/C++ highlight flag for each file according to
	    its  extension.  ( Applicable extensions include  .c .h .cc .hh .cpp
	    .hpp )

     -F defaultfont
	    Use defaultfont as default font.

     -C commentfont
	     Use commentfont to print comments.

     -K keywordfont
	    Use keywordfont to print keywords.

     -N lnumberfont
	    Use lnumberfont to print line numbers.

     -P preprocfont
	    Use preprocfont to print preprocessor directives.

     -S stringfont
	    Use stringfont to print strings.

     -T typefont
	    Use typefont to print types.

     -U functionfont
	    Use functionfont to print function identificators being defined.

     -X nonlatinfont
	    Use nonlatinfont to print all symbols with codes  >  127(0x7f).  ISO
	    Latin 1 encoding is automatically cancelled.

     -d dim
	    Print comments dimmed with the coefficient dim.
	     (	black:	0.0 <= dim <= 1.0 :white ). Default is 0.75.  So you can
	    actually get rid of the comments in your  printout	by  setting  dim
	    coef. to 1.0

     -f pointsize
	    Use pointsize -scaled fonts ( 10 - default ).

     -l lines
	    Make  converter  start  a new column after each set of lines printed
	    lines. You may want to use the resulted at the bottom of the  column
	    white space for notes if the space on the right is not sufficient.

     -p paper
	    Paper type specification ( A4 - default, Letter ).

     -s points
	    Leave points * 1/72 inch space between lines ( 0.0 - default ).

     -t tabsize
	    Expand each read tab with blanks to a next modulo tabsize position (
	    8 - default ).

     -_  fun_highlight
	    Specify  function  id highlighting type ( none, box, underline - de-
	    fault ).

     -DPREPROC_VAR

     -UPREPROC_VAR
	    You may define or undefine preprocessor variables in a standard com-
	    piler option fashion.

	    Below:
	     +/-: printed/not printed by c2ps
	     column 1: for variable X not mentioned in command line
	     column 2: for variable X defined
	     column 3: for variable X undefined

		 1  2  3
		 +  -  -    #ifdef X
		 +  +  -      C/C++ code (+ preprocessor directives)
		 +  -  -    #else
		 +  -  +      C/C++ code (+ preprocessor directives)
		 +  -  -    #endif

	    Similarly for #ifndef, just switch columns 2 and 3.

EXAMPLES
     Multiple files
	c2ps *.c *.h | lpr

     Ordinary text
	c2ps note.txt -c -n -u > note.ps

     ISO Latin 1 font reencoding by default
	c2ps -2 -c -n -F Times-Roman german.txt > german.ps

     A different look
	c2ps -F Times-Roman -C Palatino-BoldItalic -K Times-Bold
	     -N Helvetica -P Helvetica-Bold -S Times-Italic
	     -T Times-BoldItalic -_ box -w sample.c > sample.ps

     An option set looking better on low resolution printers
	c2ps -d 0 -C Palatino-Italic main.cc > main.ps

     Partial preprocessing, selective printing
	c2ps -DDEBUG -DSUN_SPECIFIC -UPRINT *.cc | lpr

     Temporarily commented out code (still looks like a part of the code  but  a
     little bit dimmed)
	c2ps -C Courier -d 0.5 temp.c -o temp.ps

     Getting rid of comments
	c2ps -_ box -d 1 main.cc | lpr

     Printing 8-bit text (e.g. Cyrillic, koi-8 encoding)
	c2ps -i -C Antique-Italic -S Antique koi8.cc > tmp
	cat Antique-Italic.pfa Antique.pfa tmp | lpr

	c2ps -i -c -n -F Antique koi8.cc > tmp
	cat Antique.pfa tmp | lpr

	c2ps -X Cyrillic-Italic-koi8 koi8.cc > tmp
	cat Cyrillic-Italic-koi8.ps tmp | lpr

BUGS
     c2ps  is generally quite stable. Howerver, if you encounter any problem us-
     ing it, please, send a report to:

	c2ps@geocities.com

     Last version of c2ps is located at

	http://www.geocities.com/SiliconValley/Park/2055/

SEE ALSO
     enscript, vgrind, troff, pprint, a2ps

ACKNOWLEDGEMENTS
     We would like to thank Prof. Daniel Berry of the Technion	who  has  super-
     vised  this  project  at its beginning for numerous most useful recommenda-
     tions.  Also, we are very thankful for many suggestions, proposals  and  of
     course bug reports that have been received.

AUTHORS
     Dmitri Shtilman
     Dmitri Makarov

				   15 May 1997				 C2PS(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=c2ps&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help