README file for Xbubblejet 0.2 by Robert Butera (butera@patriot.net) 12-Sept-1998 CONTENTS 1. What is Xbubblejet? 2. Why should I use it? 3. What printers are supported? 4. Where do I get it? 5. What else do I need? 6. How do I install it? 7. How do I use it? 8. ChangeLog 9. TODO List 10. Copyright Issues 1. What is Xbubblejet? Xbubblejet is a graphical user interface (GUI) program that runs under Xwindows that allows individual users on a UNIX system to set their own custom printer settings for the following items: bits per pixel, color/grayscale, low/medium/hi print quality, resolution, and paper type. IT ASSUMES THE FOLLOWING: -> The user is printing postscript files -> The user has a Canon BJC-XXXX printer -> The user is not using any "printfilter" type package (although Xbubblejet could be modified to work with one). It provides two programs: xbubblejet, the GUI program, and canon-filter.pl, a "print filter" (see below), which determines if a file is a postscript file or not. If so, it calls ghostscript for postscript processing with the appropriate print options selected by the user via xbubblejet. 2. Why should I use it? First of all, it allows individual users to customize their own printer settings, without messing up other users. Second, it allows print setting to be changed "on the fly." For example, I may want to print out a draft Latex document in black and white mode at low resolution, then switch to printing out hi-resolution color figures on transparency paper. Xbubblejet allows me to make these changes instantly. 3. What printers are supported? I have developed this using a Canon BJC-4200 BubbleJet printer. I have been told that it also works on other BJC-4XXXX series printers. Since the program makes use of ghostscript and specifies the device driver for a BJC-600, I assume it may work on a variety of other Canon printers as well. 4. Where do I get it? Xbubblejet is available at http://patriot.net/~butera/xbubblejet.html. 5. What else do I need? The Xbubblejet package was developed on a Linux system, however, in theory it should easily work on any UNIX system. It requires the following: - UNIX system running XWindows - Tcl/Tk (I used version 7.4 to develop it, earlier versions may work) - Perl (I use version 4, earlier versions may work) - Ghostscript version 4.X or higher (version 3.X did not support all the color modes consistently) - a printing system that allows a print filter to be specified (typically in /etc/printcap) that processes all files going to the printer 6. How do I install it? 1) place the program xbubblejet in a common directory (like /usr/bin) where all users can run it. 2) specify the print filter in your /etc/printcap file. For example, my /etc/printcap file looks like this: # START printcap file # /etc/printcap # lp:\ :sd=/var/spool/lpd/lp:\ :mx#0:\ :sh:\ :lp=/dev/lp1:\ :if=/var/spool/lpd/lp/canon-filter.pl: # # END printcap file where the "if=" entry specifies the absolute path where the file canon-filter.pl file can be found. I placed it in /var/spool/lpd/lp, since other packages (like RedHat printtool) also store printer configuration files there. 3) (OPTIONAL) once you are used to Xbubblejet, you can copy a system wide file of default options to /etc/canon.ps.options. See the next step for more details. 7. How do I use it? Just run "xbubblejet" Select the printer setting you want, then click on Done. A file named ".canon.ps.options" will be written to your home directory. When you go to print a file, the print filter canon-filter.pl will read this file and setup the ghostscript drive to print your file appropriately. If the user already has a .canon.ps.options file in their home directory, when "xbubblejet" is run this file will be read and the buttons preselected to reflect the current settings. If a .canon.ps.options file does not exist in the user's home directory, the file "/etc/canon.ps.options", if it exists, will be read by xbubblejet upon startup. Likewise, the print filter canon-filter.pl will read the system-wide options file "/etc/canon.ps.options" if the file ".canon.ps.options" does not exist in the user's home directory. 8. ChangeLog version 0.1: initial version version 0.2: - xbubblejet completely rewritten in a more modular readable form - added capability to preset buttons from an existing user or default options file - completely rewrote print filter (now called canon-filter.pl) in Perl. - added ability of print filter to read from a default options file if the user does not have one - fixed a bug in the old version that expanded wild-card characters if they were one of the first two characters of the file to be printed! For example, printing a C source code listing where the first two characters were "/*" caused a directory listing of /home/root to be printed. 9. TODO List Short-Term: integrate with "magicfilter" and/or RedHat PrintTool. It appears that integrating with RedHat PrintTool should not be too hard, and would simply require writing to postscipt.cfg, or somehow allowing a user-specific version of postscript.cfg to exist (maybe PrintTool does this? I don't know, I don't use it!) Long-Term: Think about modularizing xbubblejet into a more general program that has a database of config files for printers by various manufacturers. 10. Copyright Issues Gnu Public License -- go read it at http://www.fsf.org/ If you do modify xbubblejet, I'd like to hear from you! Email me at butera@patriot.net.