Pro Forma (proforma 0.2.1)

Copyright (c) 2001-2003 Scott W. Gifford <>

Pro Forma is a GUI tool that lets you fill out forms on your computer like you would with a typewriter. It's a little bit cleverer than that, though; it can look at the document, find blank spaces where you're likely to type, and put a textbox there for you to type in, sitting right on top of the line. It's quick to learn and easy to use, and produces nice looking output.

It was written by Scott Gifford.

Pro Forma uses GNOME and the GTK+ library for its user interface, and was built in part with the Glade interface builder .


Thu, Jun 12 2003
Release 0.2.1. Previous release was a mess; some last-minute changes and packaging errors made it mostly unusable. The worst of these are now fixed.
Wed, Jun 11 2003
Release 0.2.0. Many bugs fixed. Now generates PostScript output directly, and so prints much faster. The new file format is incompatible with 0.1.0 (hey, this is still 0.x software!).
Mon, Apr 23 2001
First release.

Screen Shot

Last time I wrote a GUI program, nobody would download it until I had a screenshot.

Getting it

Download the most recent tarfile (proforma-0.2.1.tar.gz). 594392 bytes.

Release Notes

See the file NEWS, included with this distribution.



Download and gunzip/untar a copy of proforma, then do the usual
     make install
described (generically) in INSTALL. When it looks like everything is working, you can test by going into the "examples" subdirectory, and running:
    ../src/proforma example.form
You should see a properly completed City of Flint tax form for Joe Blow. If you don't, something went wrong; you should fix that before trying to work on any of your own forms.


If you followed the installation instructions, proforma will be installed in your $PATH. So just type "proforma" to run it.

When it starts up, you'll just have an empty window with a menu in it. To create a new form, select the File menu, then select New. It will prompt you for an image containing the form to fill out. Any image format supported by both gdk_pixbuf and gnome-print will work; I usually use an 8-bit png.

If the form you want to fill out is a PostScript or PDF file, you'll need to convert it into something that gdk_pixbuf and gnome-print can handle. The easiest way to do this is with GhostScript:

    gs -dNOPAUSE -dBATCH -r300 -sDEVICE=epswrite \
       -sOutputFile=form.%d.eps form.pdf
will create a series of EPS files called "form.x.eps", from the PDF file in "form.pdf", with x going from 1 to the number of pages in the PDF file.

When you've succesfully opened the image file, Pro Forma will display the image in its window. You can scroll around using the scrollbars attached to it; you may find it more convenient if you make the window very large or maximized. You can change the size of the image with the View|DPI menu.

When you've got an area of the form you'd like to type on viewable in the window, you can create an area to type in two ways. If the place you'd like to type is on top of a line or inside a box, just double-click reasonably close to the top of the line or the inside-bottom of the box, and Pro Forma will figure out a reasonable size to make a textbox, and put your cursor there to start typing. If you'd like to type someplace that isn't on top of a line, right-click and select "Add new field". This will draw a one-inch long box to type in.

Once the box is on the screen, you can just start typing. You don't need to do anything when you're done; just continue creating the next field, or save or print if you are finished.

If the box isn't the size you want, you can move it by right-clicking inside the box, and selecting "Move/resize textbox". That will draw four handles in the corners of the textbox for moving any of the four corners, and will allow you to move the entire textbox by clicking somewhere in the middle and dragging. While you are dragging the corners to resize, the cursor will "snap" to any black spots it sees on the page (unless you turn this feature off with the Edit|Snap menu). Pro Forma doesn't currently support multi-line textboxes, so if you want to type a lot, you'll have to make several textboxes on top of each other. When you've got it the size you want, you can right-click in the textbox again, and select "Done with move/resize textbox" to remove the resizing handles, and set the behavior back to a normal textbox.

If you're working with a scanned document and you find that Pro Forma can't follow the lines, try turning up the fuzziness factor with the Edit|Fuzziness menu; the higher the fuzziness, the more slanted lines and glitches will be tolerated. Similarly, if it's being too tolerating, turn fuzziness down. For a document that isn't scanned, it should be fine to set Fuzziness to 0.

If you decide you don't need a particular textbox any more, or if a textbox is created accidentally, just right-click in it, and select "Remove textbox".

When you have created a few fields, you will probably want to save the form (especially since there are still a few crashes left in Pro Forma). To save a file which hasn't yet been named, go to the File menu and select "Save As". You will be prompted to enter a filename to save as, and the locations and contents of the textboxes will be saved, along with the path of the base image for the form. Once Pro Forma knows the name of the file, you can just use File|Save to save it again in the same location.

To open up a form you have previously saved, just use File|Open.

Undo is currently not supported, but if you have saved the file recently, you can go back to your last saved version by selecting File|Revert.

To see what your form will look like printed out, select File|Print Preview. This will bring up a Print Preview application (gv by default, but see the README for how to change that); you should be able to save the final PostScript file here, as well as print it.

When you are done, select File|Close or File|Exit.


Features that I'd like to include in a future release of Pro Forma are in the TODO file. If you have any suggestions that aren't in that file, please email me and let me know. Bugs that should be fixed are in the BUGS file.


If you'd like to use Pro Forma in your company, get support for Pro Forma, or sponsor a new feature, please consider hiring me as a consultant. For more information, see:


Pro Forma is Copyright 2001-2003 Scott Gifford and is licensed through the GNU General Public License. Read the COPYING file for the complete license.