This project is a viewer designed to load PDF documents,
but will also view other file types (like PostScript, XPS or PCL)
by distilling them into PDF documents first.

When the document is first loaded, every page is rendered at
a low resolution. These will be displayed as thumbnails on the
left side. All loading is done in the com.artifex.gsjava.Document
class. As the user changes the position of the viewport, the
viewer will dynamically load high resolution images based on
what page the user is viewing. This is done in the
com.artifex.gsviewer.ViewerController.SmartLoader class. This
also handles rendering zoomed images if necessary. Only pages
which need to be loaded at a high resolution are loaded, and
zoomed pages are unloaded when no longer necessary to save memory.

Required libraries in this directory for the viewer to work:

-= WINDOWS =-

gpdldll64.dll
gs_jni.dll


-= LINUX =-

libgpdl.so (this would have been built as a link to another file, so
it should be copied into this directory and renamed to libgpdl.so)
gs_jni.so

On Linux, when using OpenJDK, the property "assistive_technologies" may
need to be modified for the Java code to build. It can be modified by
editing the "accessibility.properties" file. This is located at:

/etc/java-8-openjdk/accessibility.properties

Additionally, to start the application, start_linux.sh should be executed as it
sets up the shared library paths.


-= MAC =-

Same as Linux, except with .dylib extensions on all shared objects.

start_darwin.sh should be used to start the application.


Building:

-= WINDOWS =-

Ensure both gs_jni.dll and gpdldll64.dll are built. Then, run the
build_win32.bat script. This will automatically build and copy gsjava.jar to
this directory. To run, open gsviewer.jar either through File Explorer or in
the command line through the following command:

java -jar gsviewer.jar

-= LINUX =-

Ensure Ghostscript has been built.
Run the build_linux.sh script. This will automatically build
gs_jni.so, gsjava.jar, and copy the files to the needed
directories. gsviewer.jar will be outputted in this directory.

-= MAC =-

Ensure Ghostscript has been built.
Run the build_darwin.sh script. This will automatically build
gs_jni.dylib, gsjava.jar, and copy the files to the needed
directories. gsviewer.jar will be outputed in this directory.