Problems with Rainbow Pdf Server Based Convertor installation and configuration on Ubuntu 9.10 64 bit
In order to install the converter, the downloaded rpm package should be installed. The instruction to install it without converting it to a .deb package is:
1 | sudo rpm -i RainbowPDFServerBasedConverter-xxx.rpm --force-debian --nodeps |
The installation directory can be provided with the –prefix “installation location” parameters, otherwise it will be installed to the /usr/ServerBasedConvertor location.
To make a a sample conversion the run.sh script must be executed, a frequent error that could appear is:
1 2 | /usr/ServerBasedConverter/bin/SBCCmd: symbol lookup error: /usr/ServerBasedConverter/lib/libOSMesa.so.6: undefined symbol: _tnl_run_pipeline |
This means that the converter wants to use the shared objects that came with the installation (in the ~/ServerBasedConvertor/lib directory). As these objects were probably compiled on a different system, the ones that cause the problem must be deleted from the installation directory and the native libraries of the system should be installed.
In our example the ~/ServerBsedConvertor/lib/libOsMesa.so and ~/ServerBsedConvertor/lib/libOsMesa.so.6 files are going to be deleted and the libosMesa6 library will be installed with the following command:
1 | sudo apt-get install libOsMesa6 |
After these errors disappear the shell script should run properly.
If trying to compile and run the sample Java code the publishers provided, the following things must be done:
Some environment variables must be set. These can be found on the publishers site at the following address:
http://rainbowpdf.com/serverdoc/xfo-env.html
After setting the necessary variables a possible error that might appear is:
1 2 3 4 5 6 | Exception in thread "main" java.lang.UnsatisfiedLinkError: no DfvJavaCtl21 in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709) at java.lang.Runtime.loadLibrary0(Runtime.java:823) at java.lang.System.loadLibrary(System.java:1028) at jp.co.antenna.DfvJavaCtl.DfvObj.<clinit>(DfvObj.java:269) at sample.main(sample.java:28) |
The cause of this error is that a shared object file does not have the name what the program is searching for. It seems that in the 3.0 package for 64 bit Linux (maybe in other packages as well) a shared object file has not been renamed from the last version.
A quick solution would be to rename one of the symbolic links (rename libDfvJavaCtl.so to libDfvJavaCtl21.so) which point to a library file with the following command:
1 | mv /usr/ServerBasedConverter/lib/libDfvJavaCtl.so /usr/ServerBasedConverter/lib/DfvJavaCtl21.so |
Now everything should work.
