Using the Library
Working with XpdfSplice
The XpdfSplice library uses opaque handles to represent input PDF files (typeXpdfSpliceInputHandle
) and output PDF files
(type XpdfSpliceOutputHandle
). Multiple input files and
multiple output files can be open simultaneously, each with its own
handle.
Any program that uses the library must include the XpdfSplice header file:
Using XpdfSplice in a multithreaded application
In a multithreaded application, thexpdfSpliceInit
function must
be called before any other functions are called. Unlike in
single-thread applications where this is optional, the
xpdfSpliceInit
call is required in multithreaded
applications. Each PDF handle (XpdfSpliceInputHandle
or XpdfSpliceOutputHandle
) must be used by only one
thread. Given that constraint, all XpdfSplice functions (other than
xpdfSpliceInit
) are thread-safe.
Compiling & linking on Windows
The XpdfSplice library is supplied as a DLL (XpdfSplice.dll
) and an import library
(XpdfSplice.lib
).
The following instructions are for Microsoft Visual C++ 6. Similar steps should work for other development environments.
- Add the include file directory: in the "Project Settings" dialog,
under the "C/C++" tab, in the "Preprocessor" category, add the library
include file directory (
....\XpdfSplice\include
). - Add the import library: in the "Project Settings" dialog, under
the "Link" tab, in the "General" category, add the library
(
....\XpdfSplice\lib\XpdfSplice.lib
). - Either add the library directory
(
....\XpdfSplice\lib
) to your executable search path, or copyXpdfSplice.dll
into the same directory as your application's executable.
Compiling & linking on Linux
The XpdfSplice library is supplied as a shared library (libXpdfSplice.so
).
When compiling C or C++ code that uses the XpdfSplice library, you'll
need to supply a "-I
" flag pointing to the directory
containing the XpdfSplice includes. When linking, you'll need to supply
a "-L
" flag pointing to the directory containing the
XpdfSplice library, and a "-lXpdfSplice
" flag to link with
the library.
Before running the application, make sure that the XpdfSplice
library directory is on the library search path. This this can be
done either by setting the LD_LIBRARY_PATH
environment
variable or by editing the system-wide /etc/ld.so.conf
configuration file.
Compiling & linking on Mac OS X
Using XpdfSplice on OS X is very similar to using it on Linux. The shared library has a different extension (libXpdfSplice.dylib
), and you'll need to set
the DYLD_LIBRARY_PATH
environment variable.
Static library
XpdfSplice includes a static library as well as the dynamic library. To use it, includeXpdfSpliceStatic.h
in place
of XpdfSplice.h
, and link
to XpdfSpliceStatic.lib
(Windows)
or libXpdfSplice.a
(Linux, Mac OS X).
Example code
The XpdfSplice library distribution includes a sample program,pdfmerge.c
, located in the examples
directory. This programs demonstrate the use of the various
XpdfSplice functions.
To build on Linux, edit the included Makefile and set the
XPDFLIBDIR
, XPDFINCDIR
, and LIB
variables according to the instructions inside the Makefile. Then run
"make
".
To build on Windows, create a Visual C++ project, as described above.