
                           MiserPrint V1.15
                           ================

                     ****************************
                     * This program is GIFTWARE *
                     ****************************

                   Written by Heinz-Guenter Boettger
                  GUI created with GadToolsBox V2.0c

              Comments, suggestions, bug reports etc. to
                  hgb@pool.informatik.rwth-aachen.de


0. Important
============

  *********************************************************************
  *       Starting with release V1.11, MiserPrint is 'Giftware'       *
  *                                                                   *
  * If  you like this program and will use it, you should consider to *
  * send  me  a  litte (or big ;-) donation for my work (please don't *
  * send cheques or money orders). If you can't afford to send me any * 
  * donation you can write a picture postcard to                      *
  *                                                                   *
  *                      Heinz-Guenter Boettger                       *
  *                         Roermonder Bahn 5                         *
  *                           41844 Wegberg                           *
  *                              Germany                              *
  *********************************************************************

0.1. Disclaimer
===============
This  software comes with no warranty, either expressed or implied. The
author  is  in no way responsible for any damage or loss that may occur
due  to  direct  or  indirect usage of this software. Use this software
entirely at your own risk.

0.2. Copyright
==============
This   software   is   freely   distributable,  BUT  all  programs  and
documentation are copyright by Heinz-Guenter Boettger.

0.3. Distribution
=================
Permission is given to include this program in a public archive (such as
a BBS, FTP site or PD library (disk and CD-ROM versions)) providing that
all  parts  of  the  original distribution are kept intact. These are as
follows:

    MiserPrint.info
    MiserPrint/MiserPrint
    MiserPrint/MiserPrint.info
    MiserPrint/MiserPrint.doc
    MiserPrint/MiserPrint.doc.info
    MiserPrint/MiserPrint.guide
    MiserPrint/MiserPrint.guide.info
    MiserPrint/Install
    MiserPrint/Install.info
    MiserPrint/MiserPrintPrefs/MiserPrint.prefs
    MiserPrint/MiserPrintPrefs/Manual.prefs
    MiserPrint/MiserPrintPrefs/Listing.prefs
    MiserPrint/Icons.info
    MiserPrint/Icons/MiserPrint_DG.info
    MiserPrint/Icons/MiserPrint_PP.info
    MiserPrint/MiserPrint1_15.Product-Info

No charge may be made for this program, other than a reasonable copying
fee,  and/or  the  price of the media. This fee _must not_ be more than
US $3 or DM 4 for floppy disks and US 35$ or DM 50 for CD-ROMs.

Finally  if  you  wish to include MiserPrint on a disk magazine you are
REQUIRED  to  get  the  author's  permission  FIRST.  Usually this will
require  you  to  just  send  me  a  copy  of  the issue which contains
MiserPrint free of charge.

This program may not be included or used in commercial programs unless
by written permission from the author.

1. Requirements
===============
MiserPrint requires

- an Amiga with Kickstart V37 or higher
- any printer that is _compatible_ to a Hewlett-Packard Deskjet 500

The  program  should work fine with the Hewlett-Packard Deskjet series
and compatible printers too (e.g. PCL-printers or other ink-jets).

I have tested MiserPrint with a HP Deskjet 500.

2. Installation
===============
To install MiserPrint
    - copy 'MiserPrint' to your utilities directory
    - copy the 'MiserPrintPrefs' directory
    - set the environment variable 'MiserPrintPrefsPath' to that
      directory (the full path with 'MiserPrintPrefs'!, don't forget
      to copy it to envarc:)
      
or 
    -click the Install icon.

Denis  Galiana  and Peter Popanda sent me some icons. You can find them
in the 'Icons' drawer.

3. Introduction
===============
MiserPrint is a print utility that puts up to 8 normal pages of text on
one  sheet  of  paper.  You are able to save paper and time. MiserPrint
uses  the  small  built-in  fonts  (Courier  and  Letter Gothic) of the
HP-Deskjet or compatible printers.

4. Using MiserPrint
===================
MiserPrint  can  be  started  from a CLI or from the Workbench. When the
program  starts  up,  the default values are set and MiserPrint.prefs is
read.  After  that  the  commandline  arguments  or  the  tool types are
evaluated and the main window is opened.

MiserPrint  tries to add an AppWindow if you are running the Workbench.
An  AppIcon  is  also  available (see ICONIFY in the CLI section or the
'Iconify' command in the project menu).

4.1. CLI
--------
To  start  MiserPrint  from CLI simply type its name and the parameters
you  need.  You  can  use '?' to get the template. The program uses the
defaults and the command line options override them.

Template:   FILE,ICONIFY/S,USLEGAL/S,USLETTER/S,BLOCK/K/N,COURIER/S,
            LPI/K/N,PFF=PERMITFF/S,PESC=PERMITESC/S,DRAFT/S,
            LQB=LQBOLD/S,DOUBLE/K,HEADER/K,FOOTER/K,SEPERATE/K,
            BN=BLOCKNUMBER/K,TAB/K/N,TO/K,PREFS/K,PT=PRINTERTYPE/K,
            ICONX/K/N,ICONY/K/N,WINDOWX/K/N,WINDOWY/K/N,PUBSCREEN/K,
            PRTBUF/K/N

Most  of  them  are  switches,  which  are  explained  in the `Gadgets'
section.

    FILE
        The file that you want to print.

    ICONIFY
        The  main window is not opened, only an appicon is displayed on
        the  workbench.  Doubleclick  it and the main window is opened.
        Drop  another  icon  on top of it, the window is opened and you
        get the new filename in the string gadget.

    BLOCK <n>
        n must be 1, 2 or 4.

    LPI <n>
        n must be a number between 8 and 16.

    DOUBLE (ON|OFF)
    HEADER (ON|OFF)
    FOOTER (ON|OFF)
    SEPERATE (ON|OFF)
    BLOCKNUMBER (ON|OFF)
        These  flags must be set to ON or OFF. The format of the header
        and the footer can be changed in the string gadget of the GUI.

    TAB <n>
        n must be a number between 1 and 10.

    TO <filename>
        The filename must be a valid AmigaDOS one.

    PREFS <filename>
        The filename must include the full path.
    
    PRINTERTYPE (HP_DESKJET|OTHER_INKJET)
        Set the printer type to HP_DESKJET if your printer is a Hewlett
        Packard. The printer takes the sheets from the bottom.
        Other inkjets have a different paper feeding from the top side.
        For  this reason the sequence of printing is wrong and you have
        to change the type to OTHER_INKJET.

    ICONX <ix>
    ICONY <iy>
    WINDOWX <wx>
    WINDOWY <wy>
        The  position  of the the appicon and the main window. The icon
        coordinates  of the commandline or tooltypes parameters and the
        actual position of the window is saved to your prefs file.
    
    PUBSCREEN <name>
        Name  of  public  screen for MiserPrint to open the windows and
        requesters on. Try it eg. with DirOpus...

    PRTBUF <size>
        The size of the printer buffer in 'byte'. The default and mini-
        mum value is 1000 byte. If the buffer is too large you'll get a
        timeout of the printer device.

4.2. Workbench
--------------
The  Workbench tool types for Miserprint are:

    ICONIFY, USLEGAL, USLETTER, BLOCK=<n>, COURIER, LPI=<n>,
    PERMITFF, PERMITESC, DRAFT, LQBOLD, DOUBLE=(ON|OFF),
    HEADER=(ON|OFF), FOOTER=(ON|OFF), SEPERATE=(ON|OFF),
    BLOCKNUMBER=(ON|OFF), TAB=<n>, TO=<filename>, PREFS=<filename>,
    PRINTERTYPE=(HP_DESKJET|OTHER_INKJET), ICONX=<ix>, ICONY=<iy>,
    WINDOWX=<wx>, WINDOWY=<wy>, PUBSCREEN=<name>, PRTBUF=<size>

To start MiserPrint from Workbench
- doubleclick its icon.
- click the text file you wish to print and shift-doubleclick MiserPrint.
- set the project icon of a text to MiserPrint and doubleclick it.

More details are in the `CLI' section.

4.3. Gadgets
------------

The Option Gadgets
------------------

    'Papersize'
        With  this  gadget  you  can select the papersize that is used.
        (DIN  A4  is  the  default,  because it is the standard size in
        Germany.)

    'Block'
        You can choose between three text arrangements:
        - 1x1: one big block
        - 1x2: two blocks, which are formatted in two columns
        - 2x2: four little blocks, normally four normal pages on one sheet

    'Font'
        The HP-Deskjet 500 has two built-in nonproportional fonts:
        - Courier (6 point, 20 cpi)
        - LetterGothic (6 point, 24 cpi)

    'LPI'
        A slider gadget allows you to select the lines per inch between
        8 and 16.

    The  two text gadgets 'Lines' and 'Cols' show you the dimensions of
    one block.
    
    'Select Pages'
        After  a  file  scan  you are able to select the first and last
        page  that  you  want to print. The text gadget below shows the
        first  and last page.
        
        Both  sides  or  only the odd respectively the even ones can be
        selected. !!! Don't blame me if something went wrong. !!!

    'Formfeed'
        If this option is enabled, the text after a formfeed is printed
        on a new block.

    'ESC'
        With  this option you can print some ANSI-ESC-sequences. I have
        implemented  italics,  underline  and  boldface. The others are
        filtered out.

    'Quality'
        Three qualities can be selected:
        - Draft: the fastest print
        - LQ: my favourite mode
        - LQBold: perhaps somebody will use it

    'Double'
        This  option  enables the printing on both sides of the sheets,
        so  that you can print 8 normal pages on one sheet (if block is
        set  to  4).  First  the  even  pagenumbers are printed, then a
        requester invites you to rotate the sheets before the odd pages
        are   printed.  If  your  printout  is  redirected  to  a  file
        MiserPrint  saves  the even pagenumbers to <filename>.1 and the
        odd  ones  to  <filename>.2,  you  must  copy the files in this
        sequence  to par: or ser: for a later printout. Don't copy them
        to prt:!!!

    'Tab'
        The  'getline'  function  of MiserPrint exchanges the tabs with
        the  number  of  spaces  you entered in the tab gadget, because
        MiserPrint  can't  use the tabulators of the printer. Otherwise
        you get a wrong formatted printout.

    'Header'
    'Footer'
        A  header  or  footer  will  be printed on every sheet. You can
        define  the  look of them. It supports some printf- or tex-like
        expressions:

        %f      the filename without the path
        %d1     the current date (15-Sep-93)
        %d2     the current date (15.09.93)
        %d3     the current date (09/15/93)
        %t1     the current time (17:25)
        %t2     the current time (05:25 PM)
        %n      the pagenumber
        %tn     the total number of pages
        \hfill  fills  a  line  with spaces until the line has the full
                length

        Examples:
        
        "%f \hfill %n"
        "%f \hfill %n / %nt"
        "%f \hfill %d1 \hfill %t1 \hfill %n"
        "\hfill - %n - \hfill"
        "\hfill %n"

    'Seperate'
        You  can  print a thin horizontal line between the blocks. This
        option can only be used with the 2x2 blocks.

    'Block #'
        On  the  bottom  of each block the number of this block will be
        printed.

The String Gadgets
------------------

    'Filename'
        You  can  select  a  file  by  clicking  the  getfile  image (a
        filerequester  appears)  or  by  entering  the  filename in the
        string gadget.

    'Port'
        The  cycle  gadget allows you to print directly to your printer
        (your  printer  preferences are used) or to a file. The getfile
        image  and  the  string gadget are only activ when the printout
        to a file is selected.

The Action Gadgets
------------------

    'Edit'
        To  edit  the  file  you  can click this button and the command
        'c:ed <filename>' is executed. You can also set the environment
        variable  EDITOR to your preferable editor. I have done this by
        'setenv EDITOR tools:ed -sticky' to use CygnusEd.
    
    'FileInfo'
        The  file  is  scanned  and a requester shows some informations
        about it.
    
    'Preview'
        A  preview window is opened and the last page is displayed. You
        can  move through the document with the four buttons on the top
        or  with  the  cursor keys. Click the closing gadget or use the
        ESC key to exit the preview.
    
    'Print'
        If this button is clicked, the file will be printed.

    The  'FileInfo'  and 'Print' command can be aborted by clicking the
    closing gadget.

    MiserPrint  doesn't  copy  the  whole file to memory but stores the
    file  positions of the pages in a list. I chose this method to save
    memory.

4.4. Menu
---------

Project
-------

    'Open...'
        This command is used to load an old configuration.

    'Save As...'
        You can save your actual configuration with this command.

    'About'
        Just try it.

    'Iconify'
        The  main  window  is closed and an appicon is displayed on the
        workbench (see `CLI' section).

    'Quit'
        If  you want to exit the program, execute this command or click
        the closing gadget.

Edit
----

    'Reset to defaults'
        My defaults are used.

    'Last Saved'
        Resets the configuration to the last saved one.

    'Restore'
        MiserPrint uses the configuration on startup.

Settings
--------

    'HP Deskjet'
        The  checkmark is set if your printer is a Hewlett Packard. The
        printer takes the sheets from the bottom.
        Other inkjets have a different paper feeding from the top side.
        For  this reason the sequence of printing is wrong and you have
        to toggle the checkmark.

5. Acknowledgments
==================
Thanks to the following people:

- Matt Dillon for DICE.

- Jan  van  den  Baard  for  GadToolsBox,  which  was  used  to  design
  MiserPrint's GUI.

- Stephan Sürken for Text2Guide.

- The  users  of MiserPrint who send me bug reports or suggestions.
  Thanks for your picture postcards, letters and donations.

- Alexander Aulbach for beta testing and some good ideas.

- Denis Galiana and Peter Popanda for beta testing, some ideas and the
  nice icons.

- Peter Simons for mailing me some mungwall and enforcer hits.

6. History
==========

V1.15   Added 'PUBSCREEN' and 'PRTBUF' options.
        
        MiserPrint reads the environment variable 'MiserPrintPrefsPath'
        to find the preferences files.

V1.14   The 'PREFS' Workbench tooltype didn't work correctly.
        (bug report: Mark Gotz)
        
        Changed  the NewLookMenu handling. Menu background and text had
        the same color under some circumstances (both 2.x and 3.x).
        (bug report: Anthony J. Moringello and Rolf Damm)
        
        The  total number of pages '%tn' are available in the header or
        footer string.
        (suggestion: Frank Tischendorf) 

V1.13   Did you ever want to print only the even or odd pages?
        (suggestion: Denis Galiana and Peter Popanda)

        Modified the print functions and added the printer type option.
        (suggestion: Peter Popanda)

        Replaced a command that caused trouble with non-HP-printers.

        Some minor modifications.

V1.12   The  last  line of text wasn't printed if there was only an EOF
        and no linefeed in this line.
        (bug report: Robert Hamberger)

        After the printer has finished printing it is reseted.
        (suggestion: Tom Duncan)

        Added AppWindow and AppIcon.
        (suggestion: Denis Galiana)

        Fixed a bug in my memory allocation function.

        Added IconX, IconY, WindowX and WindowY.

V1.11   Removed the 'NOGUI' switch in the CLI. Has anybody used it?
        
        I found a bug in the IFF read function and removed it.

        There were one mungwall and two enforcer hits in a beta version.
        (bug report: Peter Simons)

V1.10   NOT RELEASED!

        Removed the 'Really quit MiserPrint?' requester.
    
        I  forgot  to  take an empty page of paper, if you selected the
        double  mode  and  there  was  an odd number of pages. For this
        reason the sequence of the printout was wrong.
        (bug report: Ulrich Zukowski)
        
        If  you  click  the  formfeed or double gadget the file will be
        scanned the next time again.
        (bug report and suggestion: Ulrich Zukowski)
        
        MiserPrint  uses the 'printer.device'. There is a timeout, e.g.
        if your printer is offline or out of paper. You are able to use
        a printer spooler.
        (suggestion: Alexander Aulbach)
        
        I  changed  the  print  functions,  so  that  you  can abort it
        quicker.
        
        The ANSI-ESC-sequence "<esc>[0m" selects the normal font.
        (suggestion: Ulrich Zukowski)
        
        Have  you ever tried to print some underlined lines? The result
        wasn't nice. I corrected these functions.
        
        Now you can print a footer.
        (suggestion: Denis Galiana)
        
        MiserPrint stores its data in an IFF file, but it reads the old
        configuration files too.
        
        You are able to choose the pages you want to (re)print.
        (suggestion: Denis Galiana)

        A  horizontal  seperation line and the number of each block can
        be printed.
        (suggestion: Marcel Duruflé)

V1.01   There was a bug in the requester of the doublesided printout.
        (bug report: Alexander Aulbach and Ulrich Zukowski)

V1.0    First release.
