********************************************************************* * PrintFiles * * Version 1.4e * * * * Copyright © 1992 by K.Klingbeil * * All rights reserved * ********************************************************************* ********************************************************************* DISCLAIMER The author cannot be held liable for the suitability or accuracy of this manual and/or the program(s) it describes. Any damage directly or indirectly caused by the use or misuse of this manual and/or the program it describes is the sole responsibility of the user her/him self. ********************************************************************* *********************************************************************** WARNING-WARNING-WARNING-WARNING-WARNING-WARNING-WARNING-WARNING-WARNING If you carelessly change the default settings of the printer spooler directory, programs and data may be deleted !!! Read chapter 6 before using the printer spooler directory !!! WARNING-WARNING-WARNING-WARNING-WARNING-WARNING-WARNING-WARNING-WARNING *********************************************************************** ********************************************************************* DISTRIBUTION: PrintFiles, © Copyright 1992,1993 K.Klingbeil. All rights reserved. This Program is FREEWARE so no financial donations are required ( but welcome ). This program may be freely distributed as long as all source code, documentation and executable remain unchanged and are included with the distribution. ********************************************************************* * Contents of this manual * ********************************************************************* 1. Introduction 2. Installation 2.1 Requirements 2.2 Installation 3. Quickstart 4. How to use PrintFiles 4.1. The printer icon 4.2. The control window 4.2.1 open the control window 4.2.2 close the control window 4.2.3 the settings of the control window 4.3. The prefs window 4.3.1 open the prefs window 4.3.2 close the prefs window 4.3.3 the settings of the prefs window 4.4. The filehandler window 4.4.1 open the filehandler window 4.4.2 close the filehandler window 4.4.3 the settings of the filehandler window 4.5. the replace window 4.5.1 open the replace window 4.5.2 close the replace window 4.5.3 the settings of the replace window 5. The Arexx-Port 5.1. Command summary of the Arexx-Port 6. The Spooler directory 6.1 Usage 7. Starting Printfiles 7.1. Usage from CLI/Shell 7.2. Usage from Workbench 8. Notes ********************************************************************* * 1. Introduction * ********************************************************************* PrintFiles is designed to replace the Printfiles-command distributed with your Workbench disk. Unlike the original printfiles it is more user-friendly and offers you much more possibilities , e.g. Headlines, date,time... The features are: - Printer Icon on the Workbench. To print a File simply drag its icon onto the printer icon. - A print list of unlimited size. - Files are also inserted into the print list by dragging their icons into the control window. - every file in the list may have its own printer settings - You can print headlines, baselines, date, time, filename, page numbers and line numbers. - You can set your printer to draft/lq quality. - Arexx-Port gives you full control over Printfiles. - Saves its preferences as Arexx-Scripts # - Saves Icons for Arexx-Scripts which are prepared to be executed by double-clickicng them. - Prints Icon Images - Passes filenames to external programs for other purposes than printing - Output can be directed to the printer or into a file Try it ! ********************************************************************* * 2. Installation * ********************************************************************* 2.1 Requirements Printfiles runs only under OS 2.04 with system libraries V37+. Printfiles uses only about 70K memory so that it will run even on 512K Amigas. Harddisk and/or additional memory are not required, but (always) useful. 2.2 Installation Printfiles needs no complex installation procedures. Just copy the program into your c: or WBStartup directory. If you want to use the Arexx-Port of Printfiles, be sure that the RexxMaster Process is running before you attempt to run Printfiles. Printfiles will not work if the Workbench is closed, so be sure that you start PrintFiles after the LoadWB command. NOTE: PrintFiles cannot be started twice ! To start Printfiles automatically at Startup you can: a. add the line 'PrintFiles' to the File s:user-startup b. copy Printfiles into the WBStartup Drawer. In this case you may add the ToolType DONOTWAIT to the PrintFiles icon. c. copy a Printfiles-generated Arexx-Script (with Icon !) into the WBStartup drawer. This is the easiest way to bring up the program with your desired settings. ********************************************************************* * 3. Quickstart * ********************************************************************* This chapter gives you an example how to use Printfiles. Step 1 . Turn your printer on. Step 2 . Doubleclick the Printfies icon or type 'PrintFiles'[return] into a shell window Step 3 . Now you have an additional printer icon on the Workbench Step 4 . Drag the icon of this .doc File on the Printer icon and it will be printed. Step 5 . Open the control window by double-clicking on the printer icon. Step 6 . Now You see the control window with the print list in the center of the window Step 7 . Drag more icons on the printer icon or into the control window to insert them into the print list. you can also insert files by typing the names into the StringGadget under the list. To select files from a Filerequester click the Request-Button. Step 8 . Select some buttons, e.g. Date,Time ... Step 9 . Click the Print-button and the whole list will be printed. Step 10. After the print select the quit-button or the Close-Gadget of the window. A requester will appear. Step 11. Select the quit-button of the Requester. ********************************************************************* * 4. How to use Printfiles * ********************************************************************* The main Element in PrintFiles is the print list. The main operation in PrintFiles is to insert filenames into this list and print a list. You can insert names in several ways: At Startup by the commandline or selected icons, by dragging icons onto the printer icon or into the control window, by using FileRequster or the Arexx-Port. Filenames can be passed to other programs (sorted by the Type of the File) You can e.g. pass an IFF-ILBM File to a display program or execute script files by dragging their icon onto the printer icon. 4.1 The printer icon PrintFiles adds a printer icon to the workbench. You can insert files by dragging icons onto the printer icon. If the control window is closed, this files are printed immediately. If the window is open, they are added at the end of the list. 4.2 The control window This window contains all settings for the printer. It can be opened or closed as you like and it remembers its position on re-opening. NOTE: If you use a NTSC-machine check chapter 2.1 ! 4.2.1 Opening the control window The window is normally closed at startup. You can open it a. at startup (see also chapter 6) - from CLI/Shell by using option -w. - from Workbench by using the TOOL TYPE WINDOW=. b. at runtime - by double-clicking on the printer icon. - by selecting the Item 'Printfiles' in the Workbench-Tool-Menu. - by sending the command 'openwindow control ' to the Arexx-Port of Printfiles. (see also chapter 5) 4.2.2 Closing the control window - Double-click on the printer icon - Select the Item 'Printfiles' in the Workbench-Tool-Menu. - Send the command 'closewindow control' to the Arexx-Port of Printfiles. (see also chapter 5) ********************************************************************* * 5. Settings * ********************************************************************* The setting of the control window are ( top down ): -Prefs AREXX : openwindow prefs opens the printer preferences window at -filehandler AREXX : openwindow handler opens the filehandler window -Replace AREXX : openwindow replace opens the replace window -about AREXX : version Displays a requester containing the version number -Button date/Time/File AREXX : date on/off time on/off file on/off CLI : -d -t -n TOOL TYPE: FLAGS=d FLAGS=t FLAGS=n If one of these buttons is checked, additional headline with the requested information is generated. -Stringgadget headline/footline AREXX : headline [...] sets headline string footline [...] sets footline string TOOL TYPE: headline=[...] footline=[...] If a string is set, it will be printed on the top/foot of each page. -Pagenumbers AREXX : page on/off CLI : -p TOOL TYPE: FLAG=p If checked, the string *** Page: xxxxx *** will be printed on the foot of each page. Additionally, at the end of a file the count of pages of this file is printed. -LineNumbers AREXX : line on/off CLI : -l TOOL TYPE: FLAGS=l If checked, each line will have a number. -FF/Page AREXX : fpage CLI : -c TOOL TYPE: FLAGS=c If checked, printfiles generates a form feed after each page. -Form Feed AREXX : ff on/off CLI : -f TOOL TYPE: FLAGS=f If checked, a Form Feed is printed after each file. -Replace AREXX : replace on/off if checked, text replace commands in the file are executed -File List Displays the current file list. Every file in the list may have its own printer preferences; these are the current (visible) settings of the Control window (and the printer related parts of the prefs window) as they are when you insert the file into the list. If you want to edit the settings of a certain file, click onto its name in the file list and the settings of that file become the current settings. You may now change them and re-insert the file by activating the string gadget that holds the name and pressing the ENTER button on the keyboard. NOTE: If you don't re-insert the file, the changes will not be executed. -Request Displays a FileRequester and adds the choosen file to the list. -Remove AREXX : remfile remfile If you click onto a filename in the list, this file will be displayed in the stringgadget beneath the remove-button. If you then click this button, the file is removed from the list. If the stringgadgets contains no name, the last file of the list is removed. -Print AREXX : print Begins printing the list. While Printing, this gadget is disabled. You can perform all other functions like adding files, removing files and so on. All changes are immediately recognized. NOTE: It depends on the size of the printer buffer how fast the changes will appear on the paper ! -Quit (and CloseGadget of the window) AREXX : quit If the program is currently printing it will request you to abort or continue the print. If the program is not printing it will request you to quit the program or to close the window (see chapter 4.2.1 and 4.2.2) NOTE: the Arexx command will not display a requester ! 4.3. The Prefs Window 4.3.2 Opening the prefs window - click the 'Prefs' button in the control window - send the 'openwindow prefs ' command to the Arexx-Port. 4.3.3 Closing the prefs window - click the closegadget of the prefs window - send the 'closewindow prefs' command to the Arexx-Port. 4.3.3 Settings of the prefs Window -button Draft/Lq AREXX : draft lq TOOL TYPE : FLAGS=a FLAGS=q CLI : -a -q Set the print quality to draft or lq -button 6 lines/inch 8 lines/inch. AREXX : 6li 6li TOOL TYPE : FLAGS=6 FLAGS=8 CLI : -6 -8 Set the spacing to 1/6 inch or 1/8 inch. -button 10cpi/12cpi/15cpi AREXX : 10cpi 12cpi 15cpi TOOL TYPE : FLAGS=0 FLAGS=2 FLAGS=5 CLI : -0 -2 -5 Set the pitch to Normal (10cpi) / Elite (12cpi) / condensed (15cpi). -stringgadget Lines/page AREXX : lines TOOL TYPE : LINES= Print lines on each page. -stringgadget Left Margin AREXX : lmargin TOOL TYPE : LMARGIN= Set the left margin to column -stringgadget Right Margin AREXX : rmargin TOOL TYPE : RMARGIN= Set the right margin to column -button Print same as Print-button in the control window. -------------------------------------------------- the following gadgets are to choose, which information will be saved as an Arexx-Script. the flags are for the saveprefs-command (in the Arexx-chapter) -------------------------------------------------- - Comments adds comments to the arexx script flag : '-c' turns this option on flag : '-C' turns this option off - Files adds the filenames of the print list flag : '-f' on flag : '-F' off - Windows adds openwindow commands for all windows flag : '-w' on flag : '-W' off - Start adds a startup code which tries to launch the PrintFiles program if it isn't already running flag : '-s' on flag : '-S' off - Reset adds a Reset command flag : '-r' on flag : '-R' off - Print adds a print command flag : '-p' on flag : '-P' off - Icon saves an Icon flag : '-i' on flag : '-I' off - Printer saves the settings of the control window (except the file list), the print Quality, the lines/inch, the CPI, and margin settings of the prefs window. NOTE: the Head- and Footline will not be saved until the H/F Arexx button is checked. flag : '-d' on flag : '-D' off - Handler saves the settings of the FileHandler window flag : '-h' on flag : '-H' off - Extras & AREXX saves the settings of the ARexx-buttons and the default paths of the File- and SaveRequester flag : '-e' on flag : '-E' off - Head/Footline saves the current Head/Footline NOTE: only if the 'Printer' button (AREXX-button) is checked. flag : '-l' on flag : '-L' off - Printer -------------------------------------------------- -button Save AREXX : saveprefs <-flags> Saves the current setting as an Arexx-Script. flags are (see above) -cfwsrpildeh 4.4 the Filehandler Window 4.4.1. Open the filehandler window - select the Item 'Printfiles Filehandler window' in the Workbench-Tool-Menu. - press the button 'FileHandler' in the control window. - send the command 'openwindow handler ' to the Arexx-Port of Printfiles. 4.4.2 Closing the control window - Select the Item 'Printfiles filehandler window' in the Workbench-Tool-Menu. - Send the command 'closewindow handler ' to the Arexx-Port of Printfiles. 4.4.3 The settings of the Filehandler window - The Files (of the print list) are divided into 4 groups: - text - icon - prog - iff Each of these groups has a button 'Intern' and 'To Program->' and a corresponding command line. 'Intern' means that a file of the corresponding type will be processed by the PrintFiles program. 'To Program->' means that a command line is build from the string gadget content followed by the name of the file. This command line will be passed to the Shell. Example: Imagine that you have a text files 's:startup-sequence' in your print list. If text is 'Intern' this file will be printed out using the control- and prefs window settings. If text is 'To Program->' and the command line contains 'type >con:0/0/640/200/PrintFiles/AUTO/WAIT/CLOSE' this file (and all other text files) will be printed into a console window on the screen. Since IFF-Files can be of different types (ILBM,ANIM...)you can have a command line for every IFF-type. These lines are kept in the IFF-ID list. Example: Imagine that you have a file 'work:dpaint/picture/KingTut.ham' in the print list. If IFF is 'Intern', the file is (yet) igonred. If IFF is 'To Program->' and the IFF-ID List contains the line 'ILBM sys:utilities/display' the file (and all other IFF-ILBM Files) is passed to the display program which will show the picture on the screen. (got a graphics print program ?) You can insert any IFF Form Chunk into this list, e.g - 8SVX for sample voices - ANIM for animations - VDEO for Deluxe-Video animations and so on ... - Output Printer/File Select Output to Printer or to a file which name is built from the name in the string gadget followed by an index number Example: if you have selected the output file name t:prf, the printed files will be named t:prf.0, t:prf.1, t:prf.2 ... 4.5. The Replace Window 4.5.2 Opening the replace window - click the (upper) 'Replace' button in the control window - send the 'openwindow replace ' command to the Arexx-Port. 4.5.3 Closing the replace window - click the closegadget of the replace window - send the 'closewindow replace' command to the Arexx-Port. 4.5.3 Settings of the replace Window there are only 3 items in the replace window. - prefix - command list - remove button this items are described in the chapter "Arexx-Port" - prefix - insertreplace - removereplace ********************************************************************* * 5. The Arexx-Port * ********************************************************************* The Arexx-port of Printfiles is named 'PRINTFILES' 5.1. Command summary - clear Returns : nothing Arguments : none Clears the print list. - closewindow Returns : nothing Arguments : control // close control window prefs // close prefs window handler // close FileHandler window replace // close the replace window Closes the specified window. If the window is currently closed, the command is ignored. - date Returns : nothing Arguments : on or off sets/clears the date-button - draft Returns : nothing Arguments : none Sets the printer to draft mode. - file Returns : nothing Arguments : on or off sets/clears the filename-button. - ff Returns: none Arguments : on or off sets/clears the FormFeed-button. - fpage Returns : nothing Arguments : on or off sets/clears the button FF/Page - footline Returns : nothing Arguments : string Sets the footline string. - headline Returns : nothing Arguments : string Sets the headline string. - header Returns : nothing Arguments : on or off determines whether control codes are sent to the printer or not - icon return : nothing Arguments : string determines the print mode for icons none : Icons are ignored text : print a text info (similar to the workbench info command) image : print Image (if your printer is able to print graphics) all : print both text and image - insertiff Returns : nothing Arguments : string inserts a command line at the end of the IFF-ID List. e.g. insertiff 'ILBM sys:utilties/display' - insertreplace returns : nothing Arguments : strings NOTE: see also the 'replace' command defines a and a . If the string is found in the file (and ->replace is on), it will be removed and replaced by the Note: all commands MUST start with the same character, which determined by the 'prefix' Arexx-Command. The command is always a single word with no white spaces, and the replacement is the string (can be more than a word) that comes after the command word (separated by at least one white space character). Example: prefix is '\' (Backslash) insertreplace 'command will be replaced' If your file contains the word \command (with backslash) this word will be replaced by the string 'will be replaced' (of course without the quotes). within a macro you can determine some special replacements, all of which begin with an '_' (Underscore). This commands are case dependant ! _PPage evaluates to the current page number _NPage evaluates to the total number of pages of this file NOTE: this two commands are only useful in the head- or footline strings. Used within a file leads to unpredictable results! _FFull evaluates to the full filename (including path) _FFile evaluates to the filename _FPath evaluates to the pathname _Mon evaluates to the month number (1..12) _Day evaluates to the day (1..31) _Year evaluates to the year (two digits, e.g. 93) _MNameD monthname in german _MNameE monthname in english _MNameF monthname in french _MNameS monthname in spanish _WDayD dayname in german _WDayE dayname in english _WDayF dayname in french _WDayS dayname in spanish _H24 hour (24-hour format) _H12 hour (12-hour format) _AP evaluates to 'AM' or 'PM' depending on the time _Min minute _Sec second NOTE: the macros concerning the time are evaluated during printing. _ESC evaluates to the ESC character _CTRLevaluates to control character number _CTRL27 = _ESC _CTRL32 = white space character NOTE: Do not use _CTRL0, use _NULL instead _NULL Null Byte Examples: 1: assume the prefix is '\' (Backslash) and a command is 'date WDayE ,_MNameE _Day, 19_Year at _H12:_Min:_Sec _AP' then every occurence of the command \date in your file will evaluate to the date and time of printing, for example Sunday, April 11, 1993 at 1:30:00 PM when you are printing the file at this time. 2: To set your printer to proportional spacing (if it supports this) make two commands 'prop_on _ESC[2p' 'prop_off _ESC[1p' and type the commands \prop_on and \prop_off into your files wherever you want. These commands are then replaced into the invisible control codes. Note: the control codes in this example are codes that are interpreted by the printer device itself. Note that the printer device cuts out codes that it doesn't understand. So if you have to send such codes, use the printer device command which sends a number of bytes unchanged to the printer. Example: Set an EpsonLQ printer to script typeface 'script _ESC[3"r_ESCk_CTRL1' in which _ESC[3"r is the command that passes the next 3 bytes unchanged to the printer. To reset to the normal (roman) typeface, use 'roman _ESC[3"r_ESCk_NULL' Note that _NULL is used to send a null byte to the printer. - insfile Returns : nothing Arguments : filename Adds the to the print list - line Returns : nothing Arguments : on or off sets/clears the LineNumber-button. - lines Returns : nothing Arguments : number lines per page will be printed. - lmargin Returns : nothing Arguments : number Sets the left margin to column # - lq Returns : nothing Arguments : none Sets the printer to NLQ mode. - openwindow Returns : nothing Arguments : control //open the control window prefs //open the prefs window handler //open the Filehandler window replace //open the replace window number number Opens the specified window at . If the edges doesn't fit on the screen the window will be adjusted, e.g. 'openwindow control 10000 10000' will place the window in the right bottom edge of the screen. If no numbers are given, the window will be opened on the position where it was closed. if the window is already open, the command is ignored. - output > Returns : nothing Arguments : keyword printer or a filename sends the output to the printer or into the file - page Returns : nothing Arguments : on or off sets/clears the Pagenumber-button. - pass > Returns : nothing Arguments : keywords text,prog,icon,iff,intern,on string line passes filenames of a given type to other programs Examples: 'pass text intern' : text files are processed by the PrintFiles program. 'pass text on' : a command line is build from the (existing) line and the filename. the command line is then passed to the shell. 'pass text type >con:0/0/640/200/Printfiles/AUTO/WAIT/CLOSE' : a command line is build and text files will be passed to the shell using this line. Note: the IFF button allows only the keywords 'intern' and 'on' Connections to other files are build using the IFF-ID List. - prefix Returns : nothing Arguments : single character determines the single character that introduces a text replace command. Default is '\' (Backslash). For performance reasons, use a character that does appear only as a prefix in your files. - print Returns : nothing Arguments : none Starts printing the list. - prog return : nothing Arguments : string determines the print mode for program files none : ignore programs text : print a TextInfo (similar to the shell command list) icon : print the icon (if the program has one) in the selected print mode for icons. all : print both text and icon - remfile Returns: "NOT-IN-LIST" if the filename isn't in the list "LIST_EMPTY" if the list was empty "" o.k. Arguments : filename Removes the file from the list. if no filename is given the last file of the list is removed. - removeiff Returns : nothing Arguments : string deletes a command line from the IFF-ID List. e.g. removeiff 'ILBM sys:utilties/display' if no line is given, the last item of the list is deleted. - removereplace Returns : nothing Arguments : string removes the from the text replace list - replace Returns : nothing Arguments : on or off if replace is 'on' the file is searched for commands to replace, if replace is 'off', even text replacement commands fo unchanged to the printer. - replyport Returns : nothing Arguments : string Every time a list is fully printed, the port with the name is signaled. NOTE: it is important to reply the message immediately without examining it; it contains no valid data !. - reset Returns : nothing Arguments : none Clears all buttons, clears the list and sets the printer to draft mode. - rmargin Returns : nothing Arguments : number Sets the right margin to column # - saveprefs <-flags> Returns : nothing Arguments : strings if a filename is given, the current settings are saved as an Arexx-script. The flags are described in -chapter 4.3.3 Save- - status Returns : "PRINTING" if Printfiles is currently printing "WAITING" if PrintFiles isn't printing Arguments : none - time Returns: none Arguments : on or off sets/clears the time-button. - quit Returns : nothing Arguments : none if PrintFiles is currently printing, the print will be aborted. if PrintFiles isn't printing, the program will be quit. NOTE: No requesters are displayed ! - version Returns : Version string (e.g. "Version 0.9e") Arguments : none ********************************************************************* * 6. The spooler directory * ********************************************************************* 6.1 Usage At startup, PrintFiles creates a directory ram:printer and gives it the device name PRINTER: All files that are copied into this directory will be inserted into the print list. If the control window is closed, the list will be printed. ********************************************************************** CAUTION- CAUTION- CAUTION- CAUTION- CAUTION- CAUTION- CAUTION- CAUTION After they are printed, the F I L E S in the PRINTER: directory W I L L B E D E L E T E D !!!! If you re-assign the name PRINTER: to an existing directory, the files in it will be lost !!! IT IS STRONGLY RECOMMENDED THAT YOU DO NOT RE-ASSIGN THE NAME PRINTER: TO ANY OTHER DIRECTORY THAN THE RAM:PRINTER DIRECTORY WHICH IS CREATED BY PRINTFILES !!! CAUTION- CAUTION- CAUTION- CAUTION- CAUTION- CAUTION- CAUTION- CAUTION ********************************************************************** When you quit PrintFiles, the PRINTER: directory is scanned for new files. If there are any, they will be printed out before quitting. ********************************************************************* * 7. Starting PrintFiles * ********************************************************************* Printfiles loads the file s:printfiles.config at startup. This is a plain ascii file containing valid PrintFiles Arexx-Commands. It can (and should) be file generated by PrintFiles itself via the ->saveprevs command. 7.1. Usage from Shell/CLI printfiles - file file .... There is no need to 'run' Printfiles. The following flags are supported: -t sets the time-button -f sets the formfeed-button -n sets the filename-button -d sets the date-button -p sets the pagenumber-button -l sets the linenumber-button -c sets the CR/LF-button -a sets the draft-button (Default) -q sets the NLQ-button -w open the control window at startup -0\ -2 > set the print pitch to 10cpi/12cpi/15cpi -5/ -6\ -8/ set the spacing to 1/6 inch or 1/8 inch The flags can be given as single (e.g. printfiles -w -p -f) or grouped (e.g. printfiles -wpf) All names without hyphen are treated as filenames and are added to the print list. If you have specified filenames on the command line, they will be printed immediately after startup. 7.2. Usage from Workbench TOOLTYPES Tool types can consist of all valid PrintFiles Arexx-commands, e.g. headline 'test headline' , page on ... They must be typed into the TOOLTYPE array in the syntax similar to the Printfiles-generated Arexx-files. NOTE: This is not the standard syntax for TOOLTYPES ! You can add files to the list by extended selection with the program icon and file icons. All selected files are added to the print list and will be printed immediately after startup. ********************************************************************* * 8. Notes * ********************************************************************* PrintFiles is Copyright ©1992 K.Klingbeil, All Rights Reserved. There are 2 Versions, 1.4d in german and 1.4e in english. Printfiles first was programmed with SAS/C 5.10b on an A2000/68030 with 1 MB chip memory, 4MB fast memory and A2091 SCSI-Controller with Quantum LPS40 under OS 2.04 (Kick 37.175). For version 1.4 SAS/C 6.0 was used on an Amiga 4000/68040 25 MHZ,2MB chip, 4MB fast memory under Kickstart 39.106, Workbench 39.29. Bug reports, suggestions, criticism, money, jewellery and other gifts to Karlheinz Klingbeil Elzstr. 42 W-7809 Gutach Federal Republic of Germany And now: Enjoy !!! *********************************************************************