Qs re: PDFNet SDK for JAVA on Linux servers

Q:

We are planning to use PDFNet SDK for JAVA on our Linux servers. I have a few questions:

  1. Any special considerations that we need to be aware of when deploying a linux based server side PDF generation using pdfTron?

  2. In particular I am interested in knowing how the implementation is done. Is it written in Java or is the base code written in C/C++ and exposed with JNI interface.

  3. And where can I get the downloadable libraries files for the same.

Are there any special considerations like

  • Copying the .so file(s) to a specific folder on the linux machine.

  • Adding path variables to access the .so file.

  • Is it just one .so file or multiple files?

  • What are the JVM attributes (like memory we need to set) that needs to be set?

  • How many concurrent requests can it handle?

  • What is the required Linux Specification if any?

  • Are there any logging attributes that we can use to more about how PDFtron is handing and if there are runtime issues?


A:

  1. Copying the .so file(s) to a specific folder on the linux machine.
  1. Adding path variables to access the .so file.

The .so file can go to any location as long as Java can find it. You can put the library in the standard lib location, but you can also reference it from any folder using -Djava.library.path JAVA switch.

This is shown in ‘RunTest.sh’ that are located in each JAVA sample project (e.g. Samples\AnnotationTest\JAVA):

TEST_NAME=AnnotationTest

javac -classpath .:…/…/…/Lib/PDFNet.jar $TEST_NAME.java

java -Djava.library.path=…/…/…/Lib -classpath .:…/…/…/Lib/PDFNet.jar $TEST_NAME

  1. Is it just one .so file or multiple files?

Yes, there is only one SO file - without any dependencies other than LIBC which is available on all Linux/Mac systems.

  1. What are the JVM attributes (like memory we need to set) that needs to be set?

There are no JVM attributes that need to be explicitly set. Of course if you are planning to run memory intensive tasks you may want to adjust the requirements accordingly.

  1. How many concurrent requests can it handle?

There is no explicit limit on the max number of concurrent requests. If you have issues with performance, you may want to use a thread pool and manage the load on your end.

  1. What is the required Linux Specification if any?

We pretty much support most popular Linux distributions released in last 10 years.

  1. Are there any logging attributes that we can use to more about how PDFtron is handing and if there are runtime issues?

If there is an exception you can catch it and output the error message, however are no extra built-in logging options.

  1. There are no special considerations to be made.

  2. Our core library is a native library is is exposed to JAVA via JNI.

  3. You can download PDFNet from http://www.pdftron.com/pdfnet/downloads.html