Acrophobia Version 3.1

Acrophobia Version 3.1

$Id: readme.xml,v 1.5.4.1 2005/01/27 18:56:12 jdaskew Exp $


Purpose

Acrophobia is a Linux-based network PDF printer. Acrophobia appears as a standard network printer. Any jobs printed to the Acrophobia 'printer' are converted to PDF and sent via e-mail back to the originating user.

Background

Acrophobia is a project of the Linux SIG of LawNet, an association of legal technology professionals. This project was created in order to demonstrate the usefulness of open source technology within the law-firm environment.

Acrophobia has historically been, for all intents and purposes, an appliance – a dedicated PDF print server. The focus of the project has been reliability and ease of setup for those new to Linux. Acrophobia’s configuration routine automates the configuration of Samba and Sendmail, with the assumption that the box is dedicated to Acrophobia. The configuration may be incompatible with other uses of Samba and/or sendmail.

Warning

Do not configure acrophobia on a box that is being used for other applications (Unless you know what you are doing).

Requirements

  • A dedicated box (see above)

  • Linux (Fedora Core 1,2 and 3 have been tested)

  • Python 2.3

  • Samba 3.03 or higher (config must be in /etc/samba)

  • Sendmail (config must be in /etc/mail)

  • Ghostscript

  • OpenLDAP clients (if you wish to use LDAP)

Linux Installation

  1. Get Fedora Core 3 Linux. You can get the FC3 iso files from: http://mirrors.kernel.org/fedora/core/ or via Bit Torrent. To use Bit Torrent, download and install the bittorrent software (http://bitconjurer.org/BitTorrent/download.html) then use the link at http://torrent.dulug.duke.edu/ to start the download (the link you want is "heidelberg-binary-i386-iso".)

  2. If you are starting with a blank machine, go into the BIOS and set the clock to the current UTC time (Greenwich Mean Time).

  3. Insert Fedora Core 3 disc #1 and boot the CD. Follow the prompts

  4. Install as a "Server" (as opposed to "Workstation", "Laptop", etc.)

  5. When you get to the timezone screen, select your timezone and be sure to check the "System clock uses UTC" box if your BIOS clock has indeed been set to UTC time.

  6. At the firewall screen, open the following ports: 137:udp,138:udp,139:tcp,445:tcp

  7. Add the following Packages: X-Windows, Gnome Desktop, Graphical Internet, Mail Server and System Tools

Installation

  1. Install the Acrophobia RPM. The latest version is available on Sourceforge (http://acrophobia.sourceforge.net)

  2. Stop Samba (if running) by typing service smb stop

  3. Run ePDFconf.sh as instructed. Read the descriptions for each configuration item carefully. You will receive a confirmation prompt prior to any changes being made to any files. ePDFconf.sh can always be re-run if you want to change your answers to any of the questions. Do read the log that accompanies each set of files changes - it details everything that was done. All files are backed up with numbered extensions, so you can always go back.

  4. Make sure that the appropriate ports are open for Samba. Firewall configuration can be accessed from the "Applications" menu, System Settings, Security Level. Ensure that the following ports are open: 137:udp,138:udp,139:tcp,445:tcp. If you make changes to the firewall, be sure to restart it either by rebooting or running service iptables restart

  5. Start samba by typing service smb start. Optionally, you can run testparm first to see if smb.conf is OK.

  6. If you haven’t already set up the NT password hashes for root, do it now by typing smbpasswd -a root and then enter the root password at the prompt.

  7. Ensure that Samba is set to start automatically when the server boots. Type chkconfig smb on

Printer Setup

Initially, there will not be any print shares on the Acrophobia server. Print shares must be added before users can produce PDF files. Print shares are added via the "Add Printer Wizard" from a Windows "machine. These instructions are written for a Windows XP machine. Other versions may differ slightly.

  1. Browse to the print$ share of the acrophobia server. This is a hidden share, so you'll have to type it in explicitly (Start | Run | \\acrophobia\print$).

  2. Double click the addprinter.cmd file and then enter your root password to run the add printer wizard.

    Note

    If you have changed your machine's hostname since installing Acrophobia, addprinter.cmd may fail because it still refers to the old name. You can correct this by re-running ePDFconf.sh or simply editing addprinter.cmd and updating the server name.

  3. Accept the default for the printer port (Samba Port).

  4. When prompted for the printer type and driver, choose "GhostScript" as the printer manufacturer and "GhostPDF" as the printer model. If this is the first printer you are installing on this box, the driver will need to be added.

    1. Click on "Have Disk" and browse to the print$ share (\\acrophobia\print$) and select ghostpdf.inf.

    2. Click through any "Unsigned Driver" warnings. If you are prompted to insert a driver disk, click OK and then point the wizard (again) to your print$ share. On subsequent installations, the driver will already be available. Just keep the existing driver.

  5. Name the printer anything you want (e.g. PDF Printer).

  6. Be sure to "share" the printer (the default is "Do not share"). Name the share anything you want.

    Be sure to share!

    If you are not given the option to share the printer, beware. If your Windows XP machine is not itself configured for sharing, it will not permit you to share the printer you are configuring - even though you are adding a printer to the server!!! You'll need to either configure the XP machine for sharing (i.e. enable the guest account temporarily or alter the local security policy) or use another computer that is. I have had reports that Windows 2000 exhibits similar behavior.

  7. The "Printer Location" and "Printer Comment" fields can be used according to your needs. Note that the Printer Comment field may be used to pass certain parameters to Acrophobia. Parameters are enclosed in square brackets (e.g. [debug]). Please avoid using square brackets within the Printer Comment unless you intend to pass a parameter.

    1. If "[debug]" is found in the Printer Comment, Acrophobia will output detailed information to the samba log files (/var/log/samba/machine-name)

    2. The "[batch=share]" keyword is used to set up a batch printer. See below.

  8. When you click Finish, several driver files will be copied to the samba box.

    Troubleshooting Note

    If you receive an error at this point, It is possible that that the password hash for root was not set up properly. Please verify that you performed step #6 in Installation (above)

    Another Troubleshooting Note

    Another possibilty for receiving an error at this point was that you did not "share" the printer you just set up. This can occur either because you clicked through the sharing dialog, or because Windows didn't display it (see Be sure to share! above.)

  9. Do NOT try to open or add the newly installed printer to your machine (yet). Since Samba/Linux cannot execute the driver code, the default devmode for the printer is not setup - installing the printer or opening the property pages may crash your machine. The default devmode needs to be set first. Read on. Note, if you did install the printer on your machine, simply delete it – it's just a shortcut to the real printer.

  10. Browse to the print$ share again (or refresh your current explorer window). You should see a new file named config-<printershare>.cmd. Double click this file and enter your root password to launch the printer configuration dialog.

  11. When the property dialog pops up, click the "Printing Defaults" button. Do NOT switch over to the General tab and select Printing Preferences from there - the resulting dialog box may look the same, but it won't achieve the desired results.

  12. Set any defaults you would like in the printing defaults page. Click the "Advanced" button and expand the PostScript options tree. Set the PostScript Output Option to "Optimize for portability". Note that you MUST change at least one setting in order to initialize the devmode. If necessary, you can change a setting, save it, and then change it back to its original value.

  13. Click OK or Save until you've cleared out all of the dialogs.

  14. Now you can browse to your acrophobia server (e.g. \\acrophobia) and point-n-print (i.e. double click the printer you just installed) to install the printer on your machine. Note that I have observed Samba 3.0.3 segfaulting at this stage. This appears to be related to queue polling. You probably won't notice unless you are watching the logs - it seems like a momentary hiccup at the client machine. Hopefully this is fixed in Fedora Core 3. I have not observed this occurring during printing or any other operation that a user would notice. It appears to just be a minor annoyance at this point.

  15. At this stage you should be able to print (test page, document, etc). If you wish to print a test page, do not do it from the "Printer | Properties" page of the print queue status display. The timing of the queue refresh seems to evoke the segfault issue in Samba 3.0.3. Right click the printer in the "Printers and FAXes" window and access the property page from there. Don't try to delete jobs from the print-queue window - that won't work.

  16. Repeat from step #1 and set up as many printers as you like. By pre-setting the printing defaults, you can set up special purpose or "Task Oriented" PDF printers. A few ideas are listed below.

Task Oriented Printer Ideas

Both Ghostscript and the Windows Postscript driver have a number of "cool" and useful features. You can set up multiple PDF print shares, each with a particular configuration that would be useful in your environment. The following are a few suggestions:

Black & White PDF Printer

Set up a printer that defaults to Black & White. This is useful if your document templates use colored text to flag "Non-TOC text". Attorneys generally do not like that "festive" look going out with their documents.

Miniscript Printer

Set the "pages per sheet" default to 4. Print jobs sent to this printer will appear like a deposition in 'miniscript' format.

Booklet Printer

Set "pages per sheet" to 2 and "Orientation" to Landscape.

Batch Printing

It is occasionally useful to convert several documents to PDF and have all of them attached to a single e-mail. Acrophobia accomplishes this through the use of a specially configured "batch" printer. Documents sent to the batch printer are converted and held in an output queue.

Each batch printer is paired with a corresponding regular printer. Sending a document to the regular printer causes the batch to be released to the user. Ideally, the user should send all documents except the last to the batch printer. The last document is then sent to the regular printer. This is generally easier for the user than printing and collecting 10 separate e-mails, detaching a single PDF file from each and then re-attaching them to their final outgoing e-mail.

As indicated above, a batch printer is simply an extension of another "regular" printer - it uses the same queue, but doesn't mail the PDF at the end of the job. A batch printer can be set up as follows:

  1. Set up a standard printer first. Make note of the Share name (capitalization must match, so make note of that)

  2. Set up the batch printer in the same way that you would set up a normal printer, with the following exceptions:

    1. Since the batch printer will be paired with a particular standard printer, you should choose a printer name and a share name that is intuitive.

    2. In the Printer Comment, add "[batch=sharename]". Replace "sharename" with the share name of the standard printer. Remember that the share name must match exactly!

    3. The printer defaults should be set identically to that of the standard printer. It would be annoying to have print jobs sent to the standard printer come out in black & white, and have jobs sent to the batch printer come out in color!

To use the batch printer, print all of your jobs except the last to the batch share. Print your last job to the standard share. When the last job is complete, you will receive an e-mail with all jobs attached.

Note

If you forget to print the last job to the standard printer, just print something (anything) to the standard printer to trigger the release of the files. When you receive the e-mail, you can easily remove the final (extra) attachment.

History

Acrophobia was first introduced as an instructional whitepaper, published through LawNet. The whitepaper assumed no prior Linux experience and guided the reader through machine setup, RedHat Linux installation, Samba configuration, Sendmail configuration and manual input of a small script. Upon completion, the reader would have a ready solution for his or her firm’s PDF creation needs.

Acrophobia quickly became quite popular within the legal industry. At this point, the SIG’s goal of introducing Linux to the industry had been met. Thanks to the stability and functionality offered by Linux, Samba, Ghostscript and Sendmail, Acrophobia performed its function flawlessly. For these reasons, there was little public activity surrounding Acrophobia.

During this time, the author made a few improvements for use by his then-current firm. The whitepaper was updated for newer versions of RedHat Linux. Instructions for Suse Linux were added and the whitepaper was released as version 2.

Following version 2 of the whitepaper, the main script was re-written in Python and many features were added. A fundamental shift took place as Acrophobia evolved from an instructional whitepaper to a product in its own right. A configuration script was written to ease installation and Acrophobia was packaged as an RPM.