Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Apache FOP from Java with XSLT 2.0…?

I'm having problems using some of the features of XSLT 2.0 in an embedded use of Apache FOP 1.0. In particular I get an exception when using "current-group()".

I see that FOP is using xalan 2.6 which is throwing the exception.

I tried to exclude the transitive dependency of xalan 2.6 and replaced it with 2.7.1 but it didn't help. Is it possible to use Apache FOP with another XSLT processor that supports more 2.0 features?

like image 356
Viktor Hedefalk Avatar asked Oct 11 '22 03:10

Viktor Hedefalk


1 Answers

If you run FOP as standalone distribution from command line, you can

  1. copy the required jar file(s) with the XSLT processor (like e.g. saxon9he.jar) to the lib directory of your FOP distribution.

  2. and specify the processor implementation to be used by FOP by adding a VM parameter like this -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl (example for Saxon) to the start script (fop on Linux, fop.bat on Windows) at the line where org.apache.fop.cli.Main is called.

If you embed FOP in your Java code, simply start your application with that VM parameter (and make sure the required jar files are in your CLASSPATH).

like image 162
Würgspaß Avatar answered Oct 12 '22 17:10

Würgspaß