This is the README file for printcal.

Author:

   Adam Stein (adam@scan.mc.xerox.com)

Copyright:

  Copyright (c) 1998-2005  Xerox Corporation.  All Rights Reserved.

  Permission to use, copy, modify  and  distribute  without  charge
  this  software,  documentation, images, etc. is granted, provided
  that this copyright and the author's name is retained.

  A fee may be charged for this program ONLY to recover  costs  for
  distribution  (i.e.  media costs).  No profit can be made on this
  program.

  The author assumes no responsibility for  disasters  (natural  or
  otherwise) as a consequence of use of this software.

Description:

  This program can retrieve appointments from any vCalendar compliant
  program, Sun's Open Windows or CDE desktop calendar manager, merge
  in user-defined holidays, and send a nicely formatted PostScript
  output of a desired month to the printer or a file.

  More information about the vCalendar format can be found at:

  	http://www.imc.org/pdi/

Requirements:

  This program requires Perl 5.8 or higher.  Also required are
  the following Perl modules:
  
  	hostname.pl	(file that usually comes with the Perl distribution)
	Date::Calc      (v5.4 or better)
	Getopt::Std	(file that usually comes with the Perl distribution)
	Locale::Hebrew::Calendar (v0.03 or better)

  The following Perl module is required to deal with vCalendar format:

	iCal::Parser    (v1.06 or better)

  I should warn you that iCal::Parser has a lot of dependencies.  This program
  will still continue to work if iCal::Parser isn't installed, just support
  for vCalendar will not be available.
  
  All external Perl modules can be found at CPAN.

  Pcal (v4.8 or higher) is needed.  Pcal is available at:

	http://pcal.sourceforge.net/

Installation:

  This program has only been tested on Linux (Red Hat 9) and
  Solaris 2.x systems.

  Change the first line in "printcal" to reflect where Perl is installed
  on your system.

  Copy the printcal program to your favorite bin directory.

  Copy the printcal.man file to an appropriate man directory
  (i.e. /usr/local/man/manl/printcal.l).

  Printcal is currently set up to use "lp" for printing (which works
  for Solaris 2.x/7/8 and Linux RH9 systems).  To use "lpr" instead
  (i.e. SunOS), change line 962 to say:

	$printcmd = (defined($$opts{"P"})) ? "| lpr -P $$opts{'P'}" : "| lpr";

Methodology:

  This program works by following these steps:

  I.   Parse the command line arguments.

  II.  Parse the .printcalrc file if one exists in the user's home directory.

  III. Read in external calendar files according to options.

  IV.  Get the calendar appointments from either a vCalendar format file
       for from a calendar manager program:

       a.  For each calendar appointment decide if the appointment is
	   to be:

	   1. included from the list

	   2. excluded from the list

	   3. displayed and the user prompted as to include or exclude
	      this entry

  V.    Generate the calendar and either print and/or save according to options.

Bugs/Additions:

  I would appreciate knowing about any bugs either found or
  fixed and any enhancements made.  I would like to keep a
  centralized version with the upgrades so that there aren't
  50 million different versions.  I can't make any
  guarantees to when bug fixes would be made (if any are
  found :-{), but I'll do my best.

  I hope this program is of use to you, either in it's capacity or as
  an example in Perl programming.

