views:

468

answers:

3

Anyone know of a reporting library for Delphi Win32 (or possibly in C#/.Net, Java) that provides the following types of features in a page formatting mode (I am not looking for a banded report writer). This is not an exhaustive list, merely some of the key areas of interest.

Tables

  • Column and row spanning
  • Rich formatted content in cells (e.g. HTML, RTF, Wiki...)
  • Support for nested tables
  • Good control over table size, cell padding and alignment
  • Sophisticated pagination support (widow-orphan control, persistent header row etc)

Text/Paragraphs

  • Text alignment (left, center, right, dot leaders, tabs)
  • Accurate text wrapping (word break rules, hyphenation etc)
  • Support for installed Windows fonts (truetype, OpenType/Type1)

Images/Graphics

  • Integrated support for PNG, JPEG and BMP
  • Support for vector graphics (lines, circles, arrows, bezier curves, custom drawn shapes)
  • Support for watermarks / page background images
  • Support for Alpha blending or at least pixel level transparency

Miscellaneous

  • Must render documents quickly (e.g. 700 pages ~2 minutes)
  • Barcode rendering (DataMatrix, Code39, Code128, Postnet)
  • Support for multi-column page layouts, headers and footers
  • Support for forced page breaks
  • Output to PDF (required), OpenOffice, MS Word (nice to have)
  • Persistence of report template to a single file / stream
  • Data binding model to report on data from code at runtime

Ideally I would like something with a good end-user report design tool that can be tightly integrated with the application data model. The target is a technical reporting application for Infrared Thermographers that produces very large reports based on a customizable page templates. Currently I use a custom developed framework based on TRichView and llPDFLib that works well, but I would like to leverage a commercial or open source library for future versions.

I am aware of Gnostice, Virtual Print Engine and DTP Documents. Any other gems out there I have missed ;)

Thanks in advance!

+6  A: 

(I am not looking for a banded report writer)

Most of your requirements can be done by FastReport, which has support for banded and unbanded reports, it's very flexible to allow you to do any complex report on design time or runtime.

And their end user report designer is very good.

Also they have .Net version.

Mohammed Nasman
+1 for FastReport
mjustin
+1 for Fasreport
José Romero
Interesting suggestion. I was of the impression FastReports was primarily a banded reporting tool, but I guess I was wrong. I will take a closer look. Can anyone contrast this with ReportBuilder Pro (other than the big cost difference)?
David Taylor
Mohammed Nasman
+4  A: 

For desktop or sever backend use?

If for server use, I tried several such things, and in the end generated latex source code. It fits most your requirements except openoffice and maybe the wiki language thing (unless you write something that maps your wiki language onto latex commands)

My project was a letter which was both customer query (with barcodes next to selection options for easy processing) and personalized report/statistics. 22000 of them.

It generated a 70k-something paged, 1.5GB PDF the printer-company's tools couldn't even handle, so I broke it up into multiple files. It took half an hour on a 433MHz laptop with 128MB to generate, so on a modern machine it should run fine:-)

One of the advantages of LaTeX is that the output looks stunning, and the possibilities are near limitless, and so is the support. The disadvantage is the initial time to invest.

Marco van de Voort
Thanks Marco. The primary usage is in a desktop app and a CD-ROM based viewer (i.e. running from read-only media). I also have a new web-based product on the drawing board - probably going to use Tapestry 5. Any pointers on Latex tooling and libraries would be appreciated. I haven't looked at Latex in about 10 years so I am not up to speed.
David Taylor
@David: See http://stackoverflow.com/questions/874576, especially the "what software do I really need on Windows" part. I'd wholeheartedly support this solution for server use, I'm not so sure it can be made to work well in CD-ROM based software (meaning no installation).
mghie
miktex is the most used windows latex distro. Also have a look at lyx.org, that might be useful for having users making templates
Marco van de Voort
+1  A: 

I think you can do most of what you want with WPTools Reporter. Certainly I am using this for building complex textual reports, with graphics, various table layouts (done by making them conditional) and all driven by internal "tables" rather than a database. It makes it easy to build up a complex document quickly, and then either edit in my app, or press a button to load into Word.

mj2008