Since I had installed Oracle Java
installed manually without a single problem I decided to
install Apache FOP manually as well. Also because when I
tried to install it via
sudo apt-get install
fop it turned out that Ubuntu didn't see that Java
had already been installed, most likely due to a step I
hadn't taken after the manual installation of Java. Another
advantage of the manual installation turned out to be a newer
version of Apache FOP; 1.0 instead of 0.95.
Below follows a HOWTO of how I installed Apache FOP sucessfully on Ubuntu 10.04 LTS.
Select the first suggested mirror on Apache
FOP Download Mirrors and click on the
in the resulting web page. Next click
to download the tarball.
After the download had finished I generated the MD5 digest for the file and verified it with the MD5 digest given on the official site:
cd ~/Downloads md5sum fop-1.0-bin.tar.gz 3186f93a314bdcb710bd7cb02d80404c fop-1.0-bin.tar.gz
After you have verified the integrity of the downloaded file create a directory to install fop into, unpack the tarball, clean up and create a symbolic link to the latest (and currently only) version as follows:
sudo mkdir /usr/local/fop cd /usr/local/fop sudo mv ~/Downloads/fop-1.0-bin.tar.gz . sudo tar zxvf fop-1.0-bin.tar.gz sudo rm fop-1.0-bin.tar.gz sudo ln -s /usr/local/fop/fop-1.0/ latest
Next we have to add a path to the fop
to the PATH variable. Thanks to the symbolic link we can use
/usr/local/fop/latest/bin and when a new version of
FOP comes out only the symbolic link has to be updated.
/etc/environment in an editor, for example
sudo vi /etc/environment, and modify the PATH
variable. The file looks on my computer currently as follows:
JAVA_HOME="/usr/local/java/latest" JRE_HOME="/usr/local/java/latest/jre" PATH="/usr/local/java/latest/bin:\ /usr/local/fop/latest:\ /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
Make very sure that no space follows the back slash or any
other character other than a new line for that matter. If
you make a mistake in this file you might no longer be able
to login. This happened to me once. I fixed this by booting
a live CD and editing
You can verify the updated
if Apache FOP got installed correctly as follows:
source /etc/environment fop -version FOP Version 1.0
Note that sourcing
/etc/environment is only required
once in a terminal and only until you log out and log back in.
To test Apache FO, copy the XSL FO snippet that follows to a file
<?xml version="1.0"?> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="page"> <fo:region-body region-name="body" margin-top="0.5in" margin-bottom="1in" margin-left="0.5in" margin-right="0.5in"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="page"> <fo:flow flow-name="body"> <fo:block> Hello, World! </fo:block> </fo:flow> </fo:page-sequence> </fo:root>
and convert it to PDF using:
fop hello-world.fo hello-world.pdf
You can open the Document Viewer from the command line as follows:
Note that if you rerun fop to update the PDF file the Document Viewer will update its view and show the new version.