TablePrinter is a Class library to be used in Programs. There are two different versions available: one for COM, using VB6, and one for .NET Framework. The latter was created with Visual Studio 2003, but there is also a converted version for Visual Studio 2005 available.
Additional there is a MSDN style help available, but all documentation was done in German.
The purpose of the original COM component was to print out time schedules for schools (Stundenpläne). Since it was impossible to have all rows and columns on one page, and since there is not one report generator able to place the columns over more than one page, I had to write a program that is able to. I could have used Microsoft Excel, but it was too complex to cope with the object model and then to print via Excel.
The idea behind both versions is that you start a document, print element by element, where elements can be single lines or tables, and then print out the document all at once, where the program decides what to do. This includes turning the page by 90 degrees, if all the content then would fit into the page, or if the number of pages to print would reduce. You can configure the program to scale all the elements down to a minimum of 50% of the original size, if this would allow to print still on one page.
This was the original version, and it has some limitations due to the Printer object in VB6. You can configure the base font style and size of the document, and add single lines of text normal or headline mode. Headlines are 50% larger than normal lines. There is no automatic word wrap. Also, text lines can only be displayed on the left page, if there are multiple pages to print horizontally.
Tables can be added as an two-dimensional array of Variant variables. Each element in the array will become one single cell in the table. You can also make multi-line cells by giving a one-dimensional array of strings as an element in the array. But just like the lines, you are responsible for wrapping content. One string will be printed as one line, and if it is too long to be displayed on one page, you will receive an error.
It took some time to port the VB6 code to C#. Since there was no automatic update to .NET of all printer-related code in VB6, it was impossible to keep the program as it was. This means that the .NET version works different than the COM-compliant version. Also importing the DLL via COM Interop did not work properly.
Even though there was no purpose to rewrite the code, since I did not work at the school any more, this was just a training, not a real project. There are some new features, like giving font objects per line or table, automatic word wrapping of text, and adding images, lines, arrays and DataTable objects to get them printed automatically.
The version for VS.NET 2003 is added "as is", and the version for VS.NET 2005 is yet just an automatic upgrade of the 2003 version, not taking advantage of the new features provided by the .NET framework 2.0. Since I have no personal use for the component, I will not add any new features at the moment unless I am requested to do so.
You can download the appropriate version and the help project (Microsoft HTML Help project) from this place.