Using the Library
Working with XpdfTextThe XpdfText 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 XpdfText header file, as well as the XpdfInfo header file if you use any of the info extraction functions:
Using XpdfText in a multithreaded applicationIn a multithreaded application, the
pdfInitLibraryfunction must be called before any other functions are called. Unlike in single-thread applications where this is optional, the
pdfInitLibrarycall is required in multithreaded applications. Each PDF handle must be used by only one thread. Given that constraint, all XpdfText functions (other than
pdfInitLibrary) are thread-safe.
Compiling & linking on WindowsThe XpdfText library is supplied as a DLL (
XpdfText.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 (
....\XpdfText\lib) to your executable search path, or copy
XpdfText.dllinto the same directory as your application's executable.
Compiling & linking on LinuxThe XpdfText library is supplied as a shared library (
When compiling C or C++ code that uses the XpdfText library, you'll
need to supply a "
-I" flag pointing to the directory
containing the XpdfText includes. When linking, you'll need to supply
-L" flag pointing to the directory containing the
XpdfText library, and a "
-lXpdfText" flag to link with
Before running the application, make sure that the XpdfText
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 XpdfText on OS X is very similar to using it on Linux. The shared library has a different extension (
libXpdfText.dylib), and you'll need to set the
Example codeThe XpdfText library distribution includes four sample programs, located in the
cvtPDFToText: convert a PDF file to a text file
cvtPDFToString: similar to
cvtPDFToText, but does the conversion to a memory buffer
words: prints a word list, in a pseudo-XML format, for the first page of a PDF file
rectangle: extracts text from several rectangles on a PDF page
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.