Invoices and Estimates Pro Data Recovery

A friend of mine had used Invoices and Estimates Pro (I&EP), which is a Windows XP program for generating business invoices. He had about 10 years of invoices in this system, and even though the program was long past obsolete (Windows XP not supported anymore, etc), he didn't want to lose access to the historical data of his old invoices.


I performed a backup using the program, and looked at the backup file on my Linux box. To my great surprise, and delight, I found that the backup file is a 'zip' file, and the individual files contained within are plain ASCII text files.

A few fun-filled hours with my Perl interpreter later, I have a set of scripts that do the following:

  1. Perl script that reads one invoice file and generate an output file according to a template. Typically the template would represent a formatted invoice.
  2. Perl script that reads one invoice file and generate one line of an index file.
  3. Shell script that runs the invoice generator Perl on each invoice backup file in a directory
  4. Shell script that runs the index generator Perl on each invoice backup file in a directory, thus making an index of all the invoices. It creates two indices, one sorted by name, the other, by invoice date.

The generated invoices are built using a template. The template I supply is in troff (groff) and looks about like the invoices my friend used to generate with I&EP. Using groff/troff on unix-like systems, one can create a PDF invoice from the generated troff file. I supply a (trivial) script, 'epdf', that will take a troff/groff file and create a PDF from it.

One could also create an HTML template and generate HTML invoices. That is left as an exercise for the reader.

Handy hint: "datetime" values appear to be: seconds since midnight, days since 20000101

FAQ

Q. I try to run a perl script and get an error like "bash: command not found"

A. The "sh-bang" at the beginning of the perl script points to the wrong place. To fix, follow these instructions:
Run this command:

which perl

The result will be the location of your perl interpreter.

Then, edit the first line of the script to have that location.

Right now, the script starts with:

#!/usr/local/bin/perl

If the result of your 'which perl' is, for example, '/usr/bin/perl',
then change the first line to read:

#!/usr/bin/perl

And then the script should run without that complaint.

SOURCE

Here's the source code and two example invoice files in a gzipped tar file.
Here's the source code and two example invoice files in a zip file.

William Dudley
January 19, 2018
June 13, 2023 - zip added
June 22, 2023 - FAQ 1 added

001954 Views