views:

190

answers:

8

I'd like to find a replacement for Crystal Reports. Oh how I dislike CR.

Ideally I'd like to find a PDF generation tool that has the following:

  • Solid API in .NET
  • Speed: we'd like to generate 1000-2500 pdfs per day
  • WYSIWYG editor
  • hotlinking of image files (logos)
  • good widow/orphan control
  • reasonably good typography control (kerning)
  • repeatable fields (like you'd see in a bank statement)
  • easy to push data in from xml data, datasets or direct sql queries
  • size: final size of the pdf files matters because these will go in a database eventually
  • price: free is not always a good price; paying for the right solution is far better than paying developers to build the right solution from an almost-right solution

The WYSIWYG editor is especially important. I'd prefer to be able to hand a tool to my designer-ish person, have them build the document and place the database fields where they are supposed to be, then hand it back to me so I can link it up to the database.

Similar to this question, but I felt that question was too vague

+1  A: 

I think you have two different things here:

  1. A PDF editor. Might as well go with Acrobat.
  2. PDF server technology. This really depends on what the rest of your stack looks like but we use PDFSharp successfully. If your not doing that much manipulation or it's more generic, I think Adobe makes "Adobe Distiller Server". You should look at both.
ryber
I think we can get by with dumping pdf byte arrays into the database.
jcollum
I've never heard of anyone doing bank statement type reports with Acrobat and data from a database. Not saying it's impossible, but doesn't seem to be what Acro is good at.
jcollum
jcollum: you said you wanted a designer to design the PDF and create the fields the data is going into. You can mix and match tools, Acrobat is fine for the design, it does not have to be the thing that does the rest of the work. I don't think your going to find one majic solution that does it all well
ryber
A: 

Since you are in Windows then SQL Server Reporting Services is great and free with SQL Server. You can do the WYSIWYG in Visual Studio or the stand-alone design tool and it creates PDF along with other types of reports like Excel.

Once the report is designed it is just an XML file that resides on the Reporting Server and is called in your C# application with either SOAP or URL.

Chances are you already have everything you need to use it.

Todd Moses
I've heard the widow and orphan control in SSRS is bad. I doubt the typographic control is there at all. I spent a good deal of time today dealing with CR's awful typography control: for some reason it was making a half size space where a full size space should have been in left-aligned text.
jcollum
Its no InDesign but we use it to reproduce printed materials like certificates with good results.
Todd Moses
@Todd: from what I can gather SSRS is better than Crystal, but suffers some of the same limitations. It's a good choice, but I'm hoping for something better.
jcollum
A: 

iTextSharp, very powerful & gaining popularity. I have used it in the past & recommend it. It's opensource, has great features like merge fields etc, can be used in reports.

SoftwareGeek
"The WYSIWYG editor is especially important" and "Solid API in .NET": I used itextsharp about 9 months ago and found the API to be a mess. I've never heard of a wysiwyg editor for it.
jcollum
too bad it didn't work out for you
SoftwareGeek
A: 

Please, try to find a way how to use functional of this office extension.

http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=en

Olexander Honcharuk
I can't tell if you think this solves my problem or you're asking a question.
jcollum
A: 

I can't remember or not if iTextSharp supports it or not, but I'm sure it had/has a feature for taking a HTML representation and producing a PDF from that. If what you want is power, cost-benefit with a WYSIWYG interface, you can't really go past your favourite IDE for designing a HTML page, and outputing that in PDF format from a library.

pms1969
I see your point, but I'd prefer to have a editor that is as easy as MS Word. Ideally. But it may not be possible.
jcollum
If you're after an end user usage scenario, you might find it difficult. CR is evil, but so are all the other alternatives.
pms1969
@Paul: agreed. I might be looking for a white whale here.
jcollum
+1  A: 

DevExpress XtraReports do fantastic report generation, savable in pdf obviously. I use it to generate Medical reports in one of the programs that I work on. You can build the reports programmatically or via their design time GUI (They also have an end user GUI that lets reports be created/edited).

http://devexpress.com/Products/NET/Reporting/

msarchet
Wow, looks very interesting. How does it handle widow/orphan control? I had CR generating a page break in the middle of an address block a few minutes ago. The only solution was to put the address into its own text block. Annoying.
jcollum
Well on the widow/orphan control I had to google that a little but could you explain exactly what you mean. I may or may not be able to answer; however, their support forums and knowledge base is quite comprehensive. I've never noticed a CR causing a pagebreak, maybe it because mine aren't actually CR's. You could just sanitize the field in one of the before print events that is available.
msarchet
The widow orphan issue is very obvious when you have an address in the middle of your document. If you have parts of the page that have repeaters (detail sections?) then some of the time part of that address will push off on to the next page. A page break in the middle of an address is unacceptable. With CR you have to put the address in it's own text block to control it's keep-together, but there's no text flow chaining like you have in InDesign. So you spend a lot of time moving text blocks around to (hopefully) control your orphans. Tedious process that I'd like to get rid of.
jcollum
right, understand now. The way that I've seen it handled is that it will adjust the size of the detail section to fit into the address, if it doesn't fit on one page you can have it either continue the text on a new page or you can tell it to keep detail section together. Meaning if a section would require more space than available it will move it to a new page, so no it doesn't orphan text.
msarchet
A: 

JasperReports doesn't do what you want?

(If your reports contains always the same type of data, you could use iText(Sharp). You spend some time tuning the design by code - tedious, i know -, but afterwards it's only a matter of importing data)

nothing