Go to file
Jay Berkenbilt f60bb8e071 Allow environment variable to override LARGE_FILE_TEST_PATH 2012-06-26 10:03:20 -04:00
doc update release date to actual date 2008-04-29 12:55:25 +00:00
examples Add pdf-from-scratch example 2012-06-23 09:05:06 -04:00
include/qpdf Fix and test support for files >= 4 GB 2012-06-24 15:56:50 -04:00
libqpdf Set version to 3.0.a0 2012-06-25 21:35:30 -04:00
libtests ABI change: fix use of off_t, size_t, and integer types 2012-06-20 15:20:26 -04:00
m4 Update autoconf and libtool files 2012-06-20 08:50:33 -04:00
make Fix order of build flags. 2012-06-21 21:24:06 -04:00
manual Set version to 3.0.a0 2012-06-25 21:35:30 -04:00
qpdf Fix Windows compilation issue 2012-06-25 21:01:55 -04:00
qtest fix qtest-driver 2009-10-14 00:57:04 +00:00
zlib-flate ABI change: fix use of off_t, size_t, and integer types 2012-06-20 15:20:26 -04:00
.gitignore Add doc files to .gitignore 2012-06-21 16:36:34 -04:00
Artistic-2.0 update release date to actual date 2008-04-29 12:55:25 +00:00
ChangeLog Update ChangeLog for previous fixes 2012-06-24 15:56:59 -04:00
INSTALL update release date to actual date 2008-04-29 12:55:25 +00:00
Makefile Cosmetic fix to Makefile for showing test output 2012-06-24 19:05:25 -04:00
README update README for github 2012-06-03 13:42:01 -04:00
README-what-to-download.txt README.windows -> README-windows.txt 2010-08-14 16:34:30 +00:00
README-windows-install.txt new 2009-10-23 16:58:52 +00:00
README-windows.txt document VC6 port 2010-08-14 16:39:50 +00:00
README.maintainer Fix typo 2012-06-25 21:32:38 -04:00
TODO Update TODO 2012-06-24 15:56:59 -04:00
autoconf.mk.in Allow environment variable to override LARGE_FILE_TEST_PATH 2012-06-26 10:03:20 -04:00
autogen.sh create autogen.sh for convenience 2010-03-27 13:17:17 +00:00
config-mingw32 Adjust Windows built to support 32-bit and 64-bit builds 2012-06-21 21:22:35 -04:00
config-mingw64 Adjust Windows built to support 32-bit and 64-bit builds 2012-06-21 21:22:35 -04:00
config-msvc Adjust Windows built to support 32-bit and 64-bit builds 2012-06-21 21:22:35 -04:00
config.guess Update autoconf and libtool files 2012-06-20 08:50:33 -04:00
config.sub Update autoconf and libtool files 2012-06-20 08:50:33 -04:00
configure.ac Set version to 3.0.a0 2012-06-25 21:35:30 -04:00
copy_dlls Adjust Windows built to support 32-bit and 64-bit builds 2012-06-21 21:22:35 -04:00
install-sh Update autoconf and libtool files 2012-06-20 08:50:33 -04:00
libqpdf.map Add symbol versioning 2012-06-20 15:18:12 -04:00
libqpdf.pc.in Add pkg-config support 2012-06-21 16:36:34 -04:00
ltmain.sh Update autoconf and libtool files 2012-06-20 08:50:33 -04:00
make_dist Fix version pattern for configure.ac 2012-06-21 17:28:19 -04:00
make_windows_releases Adjust Windows built to support 32-bit and 64-bit builds 2012-06-21 21:22:35 -04:00
make_windows_releases-finish Adjust Windows built to support 32-bit and 64-bit builds 2012-06-21 21:22:35 -04:00
make_windows_releases-msvc Adjust Windows built to support 32-bit and 64-bit builds 2012-06-21 21:22:35 -04:00
mkinstalldirs update libtool and automake pieces 2009-09-26 15:42:39 +00:00
qpdf.spec Set version to 3.0.a0 2012-06-25 21:35:30 -04:00

README

This is the QPDF package.  Information about it can be found at
http://qpdf.sourceforge.net.  The source code repository is hosted
at github: https://github.com/qpdf/qpdf.

QPDF is copyright (c) 2005-2011 Jay Berkenbilt

This software may be distributed under the terms of version 2 of the
Artistic License which may be found in the source distribution as
"Artistic-2.0".  It is provided "as is" without express or implied
warranty.


Prerequisites
=============

QPDF depends on external libraries "zlib" and "pcre".  These are part
of virtually all Linux distributions and are readily available;
download information appears in the documentation.  You can also
download the external library distributions in source from from qpdf's
download site.  For Windows, you can download pre-built binary
verisons of those libraries for some compilers; see README-windows.txt
for additional details.


Licensing terms of embedded software
====================================

QPDF makes use of zlib and pcre for its functionality.  These packages
can be downloaded separately from their own download locations, or
they can be downloaded in the external-libs area of the qpdf download
site.

The Rijndael encryption implementation used as the basis for AES
encryption and decryption support comes from Philip J. Erdelsky's
public domain implementation.  The files libqpdf/rijndael.cc and
libqpdf/qpdf/rijndael.h remain in the public domain.  They were
obtained from

  http://www.efgh.com/software/rijndael.htm
  http://www.efgh.com/software/rijndael.txt


Building on UNIX/Linux
======================

For UNIX and UNIX-like systems, you can usually get by with just

./configure
make
make install

For more detailed general information, see the "INSTALL" file in this
directory.

Building on Windows
===================

QPDF is known to build and pass its test suite with mingw (gcc 4.4.0)
and Microsoft Visual C++ .NET 2008 Express.  Either cygwin or MSYS
plus ActivateState Perl is required to build as well in order to get
make and other related tools.  The MSVC works with either cygwin or
MSYS.  The mingw build requires MSYS and will probably not work with
cygwin.

For details on how to build under Windows, see README-windows.txt.


Additional Notes on Build
=========================

QPDF's build system, inspired by abuild (http://www.abuild.org), can
optionally use its own built-in rules rather than using libtool and
obeying the compiler specified with configure.  This can be enabled by
passing --with-buildrules=buildrules where buildrules corresponds to
one of the .mk files (other than rules.mk) in the make directory.
This should never be necessary on a UNIX system, but may be necessary
on a Windows system.  See README-windows.txt for details.  There is a
gcc-linux.mk file enable "gcc-linux" build rules, but it is intended
to help test the build system; Linux users should build with the
"libtools" rules, which are enabled by default.

The QPDF package provides some executables and a software library.  A
user's manual can be found in the "doc" directory.  The docbook
sources to the user's manual can be found in the "manual" directory.

The software library is just libqpdf, and all the header files are in
the qpdf subdirectory.  If you link statically with -lqpdf, then you
will also need to link with -lpcre and -lz.  The shared qpdf library
is linked with -lpcre and -lz, and none of qpdf's public header files
directly include files from pcre or libz, so in many cases, qpdf's
development files are self contained.

To learn about using the library, please read comments in the header
files in include/qpdf, especially QPDF.hh, QPDFObjectHandle.hh, and
QPDFWriter.hh.  You can also study the code of qpdf/qpdf.cc, which
exercises most of the public interface.  There are additional example
programs in the examples directory.