---
license: Licensed to the Apache Software Foundation (ASF) under one
         or more contributor license agreements.  See the NOTICE file
         distributed with this work for additional information
         regarding copyright ownership.  The ASF licenses this file
         to you under the Apache License, Version 2.0 (the
         "License"); you may not use this file except in compliance
         with the License.  You may obtain a copy of the License at

           http://www.apache.org/licenses/LICENSE-2.0

         Unless required by applicable law or agreed to in writing,
         software distributed under the License is distributed on an
         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
         KIND, either express or implied.  See the License for the
         specific language governing permissions and limitations
         under the License.

layout:  default
title:   Downloads
---

<h1>Downloads</h1>

<p>There are several ways to obtain the PDFBox binaries or sources:</p>

<ul>
    <li><a href="#20x">PDFBox 2.0.16 release</a></li>
    <li><a href="#18x">PDFBox 1.8.16 release</a></li>
    <li><a href="#JBIG2">JBIG2 ImageIO plugin 3.0.2 release</a></li>
    <li><a href="#oldreleases">Previous releases</a></li>
</ul>

<p>See also the <a href="#exportcontrol">export control</a> information related to the encryption features included in Apache PDFBox.</p>

<h2>Current releases</h2>

<a name="mirror"></a>
<h3>Mirrors</h3>


[if-any logo] []([link]) [end] Your current mirror is
<code>[preferred]</code>. If you encounter a problem with this mirror, please select another. If all mirrors are failing, try
the *backup* mirrors at the end of the mirrors list, which should be available.
Alternatively, <a href="https://www.apache.org/mirrors/">view the complete list of mirrors</a>.

<form action="/download.cgi" method="get" id="SelectMirror">Mirrors:
  <select name="Preferred">[if-any http] [for http]
  <option value="[http]">[http]</option>[end] [end] [if-any ftp] [for ftp]
  <option value="[ftp]">[ftp]</option>[end] [end] [if-any backup] [for backup]
  <option value="[backup]">[backup] (backup)</option>[end] [end]</select>
  <input type="submit" value="Change"></input>
</form>

<a name="20x"></a>
<h3>PDFBox 2.0.16</h3>

<p>This is an incremental feature release based on the earlier `2.0.x` releases.
   See the <a href="https://www.apache.org/dist/pdfbox/2.0.16/RELEASE-NOTES.txt">Release Notes</a> for more details.
</p>
<p><strong>Source code including examples</strong></p>
<ul>
    <li>
        <a href="[preferred]pdfbox/2.0.16/pdfbox-2.0.16-src.zip">pdfbox-2.0.16-src.zip</a> 15.1MB, source archive
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/pdfbox-2.0.16-src.zip.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/pdfbox-2.0.16-src.zip.sha512">SHA512</a>
    </li>
</ul>
<p><strong>Command line tools</strong></p>
<ul>
    <li>
      <a href="[preferred]pdfbox/2.0.16/pdfbox-app-2.0.16.jar">pdfbox-app-2.0.16.jar</a> 9.1MB, pre-built PDFBox standalone binary
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/pdfbox-app-2.0.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/pdfbox-app-2.0.16.jar.sha512">SHA512</a>
    </li>
    <li>
        <a href="[preferred]pdfbox/2.0.16/preflight-app-2.0.16.jar">preflight-app-2.0.16.jar</a> 9.2MB, pre-built Preflight standalone binary
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/preflight-app-2.0.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/preflight-app-2.0.16.jar.sha512">SHA512</a>
    </li>
    <li>
        <a href="[preferred]pdfbox/2.0.16/debugger-app-2.0.16.jar">debugger-app-2.0.16.jar</a> 9.0MB, pre-built Debugger standalone binary
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/debugger-app-2.0.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/debugger-app-2.0.16.jar.sha512">SHA512</a>
    </li>
</ul>
<p><strong>Libraries of each subproject</strong></p>
<ul>
    <li>
        <a href="[preferred]pdfbox/2.0.16/pdfbox-2.0.16.jar">pdfbox-2.0.16.jar</a> 2.6MB, pre-built binary
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/pdfbox-2.0.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/pdfbox-2.0.16.jar.sha512">SHA512</a>
    </li>
    <li>
        <a href="[preferred]pdfbox/2.0.16/fontbox-2.0.16.jar">fontbox-2.0.16.jar</a> 1.6MB, pre-built binary
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/fontbox-2.0.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/fontbox-2.0.16.jar.sha512">SHA512</a>
    </li>
    <li>
        <a href="[preferred]pdfbox/2.0.16/preflight-2.0.16.jar">preflight-2.0.16.jar</a> 248KB, pre-built binary
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/preflight-2.0.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/preflight-2.0.16.jar.sha512">SHA512</a>
    </li>
    <li>
        <a href="[preferred]pdfbox/2.0.16/xmpbox-2.0.16.jar">xmpbox-2.0.16.jar</a> 132KB, pre-built binary
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/xmpbox-2.0.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/xmpbox-2.0.16.jar.sha512">SHA512</a>
    </li>
    <li>
        <a href="[preferred]pdfbox/2.0.16/pdfbox-tools-2.0.16.jar">pdfbox-tools-2.0.16.jar</a> 77KB, pre-built binary
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/pdfbox-tools-2.0.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/pdfbox-tools-2.0.16.jar.sha512">SHA512</a>
    </li>
    <li>
        <a href="[preferred]pdfbox/2.0.16/pdfbox-debugger-2.0.16.jar">pdfbox-debugger-2.0.16.jar</a> 245KB, pre-built binary
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/pdfbox-debugger-2.0.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/2.0.16/pdfbox-debugger-2.0.16.jar.sha512">SHA512</a>
    </li>
</ul>

<a name="18x"></a>
<h3>PDFBox 1.8.16</h3>

<p>
    This is an incremental feature release based on the earlier `1.8.x` releases.
    See the <a href="https://www.apache.org/dist/pdfbox/1.8.16/RELEASE-NOTES.txt">Release Notes</a> for more details.
</p>

<p><strong>Source code including examples</strong></p>
<ul>
    <li>
        <a href="[preferred]pdfbox/1.8.16/pdfbox-1.8.16-src.zip">pdfbox-1.8.16-src.zip</a> 11MB, source archive
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/pdfbox-1.8.16-src.zip.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/pdfbox-1.8.16-src.zip.sha512">SHA512</a>
    </li>
</ul>
<p><strong>Command line tools</strong></p>
<ul>
    <li>
        <a href="[preferred]pdfbox/1.8.16/pdfbox-app-1.8.16.jar">pdfbox-app-1.8.16.jar</a> 10.6MB, pre-built PDFBox standalone binary
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/pdfbox-app-1.8.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/pdfbox-app-1.8.16.jar.sha512">SHA512</a>
    </li>
    <li>
        <a href="[preferred]pdfbox/1.8.16/preflight-app-1.8.16.jar">preflight-app-1.8.16.jar</a> 7.1MB, pre-built Preflight standalone binary
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/preflight-app-1.8.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/preflight-app-1.8.16.jar.sha512">SHA512</a>
    </li>
</ul>
<p><strong>Libraries of each subproject</strong></p>
<ul>
    <li>
        <a href="[preferred]pdfbox/1.8.16/pdfbox-1.8.16.jar">pdfbox-1.8.16.jar</a> 4.1MB, pre-built binary
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/pdfbox-1.8.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/pdfbox-1.8.16.jar.sha512">SHA512</a>
    </li>
    <li>
        <a href="[preferred]pdfbox/1.8.16/fontbox-1.8.16.jar">fontbox-1.8.16.jar</a> 219KB, pre-built binary
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/fontbox-1.8.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/fontbox-1.8.16.jar.sha512">SHA512</a>
    </li>
    <li>
        <a href="[preferred]pdfbox/1.8.16/jempbox-1.8.16.jar">jempbox-1.8.16.jar</a> 52KB, pre-built binary
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/jempbox-1.8.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/jempbox-1.8.16.jar.sha512">SHA512</a>
    </li>
    <li>
        <a href="[preferred]pdfbox/1.8.16/preflight-1.8.16.jar">preflight-1.8.16.jar</a> 298KB, pre-built binary
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/preflight-1.8.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/preflight-1.8.16.jar.sha512">SHA512</a>
    </li>
    <li>
        <a href="[preferred]pdfbox/1.8.16/xmpbox-1.8.16.jar">xmpbox-1.8.16.jar</a> 116KB, pre-built binary
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/xmpbox-1.8.16.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/1.8.16/xmpbox-1.8.16.jar.sha512">SHA512</a>
    </li>

</ul>

<a name="JBIG2"></a>
<h3>JBIG2 ImageIO 3.0.2</h3>

<p>
    This is the first release of the JBIG2 ImageIO plugin under the umbrella of the PDFBox PMC.
    See the <a href="https://www.apache.org/dist/pdfbox/jbig2-imageio/3.0.2/RELEASE-NOTES.txt">Release Notes</a> for more details.
</p>

<p><strong>Source code</strong></p>
<ul>
    <li>
        <a href="[preferred]pdfbox/jbig2-imageio/3.0.2/jbig2-imageio-3.0.2-src.zip">jbig2-imageio-3.0.2-src.zip</a> 2.1MB, source archive
        <a href="https://www.apache.org/dist/pdfbox/jbig2-imageio/3.0.2/jbig2-imageio-3.0.2-src.zip.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/jbig2-imageio/3.0.2/jbig2-imageio-3.0.2-src.zip.sha512">SHA512</a>
    </li>
</ul>
<p><strong>Pre-built binary</strong></p>
<ul>
    <li>
        <a href="[preferred]pdfbox/jbig2-imageio/3.0.2/jbig2-imageio-3.0.2.jar">jbig2-imageio-3.0.2.jar</a> 152KB
        <a href="https://www.apache.org/dist/pdfbox/jbig2-imageio/3.0.2/jbig2-imageio-3.0.2.jar.asc">ASC</a>
        <a href="https://www.apache.org/dist/pdfbox/jbig2-imageio/3.0.2/jbig2-imageio-3.0.2.jar.sha512">SHA512</a>
    </li>
</ul>

<h3>Verify</h3>

<p>
    It is essential that you verify the integrity of the downloaded files using the PGP signatures or
    SHA512 checksums. Please read <a href="https://httpd.apache.org/dev/verification.html">Verifying Apache HTTP Server Releases</a>
    for more information on why you should verify our releases.
</p>

<p>
    The PGP signatures can be verified using PGP or GPG. First download the
    <a href="https://www.apache.org/dist/pdfbox/KEYS">KEYS</a> file as well as the .asc signature files for the
    relevant release packages. Make sure you get these
    files from the <a href="https://www.apache.org/dist/pdfbox">main distribution directory</a>, rather than
    from a mirror. Then verify the signatures using
</p>

<pre>
% pgpk -a KEYS
% pgpv pdfbox-X.Y.Z-src.zip.asc
</pre>

or

<pre>
% pgp -ka KEYS
% pgp pdfbox-X.Y.Z-src.zip.asc
</pre>

or

<pre>
% gpg --import KEYS
% gpg --verify pdfbox-X.Y.Z-src.zip.asc pdfbox-X.Y.Z-src.zip
</pre>

<a name="oldreleases"></a>
<h2>Previous releases</h2>

<p>
    Previous Apache releases (starting with version `0.8.0-incubating`) are available in the <a href="https://archive.apache.org/dist/pdfbox/">release archive</a>.
    Older releases (up to version `0.7.3`) published from SourceForge are still available on
    <a href="https://sourceforge.net/projects/pdfbox/files/PDFBox/">SourceForge Files</a>.
</p>

<a name="exportcontrol"></a>
<h2>Export control information</h2>

<p>This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export
to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import,
possession, or use, and re-export of encryption software, to see if this is permitted. See <http://www.wassenaar.org/> for more information.
</p>

<p>The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1,
which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation
distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations,
Section 740.13) for both object code and source code.
</p>

<p>The following provides more details on the included cryptographic software:
</p>

<ul>
    <li>Apache PDFBox uses the Java Cryptography Architecture (JCA) and the Bouncy Castle libraries for handling encryption in PDF documents.
        </li>
</ul>
