Hi, I have developed a Java application and now i want to give some simple printing support. Something like printing invoices , some reports etc. Right now I'm creating that stuff in html, showing it on JEditorPane. but html support is quite poor and I'm really fade up of that thing. Is there any better way of doing such thing? Any better browser component, or better tool to create such simple reports? (JDK 1.6)
JasperReports is a pretty nice reporting tool for Java. It could be a bit heavy weight for what you want.
I love JasperReports for that. In combination with iReport (a GUI for creating the reports) is the best I could find for free in Java to do reporting.
You can also generate PDFs files with iText for printing. Although I think it will be easier to use iReports.
Another solution is BIRT which is very simple to use : it is an Eclipse project with a visual editor for your reports. The report is built in 3 steps :
- create a DataSource
- create a DataSet on this DataSource
- create your report, based on the DataSet
DynamicReports is an open source reporting tool. You can create reports quickly without needing to use a visual designer. See the examples.
When printing invoices and reports, no doubt you want them to look more than basic - hence your problem. If your swing application has a server-side component, then look at libraries like Jasper and Docmosis to produce decent reports from the server (since heavy-weight server side is typically aok). If you really need a library just for a client app, there's an old library called JViewPro which is pretty yuk to code with, but can let you layout reports in code for displaying and printing and is a single jar (just be careful about memory usage).