views:

234

answers:

4

Currently I am looking for a good solid xsl:fo processor to use within a .net application. I have seen a few but alot of them use the java virtual machine, which is something I do want to have running on the web server. I must have a .net implementation, one I have found so far which is open source is fo.net on codeplex, although it doesn't seem to implement all of the xsl:fo standard as alot of the other producst using java virutal machine do. Could anyone reccomend any products. Open source would be great, but I can also look at commercial solutions.

A: 

There is NFop (and download), which is a .Net port of the Java version from Apache (the .Net version is currently in beta though).

adrianbanks
A: 

FOP engines with .NET interfaces to consider:

  • AntennaHouse
  • RenderX XEP
  • Ibex PDF Creator - relatively inexpensive. They have a per-developer license fee. There are no server or runtime costs. Having developed an application which uses Ibex you can deploy that application to any number of test or production servers without additional cost.
Mads Hansen
RenderX has a .net interface but needs the Java Virtual machine from my understanding. Thanks for IBEX PDF Creator. I will give this a look.
Miker169
A: 

I made good experiences with xml2pdf by alt-soft. In the past it was inexpensive, now the "workstation"-version is free.

Andreas
+1  A: 

For the server you may have to think twice. I wouldn't go with FOP (or NFOP for that matter) because nobody seems to maintain it (the old branch stopped at 0.28 sometimes in 2006 and the new branch is still at 0.95 since 2008. I used RenderX for a project and lately I switched to Ecrion because they have a good designer and their server is the fastest from my benchmarks. Whatever you choose, you have to consider the set of features which will become important in time (like for example what kind of output formats you get, support for visual design, support for XSL-FO 1.1, etc.), speed and especially memory consumption. In a server environment you may need to be able to process 10 or 100 requests in parallel, so memory consumption is a big factor.

Peter Stroll