Using the Library
Working with XpdfImageExtractThe XpdfImageExtract library uses an opaque handle (type
PDFHandle) to represent a PDF file. Multiple PDF files
can be open simultaneously (each with its own handle).
Any program that uses the library must include the XpdfImageExtract header file:
Using XpdfImageExtract in a multithreaded applicationIn a multithreaded application, the
pdfInitLibrary function must
be called before any other functions are called. Unlike in
single-thread applications where this is optional, the
pdfInitLibrary call is required in multithreaded
applications. Each PDF handle must be used by only one thread. Given
that constraint, all XpdfImageExtract functions (other than
pdfInitLibrary) are thread-safe.
Compiling & linking on WindowsThe XpdfImageExtract library is supplied as a DLL (
XpdfImageExtract.dll) and an import library
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 (
- Add the import library: in the "Project Settings" dialog, under
the "Link" tab, in the "General" category, add the library
- Either add the library directory
....\XpdfImageExtract\lib) to your executable search path, or copy
XpdfImageExtract.dllinto the same directory as your application's executable.
Compiling & linking on LinuxThe XpdfImageExtract library is supplied as a shared library (
When compiling C or C++ code that uses the XpdfImageExtract library,
you'll need to supply a "
-I" flag pointing to the
directory containing the XpdfImageExtract includes. When linking,
you'll need to supply a "
-L" flag pointing to the
directory containing the XpdfImageExtract library, and a
-lXpdfImageExtract" flag to link with the library.
Before running the application, make sure that the XpdfImageExtract
library directory is on the library search path. This this can be
done either by setting the
variable or by editing the system-wide
Compiling & linking on Mac OS XUsing XpdfImageExtract on OS X is very similar to using it on Linux. The shared library has a different extension (
libXpdfImageExtract.dylib), and you'll need to set
DYLD_LIBRARY_PATH environment variable.
Example codeThe XpdfImageExtract library distribution includes two sample programs,
dumpImages2.c, located in
examples directory. These programs demonstrate the
use of the various XpdfImageExtract functions. Both programs dump all
images from a PDF file to separate image files (PBM/PPM on Unix, BMP
on Windows). dumpImages.c extracts the images to memory and then
creates the image files; dumpImages2.c uses XpdfImageExtract's
To build on Linux, edit the included Makefile and set the
variables according to the instructions inside the Makefile. Then run
To build on Windows, create a Visual C++ project, as described above.