You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2022/04/10 15:54:43 UTC
[pdfbox-docs] branch asf-site updated: Site checkin for project Apache PDFBox Website
This is an automated email from the ASF dual-hosted git repository.
lehmi pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/pdfbox-docs.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 97a8e17c Site checkin for project Apache PDFBox Website
97a8e17c is described below
commit 97a8e17ceda13ea1be1f6f601c7e83f1021c7e6e
Author: Andreas Lehmkühler <an...@lehmi.de>
AuthorDate: Sun Apr 10 17:54:41 2022 +0200
Site checkin for project Apache PDFBox Website
---
content/1.8/architecture.html | 30 +++++++-------
content/1.8/commandline.html | 50 ++++++++++++------------
content/1.8/cookbook/documentcreation.html | 8 ++--
content/1.8/cookbook/encryption.html | 6 +--
content/1.8/cookbook/fill-form-field.html | 4 +-
content/1.8/cookbook/pdfacreation.html | 12 +++---
content/1.8/cookbook/pdfavalidation.html | 6 +--
content/1.8/cookbook/rendering.html | 6 +--
content/1.8/cookbook/textextraction.html | 16 ++++----
content/1.8/cookbook/workingwithattachments.html | 8 ++--
content/1.8/cookbook/workingwithfonts.html | 12 +++---
content/1.8/cookbook/workingwithmetadata.html | 8 ++--
content/1.8/dependencies.html | 42 ++++++++++----------
content/1.8/faq.html | 44 ++++++++++-----------
content/2.0/commandline.html | 28 ++++++-------
content/2.0/cookbook/encryption.html | 6 +--
content/2.0/dependencies.html | 24 ++++++------
content/2.0/examples.html | 4 +-
content/2.0/faq.html | 44 ++++++++++-----------
content/2.0/getting-started.html | 10 ++---
content/2.0/migration.html | 44 ++++++++++-----------
content/3.0/migration.html | 22 +++++------
content/blog/index.html | 2 +-
content/building.html | 24 ++++++------
content/codingconventions.html | 22 +++++------
content/errors/403.html | 2 +-
content/errors/404.html | 2 +-
content/ideas.html | 24 ++++++------
content/index.html | 6 +--
content/mailinglists.html | 2 +-
content/references.html | 6 +--
content/siteupdate.html | 35 +++++++++--------
content/support.html | 6 +--
content/team.html | 6 +--
34 files changed, 286 insertions(+), 285 deletions(-)
diff --git a/content/1.8/architecture.html b/content/1.8/architecture.html
index 223bd2d0..e2cb066d 100644
--- a/content/1.8/architecture.html
+++ b/content/1.8/architecture.html
@@ -104,17 +104,13 @@
<a href="/1.8/cookbook/encryption.html" >
Encrypting a File
</a>
- </li><li>
- <a href="/1.8/cookbook/pdfacreation.html" >
- PDF/A Creation
- </a>
</li><li>
<a href="/1.8/cookbook/fill-form-field.html" >
Fill a Form Field
</a>
</li><li>
- <a href="/1.8/cookbook/pdfavalidation.html" >
- PDF/A Validation
+ <a href="/1.8/cookbook/pdfacreation.html" >
+ PDF/A Creation
</a>
</li><li>
<a href="/1.8/cookbook/rendering.html" >
@@ -125,17 +121,21 @@
Text Extraction
</a>
</li><li>
- <a href="/1.8/cookbook/workingwithattachments.html" >
- Working with Attachments
+ <a href="/1.8/cookbook/pdfavalidation.html" >
+ PDF/A Validation
</a>
</li><li>
- <a href="/1.8/cookbook/workingwithfonts.html" >
- Working with Fonts
+ <a href="/1.8/cookbook/workingwithattachments.html" >
+ Working with Attachments
</a>
</li><li>
<a href="/1.8/cookbook/workingwithmetadata.html" >
Working with Metadata
</a>
+ </li><li>
+ <a href="/1.8/cookbook/workingwithfonts.html" >
+ Working with Fonts
+ </a>
</li></ul>
</li><li>
<a href="/1.8/commandline.html" >
@@ -153,7 +153,7 @@
</nav>
<section>
- <h1 id="architecture">Architecture</h1>
+ <h1 id="architecture" tabindex="-1">Architecture</h1>
<p>In order to get the most out of PDFBox it is neccessary to understand how a PDF document
is organized as PDFBox was architected around the concepts layed out in the
ISO-32000 (PDF) Specification</p>
@@ -161,7 +161,7 @@ ISO-32000 (PDF) Specification</p>
<li><a href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=51502">ISO Site</a></li>
<li><a href="https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf">Adobe Version</a></li>
</ul>
-<h2 id="quick-introduction-to-the-pdf-format">Quick Introduction to the PDF format</h2>
+<h2 id="quick-introduction-to-the-pdf-format" tabindex="-1">Quick Introduction to the PDF format</h2>
<p>A PDF file is made up of a sequence of bytes. These bytes, grouped into tokens,
make up the basic objects upon which higher level objects and structures are built [see ISO-32000 7.3].</p>
<p class="alert alert-info">PDFBox makes these basic objects available in the
@@ -181,7 +181,7 @@ as pages, bookmarks, annotations [see ISO-32000 7.7].</p>
inspect the underlying structure or to handle special cases where the higher level PD model
doesn't provide the functionality needed.</p>
<p class="alert alert-info">It's always the COS model which is represented in the PDF file.</p>
-<h2 id="the-cos-model">The COS Model</h2>
+<h2 id="the-cos-model" tabindex="-1">The COS Model</h2>
<p>As outlined above the basic PDF objects are represented in PDFBox in the org.apache.pdfbox.cos package.</p>
<table>
<thead>
@@ -259,7 +259,7 @@ doesn't provide the functionality needed.</p>
<p>As can be seen from that little example the COS model provides a low level API to access
information within the PDF. In order to use the COS model successfully a good knowledge of
the PDF specification is needed.</p>
-<h2 id="the-pd-model">The PD Model</h2>
+<h2 id="the-pd-model" tabindex="-1">The PD Model</h2>
<p>The COS Model allows access to all aspects of a PDF document. This type of programming is
tedious and error prone though because the user must know all of the names of the
parameters and no helper methods are available. The PD Model was created to help
@@ -307,7 +307,7 @@ the Calendar is converted to a string in the COSDictionary.</p>
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/1.8/commandline.html b/content/1.8/commandline.html
index 64b490c3..49545ae2 100644
--- a/content/1.8/commandline.html
+++ b/content/1.8/commandline.html
@@ -104,17 +104,13 @@
<a href="/1.8/cookbook/encryption.html" >
Encrypting a File
</a>
- </li><li>
- <a href="/1.8/cookbook/pdfacreation.html" >
- PDF/A Creation
- </a>
</li><li>
<a href="/1.8/cookbook/fill-form-field.html" >
Fill a Form Field
</a>
</li><li>
- <a href="/1.8/cookbook/pdfavalidation.html" >
- PDF/A Validation
+ <a href="/1.8/cookbook/pdfacreation.html" >
+ PDF/A Creation
</a>
</li><li>
<a href="/1.8/cookbook/rendering.html" >
@@ -125,17 +121,21 @@
Text Extraction
</a>
</li><li>
- <a href="/1.8/cookbook/workingwithattachments.html" >
- Working with Attachments
+ <a href="/1.8/cookbook/pdfavalidation.html" >
+ PDF/A Validation
</a>
</li><li>
- <a href="/1.8/cookbook/workingwithfonts.html" >
- Working with Fonts
+ <a href="/1.8/cookbook/workingwithattachments.html" >
+ Working with Attachments
</a>
</li><li>
<a href="/1.8/cookbook/workingwithmetadata.html" >
Working with Metadata
</a>
+ </li><li>
+ <a href="/1.8/cookbook/workingwithfonts.html" >
+ Working with Fonts
+ </a>
</li></ul>
</li><li>
<a href="/1.8/commandline.html" >
@@ -153,7 +153,7 @@
</nav>
<section>
- <h1 id="command-line-tools">Command-Line Tools</h1>
+ <h1 id="command-line-tools" tabindex="-1">Command-Line Tools</h1>
<p>PDFBox comes with a series of command-line utilities. They are available as standard Java applications.</p>
<p>See the <a href="/1.8/dependencies.html">Dependencies</a> page for instructions on how to set your classpath in order to run
PDFBox tools as Java applications.</p>
@@ -173,7 +173,7 @@ PDFBox tools as Java applications.</p>
<li><a href="#texttopdf">TextToPDF</a></li>
<li><a href="#writedecodeddoc">WriteDecodedDoc</a></li>
</ul>
-<h2 id="decrypt">Decrypt</h2>
+<h2 id="decrypt" tabindex="-1">Decrypt</h2>
<p>This application will decrypt a PDF document.</p>
<p>NOTE: You must have the owner password to decrypt the document!</p>
<p>Usage: <code>java -jar pdfbox-app-x.y.z.jar Decrypt [OPTIONS] <inputfile> [outputfile]</code></p>
@@ -207,7 +207,7 @@ PDFBox tools as Java applications.</p>
</tr>
</tbody>
</table>
-<h2 id="encrypt">Encrypt</h2>
+<h2 id="encrypt" tabindex="-1">Encrypt</h2>
<p>This application will encrypt a PDF document.</p>
<p>Usage: <code>java -jar pdfbox-app-x.y.z.jar Encrypt [OPTIONS] <password> <inputfile></code></p>
<table>
@@ -291,7 +291,7 @@ PDFBox tools as Java applications.</p>
</tr>
</tbody>
</table>
-<h2 id="extractimages">ExtractImages</h2>
+<h2 id="extractimages" tabindex="-1">ExtractImages</h2>
<p>This application will extract all images from the given PDF document.</p>
<p>Usage: <code>java -jar pdfbox-app-x.y.z.jar ExtractImages [OPTIONS] <inputfile> </code></p>
<table>
@@ -320,7 +320,7 @@ PDFBox tools as Java applications.</p>
</tr>
</tbody>
</table>
-<h2 id="extracttext">ExtractText</h2>
+<h2 id="extracttext" tabindex="-1">ExtractText</h2>
<p>This application will extract all text from the given PDF document.</p>
<p>Usage: <code>java -jar pdfbox-app-x.y.z.jar ExtractText [OPTIONS] <inputfile> [Text file] </code></p>
<table>
@@ -389,7 +389,7 @@ PDFBox tools as Java applications.</p>
</tr>
</tbody>
</table>
-<h2 id="overlaypdf">OverlayPDF</h2>
+<h2 id="overlaypdf" tabindex="-1">OverlayPDF</h2>
<p>This application will overlay one document with the content of another document</p>
<p>Usage: <code>java -jar pdfbox-app-x.y.z.jar OverlayPDF <input.pdf> [OPTIONS] <output.pdf></code></p>
<table>
@@ -459,7 +459,7 @@ PDFBox tools as Java applications.</p>
<li>OverlayPDF input.pdf defaultOverlay.pdf -page 10 overlayForPage10.pdf -position foreground -nonSeq output.pdf</li>
<li>OverlayPDF input.pdf -odd oddOverlay.pdf -even evenOverlay.pdf -nonSeq output.pdf</li>
</ul>
-<h2 id="printpdf">PrintPDF</h2>
+<h2 id="printpdf" tabindex="-1">PrintPDF</h2>
<p>This application will send a pdf document to the printer.</p>
<p class="alert alert-info">You must have the correct permissions to print the document!</p>
<p>Usage: <code>java -jar pdfbox-app-x.y.z.jar PrintPDF [OPTIONS] <inputfile></code></p>
@@ -485,7 +485,7 @@ PDFBox tools as Java applications.</p>
</tr>
</tbody>
</table>
-<h2 id="pdfdebugger">PDFDebugger</h2>
+<h2 id="pdfdebugger" tabindex="-1">PDFDebugger</h2>
<p>This application will take an existing PDF document and allows to analyze and inspect the internal structure</p>
<p>Usage: <code>java -jar pdfbox-app-x.y.z.jar PDFDebugger [inputfile] </code></p>
<table>
@@ -514,7 +514,7 @@ PDFBox tools as Java applications.</p>
</tr>
</tbody>
</table>
-<h2 id="pdfreader">PDFReader</h2>
+<h2 id="pdfreader" tabindex="-1">PDFReader</h2>
<p>An application to read PDF documents. This will provide Acrobat Reader like functionality.</p>
<p>Usage: <code>java -jar pdfbox-app-x.y.z.jar PDFReader [PDF file]</code></p>
<table>
@@ -543,10 +543,10 @@ PDFBox tools as Java applications.</p>
</tr>
</tbody>
</table>
-<h2 id="pdfmerger">PDFMerger</h2>
+<h2 id="pdfmerger" tabindex="-1">PDFMerger</h2>
<p>This application will take a list of pdf documents and merge them, saving the result in a new document.</p>
<p>Usage: <code>java -jar pdfbox-app-x.y.z.jar PDFMerger <Source PDF files (2 ..n)> <Target PDF file></code></p>
-<h2 id="pdfsplit">PDFSplit</h2>
+<h2 id="pdfsplit" tabindex="-1">PDFSplit</h2>
<p>This application will take an existing PDF document and split it into a number of new documents.</p>
<p>Per default the resulting files will be named after the original filenmame with <code>-<nr></code> appended before the suffix.
To override the filename use the <code>outputPrefix</code> option.</p>
@@ -599,7 +599,7 @@ To override the filename use the <code>outputPrefix</code> option.</p>
<li>PDFSplit -startPage 5 -endPage 10 sample_with_13_pages.pdf will provide a pdf containing all pages from 5 to 10 of the source pdf</li>
<li>PDFSplit -split 2 -startPage 5 -endPage 10 sample_with_13_pages.pdf will provide 3 pdfs containing all pages from 5 to 10 of the source pdf 2 pages each</li>
</ul>
-<h2 id="pdftoimage">PDFToImage</h2>
+<h2 id="pdftoimage" tabindex="-1">PDFToImage</h2>
<p>This application will create an image for every page in the PDF document.</p>
<p>Usage: <code>java -jar pdfbox-app-x.y.z.jar PDFToImage [OPTIONS] <PDF file></code></p>
<table>
@@ -643,7 +643,7 @@ To override the filename use the <code>outputPrefix</code> option.</p>
</tr>
</tbody>
</table>
-<h2 id="texttopdf">TextToPDF</h2>
+<h2 id="texttopdf" tabindex="-1">TextToPDF</h2>
<p>This application will create a PDF document from a text file.</p>
<p>Usage: <code>java -jar pdfbox-app-x.y.z.jar TextToPDF [OPTIONS] <outputfile> <textfile></code></p>
<table>
@@ -689,7 +689,7 @@ To override the filename use the <code>outputPrefix</code> option.</p>
<li>Times-BoldItalic</li>
<li>ZapfDingbats</li>
</ul>
-<h2 id="writedecodeddoc">WriteDecodedDoc</h2>
+<h2 id="writedecodeddoc" tabindex="-1">WriteDecodedDoc</h2>
<p>An application to decompress PDF documents.</p>
<p>Usage: <code>java -jar pdfbox-app-x.y.z.jar WriteDecodedDoc <input-file> <output-file></code></p>
<table>
@@ -785,7 +785,7 @@ To override the filename use the <code>outputPrefix</code> option.</p>
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/1.8/cookbook/documentcreation.html b/content/1.8/cookbook/documentcreation.html
index 180862e3..3e414c15 100644
--- a/content/1.8/cookbook/documentcreation.html
+++ b/content/1.8/cookbook/documentcreation.html
@@ -168,11 +168,11 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="document-creation">Document Creation</h1>
-<h2 id="create-a-blank-pdf-xx">Create a Blank PDF XX</h2>
+ <h1 id="document-creation" tabindex="-1">Document Creation</h1>
+<h2 id="create-a-blank-pdf-xx" tabindex="-1">Create a Blank PDF XX</h2>
<p>This small sample shows how to create a new PDF document using PDFBox.</p>
<pre class="language-java"><code class="language-java"><span class="token comment">// Create a new empty document</span><br><span class="token class-name">PDDocument</span> document <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">PDDocument</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><br><span class="token comment">// Create a new blank page an [...]
-<h2 id="hello-world-using-a-pdf-base-font">Hello World Using a PDF Base Font</h2>
+<h2 id="hello-world-using-a-pdf-base-font" tabindex="-1">Hello World Using a PDF Base Font</h2>
<p>This small sample shows how to create a new document and print the text "Hello World" using one of the PDF base fonts.</p>
<pre class="language-java"><code class="language-java"><span class="token comment">// Create a document and add a page to it</span><br><span class="token class-name">PDDocument</span> document <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">PDDocument</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token class-name">PDPage</span> page [...]
@@ -187,7 +187,7 @@
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/1.8/cookbook/encryption.html b/content/1.8/cookbook/encryption.html
index a7cd9b5d..c1b4e4bb 100644
--- a/content/1.8/cookbook/encryption.html
+++ b/content/1.8/cookbook/encryption.html
@@ -168,9 +168,9 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="encrypting-a-file">Encrypting a File</h1>
+ <h1 id="encrypting-a-file" tabindex="-1">Encrypting a File</h1>
<p>PDF encryption requires two passwords: the "user password" to open and view the file with restricted permissions, the "owner password" to access the file with all permission.</p>
-<h2 id="load-and-save-encrypted">Load and Save Encrypted</h2>
+<h2 id="load-and-save-encrypted" tabindex="-1">Load and Save Encrypted</h2>
<p>This small sample shows how to encrypt a file so that it can be viewed, but not printed.</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">PDDocument</span> doc <span class="token operator">=</span> <span class="token class-name">PDDocument</span><span class="token punctuation">.</span><span class="token function">load</span><span class="token punctuation">(</span><span class="token string">"filename.pdf"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><br><span class="token comment">// Define the [...]
@@ -185,7 +185,7 @@
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/1.8/cookbook/fill-form-field.html b/content/1.8/cookbook/fill-form-field.html
index 9cfecaed..01e8724a 100644
--- a/content/1.8/cookbook/fill-form-field.html
+++ b/content/1.8/cookbook/fill-form-field.html
@@ -168,7 +168,7 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="fill-a-form-field">Fill a Form Field</h1>
+ <h1 id="fill-a-form-field" tabindex="-1">Fill a Form Field</h1>
<p>Form fields within a PDF are defined as part of the AcroForm entry within the PDF's document catalog.
Form there individual fields can be accessed. Fields might be organized in a tree structure so it might
be neccessary to walk through the tree to get an individual field.</p>
@@ -219,7 +219,7 @@ doc.close();
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/1.8/cookbook/pdfacreation.html b/content/1.8/cookbook/pdfacreation.html
index 2700a38f..c658f551 100644
--- a/content/1.8/cookbook/pdfacreation.html
+++ b/content/1.8/cookbook/pdfacreation.html
@@ -168,25 +168,25 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="pdf%2Fa-creation">PDF/A Creation</h1>
+ <h1 id="pdf%2Fa-creation" tabindex="-1">PDF/A Creation</h1>
<p>The Apache PDFBox API can be used to create a PDF/A file. PDF/A is a PDF file with some constraints to ensure its
long time conservation. These constraints are described in ISO 19005.</p>
<p>This small sample shows what should be added during creation of a PDF file to transform it in a valid PDF/A
document. The current example creates a valid PDF/A-1b document.</p>
-<h2 id="load-all-fonts-used-in-the-document">Load All Fonts Used in the Document</h2>
+<h2 id="load-all-fonts-used-in-the-document" tabindex="-1">Load All Fonts Used in the Document</h2>
<p>The PDF/A specification enforces that the fonts used in the document are present in the PDF File. You
have to load them. As an example:</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">InputStream</span> fontStream <span class="token operator">=</span> <span class="token class-name">CreatePDFA</span><span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">.</span><span class="token function">getResourceAsStream</span><span class="token punctuation">(</span><span class="token string">"/org/apache/pdfbox/resources/ttf/ArialMT.ttf"</ [...]
-<h2 id="include-xmp-metadata-block">Include XMP Metadata Block</h2>
+<h2 id="include-xmp-metadata-block" tabindex="-1">Include XMP Metadata Block</h2>
<p>It is required to have XMP metadata defined in the PDF. At least, the PDFA Schema (giving details on the version
of PDF/A specification reached by the document) must be present. These lines create the XMP metadata for a
PDF/A-1b document:</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">XMPMetadata</span> xmp <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">XMPMetadata</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token class-name">XMPSchemaPDFAId</span> pdfaid <span class="token operator">=</span> <span class="token keyword">new</s [...]
-<h2 id="include-color-profile">Include Color Profile</h2>
+<h2 id="include-color-profile" tabindex="-1">Include Color Profile</h2>
<p>It is mandatory to include the color profile used by the document. Different profiles can be used. This
example takes one present in pdfbox:</p>
<pre class="language-java"><code class="language-java"><span class="token comment">// Create output intent</span><br><span class="token class-name">InputStream</span> colorProfile <span class="token operator">=</span> <span class="token class-name">CreatePDFA</span><span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">.</span><span class="token function">getResourceAsStream</span><span class="token punctuation">(</span><span class [...]
-<h2 id="complete-example">Complete example</h2>
+<h2 id="complete-example" tabindex="-1">Complete example</h2>
<p>The complete example can be found in pdfbox-example. The source file is</p>
<pre><code>src/main/java/org/apache/pdfbox/examples/pdfa/CreatePDFA.java
</code></pre>
@@ -202,7 +202,7 @@ example takes one present in pdfbox:</p>
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/1.8/cookbook/pdfavalidation.html b/content/1.8/cookbook/pdfavalidation.html
index e8734f94..4cb91dc9 100644
--- a/content/1.8/cookbook/pdfavalidation.html
+++ b/content/1.8/cookbook/pdfavalidation.html
@@ -168,12 +168,12 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="pdf%2Fa-validation">PDF/A Validation</h1>
+ <h1 id="pdf%2Fa-validation" tabindex="-1">PDF/A Validation</h1>
<p>The Apache Preflight library is a Java tool that implements a parser compliant with the ISO-19005 specification (aka PDF/A-1).
Check Compliance with PDF/A-1b</p>
<p>This small sample shows how to check the compliance of a file with the PDF/A-1b specification.</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">ValidationResult</span> result <span class="token operator">=</span> <span class="token keyword">null</span><span class="token punctuation">;</span><br><br><span class="token class-name">PreflightParser</span> parser <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">PreflightParser</span><span class="token punctuation">(</span>args<span class="to [...]
-<h2 id="categories-of-validation-error">Categories of Validation Error</h2>
+<h2 id="categories-of-validation-error" tabindex="-1">Categories of Validation Error</h2>
<p>If a validation fails, the ValidationResult object contains all causes of the failure.
In order to help in the failure understanding, all error codes have the following form X[.Y[.Z]] where :</p>
<ul>
@@ -233,7 +233,7 @@ In order to help in the failure understanding, all error codes have the followin
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/1.8/cookbook/rendering.html b/content/1.8/cookbook/rendering.html
index d97d788e..705fe369 100644
--- a/content/1.8/cookbook/rendering.html
+++ b/content/1.8/cookbook/rendering.html
@@ -168,8 +168,8 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="document-rendering">Document Rendering</h1>
-<h2 id="convert-a-document-to-images">Convert a Document to Images</h2>
+ <h1 id="document-rendering" tabindex="-1">Document Rendering</h1>
+<h2 id="convert-a-document-to-images" tabindex="-1">Convert a Document to Images</h2>
<p>This small sample shows how to render (convert to images) a PDF document using PDFBox.</p>
<pre><code>:::java
String filename = "YOURFILENAMEHERE.pdf";
@@ -218,7 +218,7 @@
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/1.8/cookbook/textextraction.html b/content/1.8/cookbook/textextraction.html
index 7b32eb69..9abbba47 100644
--- a/content/1.8/cookbook/textextraction.html
+++ b/content/1.8/cookbook/textextraction.html
@@ -168,8 +168,8 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="text-extraction">Text Extraction</h1>
-<h2 id="extracting-text">Extracting Text</h2>
+ <h1 id="text-extraction" tabindex="-1">Text Extraction</h1>
+<h2 id="extracting-text" tabindex="-1">Extracting Text</h2>
<p>See class: org.apache.pdfbox.util.PDFTextStripper<br>
See class: org.apache.pdfbox.searchengine.lucene.LucenePDFDocument<br>
See command-line app: ExtractText</p>
@@ -177,7 +177,7 @@ See command-line app: ExtractText</p>
from a variety of PDF documents. This functionality is encapsulated in the
org.apache.pdfbox.util.PDFTextStripper and can be easily executed on the command line with
org.apache.pdfbox.ExtractText.</p>
-<h2 id="lucene-integration">Lucene Integration</h2>
+<h2 id="lucene-integration" tabindex="-1">Lucene Integration</h2>
<p>Lucene is an open source text search library from the Apache Jakarta Project. In order for
Lucene to be able to index a PDF document it must first be converted to text. PDFBox provides
a simple approach for adding PDF documents into a Lucene index.</p>
@@ -188,12 +188,12 @@ extracts a variety of metadata fields from the PDF to be added to the index, the
shows details on those fields. This approach is very simple and should be sufficient for
most users, if not then you can use some of the advanced text extraction techniques
described in the next section.</p>
-<h2 id="advanced-text-extraction">Advanced Text Extraction</h2>
+<h2 id="advanced-text-extraction" tabindex="-1">Advanced Text Extraction</h2>
<p>Some applications will have complex text extraction requiments and neither the command
line application nor the LucenePDFDocument will be able to fulfill those requirements.
It is possible for users to utilize or extend the PDFTextStripper class to meet some of
these requirements.</p>
-<h3 id="limiting-the-extracted-text">Limiting the Extracted Text</h3>
+<h3 id="limiting-the-extracted-text" tabindex="-1">Limiting the Extracted Text</h3>
<p>There are several ways that we can limit the text that is extracted during the extraction
process. The simplest is to specify the range of pages that you want to be extracted.
For example, to only extract text from the second and third pages of the PDF document
@@ -262,11 +262,11 @@ feature of the PDFTextStripper. Not all bookmarks point to a page in the current
</tbody>
</table>
<p>NOTE: PDFTextStripper will check both the startPage/endPage and the startBookmark/endBookmark to determine if text should be extracted from the current page.</p>
-<h3 id="external-glyph-list">External Glyph List</h3>
+<h3 id="external-glyph-list" tabindex="-1">External Glyph List</h3>
<p>Some PDF files need to map between glyph names and Unicode values during text extraction.
PDFBox comes with an Adobe Glyph List, but you may encounter files with glyph names that
are not in that map. To use your own glyphlist file, supply the file name to the <code>glyphlist_ext</code> JVM property.</p>
-<h3 id="right-to-left-text">Right to Left Text</h3>
+<h3 id="right-to-left-text" tabindex="-1">Right to Left Text</h3>
<p>Extracting text in languages whose text goes from right to left (such as Arabic and Hebrew)
in PDF files can result in text that is backwards. PDFBox can normalize and reverse the text
if the ICU4J jar file has been placed on the classpath (it is an optional dependency).
@@ -284,7 +284,7 @@ or org.apache.pdfbox.ExtractText to ensure accurate output.</p>
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/1.8/cookbook/workingwithattachments.html b/content/1.8/cookbook/workingwithattachments.html
index 7e20ac9e..4b029b6c 100644
--- a/content/1.8/cookbook/workingwithattachments.html
+++ b/content/1.8/cookbook/workingwithattachments.html
@@ -168,8 +168,8 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="working-with-attachments">Working with Attachments</h1>
-<h2 id="the-pdf-file-specification">The PDF File Specification</h2>
+ <h1 id="working-with-attachments" tabindex="-1">Working with Attachments</h1>
+<h2 id="the-pdf-file-specification" tabindex="-1">The PDF File Specification</h2>
<p>See package:org.apache.pdfbox.pdmodel.common.filespecification<br>
See example:EmbeddedFiles</p>
<p>A PDF can contain references to external files via the file system or a URL to a remote
@@ -181,7 +181,7 @@ specification does not allow for any parameters to be set.</p>
the file reference.</p>
<p>It is also possible to embed a file directly into a PDF. Instead of setting the file
attribute of the <code>PDComplexFileSpecification</code>, the <code>EmbeddedFile</code> attribute can be used instead.</p>
-<h2 id="adding-a-file-attachment">Adding a File Attachment</h2>
+<h2 id="adding-a-file-attachment" tabindex="-1">Adding a File Attachment</h2>
<p>PDF documents can contain file attachments that are accessed from the Document->File Attachments
menu. PDFBox allows attachments to be added to and extracted from PDF documents.
Attachments are part of the named tree that is attached to the document catalog.</p>
@@ -198,7 +198,7 @@ Attachments are part of the named tree that is attached to the document catalog.
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/1.8/cookbook/workingwithfonts.html b/content/1.8/cookbook/workingwithfonts.html
index c934920d..7edbf840 100644
--- a/content/1.8/cookbook/workingwithfonts.html
+++ b/content/1.8/cookbook/workingwithfonts.html
@@ -168,8 +168,8 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="working-with-fonts">Working with Fonts</h1>
-<h2 id="standard-14-fonts">Standard 14 Fonts</h2>
+ <h1 id="working-with-fonts" tabindex="-1">Working with Fonts</h1>
+<h2 id="standard-14-fonts" tabindex="-1">Standard 14 Fonts</h2>
<p>The PDF specification states that a standard set of 14 fonts will always be available when consuming PDF documents. In PDFBox these are defined as constants in the PDType1Font class.</p>
<table>
<thead>
@@ -237,10 +237,10 @@
</tr>
</tbody>
</table>
-<h2 id="hello-world-using-a-pdf-base-font">Hello World Using a PDF Base Font</h2>
+<h2 id="hello-world-using-a-pdf-base-font" tabindex="-1">Hello World Using a PDF Base Font</h2>
<p>This small sample shows how to create a new document and print the text "Hello World" using one of the PDF base fonts.</p>
<pre class="language-java"><code class="language-java"><span class="token comment">// Create a document and add a page to it</span><br><span class="token class-name">PDDocument</span> document <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">PDDocument</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token class-name">PDPage</span> page [...]
-<h2 id="hello-world-using-a-truetype-font">Hello World Using a TrueType Font</h2>
+<h2 id="hello-world-using-a-truetype-font" tabindex="-1">Hello World Using a TrueType Font</h2>
<p>This small sample shows how to create a new document and print the text "Hello World" using a TrueType font.</p>
<pre class="language-java"><code class="language-java"><span class="token comment">// Create a document and add a page to it</span><br><span class="token class-name">PDDocument</span> document <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">PDDocument</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token class-name">PDPage</span> page [...]
<p>While it is recommended to embed all fonts for greatest portability not all PDF producer
@@ -249,7 +249,7 @@ PDFBox will look for a mapping file to use when substituting fonts.</p>
<p>PDFBox will load Resources/PDFBox_External_Fonts.properties off of the classpath to map font
names to TTF font files. The UNKNOWN_FONT property in that file will tell PDFBox which font to
use when no mapping exists.</p>
-<h2 id="hello-world-using-a-postscript-type1-font">Hello World Using a PostScript Type1 Font</h2>
+<h2 id="hello-world-using-a-postscript-type1-font" tabindex="-1">Hello World Using a PostScript Type1 Font</h2>
<p>This small sample shows how to create a new document and print the text "Hello World" using a PostScript Type1 font.</p>
<pre class="language-java"><code class="language-java"><span class="token comment">// Create a document and add a page to it</span><br><span class="token class-name">PDDocument</span> document <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">PDDocument</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token class-name">PDPage</span> page [...]
@@ -264,7 +264,7 @@ use when no mapping exists.</p>
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/1.8/cookbook/workingwithmetadata.html b/content/1.8/cookbook/workingwithmetadata.html
index 50f64646..6140d16c 100644
--- a/content/1.8/cookbook/workingwithmetadata.html
+++ b/content/1.8/cookbook/workingwithmetadata.html
@@ -168,8 +168,8 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="working-with-metadata">Working with Metadata</h1>
-<h2 id="introduction">Introduction</h2>
+ <h1 id="working-with-metadata" tabindex="-1">Working with Metadata</h1>
+<h2 id="introduction" tabindex="-1">Introduction</h2>
<p>PDF documents can contain information describing the document itself or certain objects
within the document such as the author of the document or it's creation date.
Basic information can be set and retrieved using the PDDocumentInformation object.</p>
@@ -178,7 +178,7 @@ Getting basic Metadata</p>
<p>To set or retrieve basic information about the document the PDDocumentInformation object
provides a high level API to that information:</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">PDDocumentInformation</span> info <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getDocumentInformation</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="toke [...]
-<h2 id="accessing-pdf-metadata">Accessing PDF Metadata</h2>
+<h2 id="accessing-pdf-metadata" tabindex="-1">Accessing PDF Metadata</h2>
<p>See class: org.apache.pdfbox.pdmodel.common.PDMetadata<br>
See example: AddMetadataFromDocInfo<br>
See Adobe Documentation: XMP Specification</p>
@@ -207,7 +207,7 @@ or set the XML metadata.</p>
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/1.8/dependencies.html b/content/1.8/dependencies.html
index e2d1f044..b23d60d5 100644
--- a/content/1.8/dependencies.html
+++ b/content/1.8/dependencies.html
@@ -104,17 +104,13 @@
<a href="/1.8/cookbook/encryption.html" >
Encrypting a File
</a>
- </li><li>
- <a href="/1.8/cookbook/pdfacreation.html" >
- PDF/A Creation
- </a>
</li><li>
<a href="/1.8/cookbook/fill-form-field.html" >
Fill a Form Field
</a>
</li><li>
- <a href="/1.8/cookbook/pdfavalidation.html" >
- PDF/A Validation
+ <a href="/1.8/cookbook/pdfacreation.html" >
+ PDF/A Creation
</a>
</li><li>
<a href="/1.8/cookbook/rendering.html" >
@@ -125,17 +121,21 @@
Text Extraction
</a>
</li><li>
- <a href="/1.8/cookbook/workingwithattachments.html" >
- Working with Attachments
+ <a href="/1.8/cookbook/pdfavalidation.html" >
+ PDF/A Validation
</a>
</li><li>
- <a href="/1.8/cookbook/workingwithfonts.html" >
- Working with Fonts
+ <a href="/1.8/cookbook/workingwithattachments.html" >
+ Working with Attachments
</a>
</li><li>
<a href="/1.8/cookbook/workingwithmetadata.html" >
Working with Metadata
</a>
+ </li><li>
+ <a href="/1.8/cookbook/workingwithfonts.html" >
+ Working with Fonts
+ </a>
</li></ul>
</li><li>
<a href="/1.8/commandline.html" >
@@ -153,12 +153,12 @@
</nav>
<section>
- <h1 id="dependencies">Dependencies</h1>
+ <h1 id="dependencies" tabindex="-1">Dependencies</h1>
<p>PDFBox consists of three related components and depends on a few external libraries. This page describes what these libraries are and how to include them in your application.</p>
-<h2 id="core-components">Core Components</h2>
+<h2 id="core-components" tabindex="-1">Core Components</h2>
<p class="alert alert-info">These components are needed during runtime, development and testing dependent on the details below.</p>
<p>The three PDFBox components are named <code>pdfbox</code>, <code>fontbox</code> and <code>jempbox</code>. The Maven groupId of all PDFBox components is org.apache.pdfbox.</p>
-<h3 id="minimum-requirements">Minimum Requirements</h3>
+<h3 id="minimum-requirements" tabindex="-1">Minimum Requirements</h3>
<ul>
<li>Java 1.5</li>
<li><a href="http://commons.apache.org/logging/">commons-logging</a></li>
@@ -168,34 +168,34 @@ Commons Logging is a generic wrapper around different logging frameworks, so you
or let commons-logging fall back to the standard <a href="http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/overview.html">java.util.logging API</a>
included in the Java platform.</p>
<p>For <strong>PDFBox Preflight only</strong> <a href="https://commons.apache.org/proper/commons-io/">commons-io 1.4</a> is needed.</p>
-<h3 id="font-handling">Font Handling</h3>
+<h3 id="font-handling" tabindex="-1">Font Handling</h3>
<p>For font handling the fontbox component is needed.</p>
-<h3 id="xmp-metadata">XMP Metadata</h3>
+<h3 id="xmp-metadata" tabindex="-1">XMP Metadata</h3>
<p>To support XMP metadata the jembox component is needed.</p>
<p>To add the pdfbox, fontbox, jempbox and commons-logging jars to your application, the easiest thing is to declare the Maven dependency shown below. This gives you the main
pdfbox library directly and the other required jars as transitive dependencies.</p>
<pre class="language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependency</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>groupId</span><span class="token punctuation">></span></span>org.apache.pdfbox<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>groupId</span><sp [...]
<p>Set the version field to the latest stable PDFBox version.</p>
-<h2 id="optional-dependencies">Optional Dependencies</h2>
+<h2 id="optional-dependencies" tabindex="-1">Optional Dependencies</h2>
<p>Some features in PDFBox depend on optional external libraries. You can enable these features simply by including the required libraries in the classpath of your application.</p>
-<h3 id="extented-image-format-support">Extented Image Format Support</h3>
+<h3 id="extented-image-format-support" tabindex="-1">Extented Image Format Support</h3>
<p>To support JBIG2 and writing TIFF images additional libraries are needed.</p>
<p class="alert alert-warning">The image plugins described below are not part of the PDFBox distribution because of incompatible licensing terms. Please make sure to check if the licensing terms are compatible to your usage.</p>
<p>For <strong>JBIG2</strong> support a Java ImageIO Plugin such as the <a href="https://github.com/levigo/jbig2-imageio">Levigo Plugin</a> or <a href="https://github.com/Borisvl/JBIG2-Image-Decoder">JBIG2-Image-Decoder
</a> will be needed.</p>
<p>To write <strong>TIFF</strong> images a JAI ImageIO Core library will be needed.</p>
-<h4 id="pdf-encryption-and-signing">PDF Encryption and Signing</h4>
+<h4 id="pdf-encryption-and-signing" tabindex="-1">PDF Encryption and Signing</h4>
<p>The most notable such optional feature is support for PDF encryption. Instead of implementing its own encryption algorithms, PDFBox uses libraries from the
<a href="http://www.bouncycastle.org/">Legion of the Bouncy Castle</a>. Both the bcprov and bcmail libraries are needed and can be included using the Maven dependencies shown below.</p>
<pre class="language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependency</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>groupId</span><span class="token punctuation">></span></span>org.bouncycastle<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>groupId</span><spa [...]
-<h4 id="support-for-bidirectional-languages">Support for Bidirectional Languages</h4>
+<h4 id="support-for-bidirectional-languages" tabindex="-1">Support for Bidirectional Languages</h4>
<p>Another important optional feature is support for bidirectional languages like Arabic. PDFBox uses the ICU4J library from the
<a href="http://site.icu-project.org/">International Components for Unicode</a> (ICU) project to support such languages in PDF documents. To add the ICU4J jar to your project,
use the following Maven dependency.</p>
<pre class="language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependency</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>groupId</span><span class="token punctuation">></span></span>com.ibm.icu<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>groupId</span><span cla [...]
<p>PDFBox also contains extra support for use with the <a href="http://lucene.apache.org/">Lucene</a> and <a href="http://ant.apache.org/">Ant</a> projects. Since in these cases PDFBox is just an
add-on feature to these projects, you should first set up your application to use Lucene or Ant and then add PDFBox support as described on this page.</p>
-<h2 id="dependencies-for-ant-builds">Dependencies for Ant Builds</h2>
+<h2 id="dependencies-for-ant-builds" tabindex="-1">Dependencies for Ant Builds</h2>
<p>The above instructions expect that you're using <a href="http://maven.apache.org/">Maven</a> or another build tool like <a href="http://ant.apache.org/ivy/">Ivy</a> that supports Maven dependencies.
If you instead use tools like <a href="http://ant.apache.org/">Ant</a> where you need to explicitly include all the required library jars in your application, you'll need to do
something different.</p>
@@ -251,7 +251,7 @@ libraries discussed above into the pdfbox/target/dependencies directory. You can
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/1.8/faq.html b/content/1.8/faq.html
index b5c60392..eb9bad01 100644
--- a/content/1.8/faq.html
+++ b/content/1.8/faq.html
@@ -104,17 +104,13 @@
<a href="/1.8/cookbook/encryption.html" >
Encrypting a File
</a>
- </li><li>
- <a href="/1.8/cookbook/pdfacreation.html" >
- PDF/A Creation
- </a>
</li><li>
<a href="/1.8/cookbook/fill-form-field.html" >
Fill a Form Field
</a>
</li><li>
- <a href="/1.8/cookbook/pdfavalidation.html" >
- PDF/A Validation
+ <a href="/1.8/cookbook/pdfacreation.html" >
+ PDF/A Creation
</a>
</li><li>
<a href="/1.8/cookbook/rendering.html" >
@@ -125,17 +121,21 @@
Text Extraction
</a>
</li><li>
- <a href="/1.8/cookbook/workingwithattachments.html" >
- Working with Attachments
+ <a href="/1.8/cookbook/pdfavalidation.html" >
+ PDF/A Validation
</a>
</li><li>
- <a href="/1.8/cookbook/workingwithfonts.html" >
- Working with Fonts
+ <a href="/1.8/cookbook/workingwithattachments.html" >
+ Working with Attachments
</a>
</li><li>
<a href="/1.8/cookbook/workingwithmetadata.html" >
Working with Metadata
</a>
+ </li><li>
+ <a href="/1.8/cookbook/workingwithfonts.html" >
+ Working with Fonts
+ </a>
</li></ul>
</li><li>
<a href="/1.8/commandline.html" >
@@ -153,9 +153,9 @@
</nav>
<section>
- <h1 id="frequently-asked-questions">Frequently Asked Questions</h1>
-<h2 id="general-questions">General Questions</h2>
-<h3 id="i-am-getting-the-below-log4j-warning-message%2C-how-do-i-remove-it">I am getting the below Log4J warning message, how do I remove it</h3>
+ <h1 id="frequently-asked-questions" tabindex="-1">Frequently Asked Questions</h1>
+<h2 id="general-questions" tabindex="-1">General Questions</h2>
+<h3 id="i-am-getting-the-below-log4j-warning-message%2C-how-do-i-remove-it" tabindex="-1">I am getting the below Log4J warning message, how do I remove it</h3>
<pre class="language-shell"><code class="language-shell">log4j:WARN No appenders could be found <span class="token keyword">for</span> logger <span class="token punctuation">(</span>org.apache.pdfbox.util.ResourceLoader<span class="token punctuation">)</span>.<br>log4j:WARN Please initialize the log4j system properly.</code></pre>
<p>This message means that you need to configure the log4j logging system.
See the <a href="http://logging.apache.org/log4j/1.2/manual.html">log4j documentation</a> for more information.</p>
@@ -163,17 +163,17 @@ See the <a href="http://logging.apache.org/log4j/1.2/manual.html">log4j document
<pre class="language-shell"><code class="language-shell">java -Dlog4j.configuration<span class="token operator">=</span>log4j.xml org.apache.pdfbox.ExtractText <span class="token operator"><</span>PDF-file<span class="token operator">></span> <span class="token operator"><</span>output-text-file<span class="token operator">></span></code></pre>
<p>If this is not working for you then you may have to specify the log4j config file using a URL path, like this:</p>
<pre class="language-shell"><code class="language-shell">log4j.configuration<span class="token operator">=</span>file:///<span class="token operator"><</span>path to config file<span class="token operator">></span></code></pre>
-<h3 id="is-pdfbox-thread-safe">Is PDFBox thread safe</h3>
+<h3 id="is-pdfbox-thread-safe" tabindex="-1">Is PDFBox thread safe</h3>
<p>No! Only one thread may access a single document at a time. You can have multiple threads
each accessing their own PDDocument object.</p>
-<h3 id="why-do-i-get-a-%22warning%3A-you-did-not-close-the-pdf-document%22">Why do I get a "Warning: You did not close the PDF Document"</h3>
+<h3 id="why-do-i-get-a-%22warning%3A-you-did-not-close-the-pdf-document%22" tabindex="-1">Why do I get a "Warning: You did not close the PDF Document"</h3>
<p>You need to call close() on the PDDocument inside the finally block, if you
don't then the document will not be closed properly. Also, you must close all
PDDocument objects that get created. The following code creates <strong>two</strong>
PDDocument objects; one from the "new PDDocument()" and the second by the load method.</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">PDDocument</span> doc <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">PDDocument</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token keyword">try</span><br><span class="token punctuation">{</span><br> doc <span class="token operator">=</span> <spa [...]
-<h2 id="text-extraction">Text Extraction</h2>
-<h3 id="how-come-i-am-not-getting-any-text-from-the-pdf-document">How come I am not getting any text from the PDF document</h3>
+<h2 id="text-extraction" tabindex="-1">Text Extraction</h2>
+<h3 id="how-come-i-am-not-getting-any-text-from-the-pdf-document" tabindex="-1">How come I am not getting any text from the PDF document</h3>
<p>Text extraction from a pdf document is a complicated task and there are many factors
involved that effect the possibility and accuracy of text extraction. It would be helpful
to the PDFBox team if you could try a couple things.</p>
@@ -183,22 +183,22 @@ should be able to as well and it is a bug if it cannot. If Acrobat cannot extra
<li>It might really be an image instead of text. Some PDF documents are just images that have been scanned in.
You can tell by using the selection tool in Acrobat, if you can't select any text then it is probably an image.</li>
</ul>
-<h3 id="how-come-i-am-getting-gibberish(g38g43g36g51g5)-when-extracting-text">How come I am getting gibberish(G38G43G36G51G5) when extracting text</h3>
+<h3 id="how-come-i-am-getting-gibberish(g38g43g36g51g5)-when-extracting-text" tabindex="-1">How come I am getting gibberish(G38G43G36G51G5) when extracting text</h3>
<p>This is because the characters in a PDF document can use a custom encoding
instead of unicode or ASCII. When you see gibberish text then it
probably means that a meaningless internal encoding is being used. The
only way to access the text is to use OCR. This may be a future
enhancement.</p>
-<h3 id="what-does-%22java.io.ioexception%3A-can't-handle-font-width%22-mean">What does "java.io.IOException: Can't handle font width" mean</h3>
+<h3 id="what-does-%22java.io.ioexception%3A-can't-handle-font-width%22-mean" tabindex="-1">What does "java.io.IOException: Can't handle font width" mean</h3>
<p>This probably means that the "Resources" directory is not in your classpath. The
Resources directory is included in the PDFBox jar so this is only a problem if you
are building PDFBox yourself and not using the binary.</p>
-<h3 id="why-do-i-get-%22you-do-not-have-permission-to-extract-text%22-on-some-documents">Why do I get "You do not have permission to extract text" on some documents</h3>
+<h3 id="why-do-i-get-%22you-do-not-have-permission-to-extract-text%22-on-some-documents" tabindex="-1">Why do I get "You do not have permission to extract text" on some documents</h3>
<p>PDF documents have certain security permissions that can be applied to them and two
passwords associated with them, an user password and an owner password. If the "cannot extract text"
permission bit is set then you need to decrypt the document with the owner password in order
to extract the text.</p>
-<h3 id="can't-we-just-extract-the-text-without-parsing-the-whole-document-or-extract-text-as-it-is-parsed">Can't we just extract the text without parsing the whole document or extract text as it is parsed</h3>
+<h3 id="can't-we-just-extract-the-text-without-parsing-the-whole-document-or-extract-text-as-it-is-parsed" tabindex="-1">Can't we just extract the text without parsing the whole document or extract text as it is parsed</h3>
<p>Not really, for a couple reasons.</p>
<ul>
<li>If the document is encrypted then you need to parse at least until the encryption dictionary before
@@ -267,7 +267,7 @@ the word "Hello" is drawn.</li>
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/2.0/commandline.html b/content/2.0/commandline.html
index 26a8bfd8..8745a819 100644
--- a/content/2.0/commandline.html
+++ b/content/2.0/commandline.html
@@ -125,11 +125,11 @@
</nav>
<section>
- <h1 id="command-line-tools">Command-Line Tools</h1>
+ <h1 id="command-line-tools" tabindex="-1">Command-Line Tools</h1>
<p>PDFBox comes with a series of command-line utilities. They are available as standard Java applications.</p>
<p>See the <a href="/2.0/dependencies.html">Dependencies</a> page for instructions on how to set your classpath in order to run
PDFBox tools as Java applications.</p>
-<h2 id="decrypt">Decrypt</h2>
+<h2 id="decrypt" tabindex="-1">Decrypt</h2>
<p>This application will decrypt a PDF document.</p>
<p>NOTE: You must have the owner password to decrypt the document!</p>
<p>Usage: <code>java -jar pdfbox-app-2.y.z.jar Decrypt [OPTIONS] <inputfile> [outputfile]</code></p>
@@ -163,7 +163,7 @@ PDFBox tools as Java applications.</p>
</tr>
</tbody>
</table>
-<h2 id="encrypt">Encrypt</h2>
+<h2 id="encrypt" tabindex="-1">Encrypt</h2>
<p>This application will encrypt a PDF document.</p>
<p>Usage: <code>java -jar pdfbox-app-2.y.z.jar Encrypt [OPTIONS] <password> <inputfile></code></p>
<table>
@@ -247,7 +247,7 @@ PDFBox tools as Java applications.</p>
</tr>
</tbody>
</table>
-<h2 id="extractimages">ExtractImages</h2>
+<h2 id="extractimages" tabindex="-1">ExtractImages</h2>
<p>This application will extract all images from the given PDF document.</p>
<p>Usage: <code>java -jar pdfbox-app-2.y.z.jar ExtractImages [OPTIONS] <inputfile> </code></p>
<table>
@@ -276,7 +276,7 @@ PDFBox tools as Java applications.</p>
</tr>
</tbody>
</table>
-<h2 id="extracttext">ExtractText</h2>
+<h2 id="extracttext" tabindex="-1">ExtractText</h2>
<p>This application will extract all text from the given PDF document.</p>
<p>Usage: <code>java -jar pdfbox-app-2.y.z.jar ExtractText [OPTIONS] <inputfile> [Text file] </code></p>
<table>
@@ -345,7 +345,7 @@ PDFBox tools as Java applications.</p>
</tr>
</tbody>
</table>
-<h2 id="overlaypdf">OverlayPDF</h2>
+<h2 id="overlaypdf" tabindex="-1">OverlayPDF</h2>
<p>This application will overlay one document with the content of another document</p>
<p>Usage: <code>java -jar pdfbox-app-2.y.z.jar OverlayPDF <input.pdf> [OPTIONS] <output.pdf></code></p>
<table>
@@ -410,7 +410,7 @@ PDFBox tools as Java applications.</p>
<li>OverlayPDF input.pdf defaultOverlay.pdf -page 10 overlayForPage10.pdf -position foreground output.pdf</li>
<li>OverlayPDF input.pdf -odd oddOverlay.pdf -even evenOverlay.pdf output.pdf</li>
</ul>
-<h2 id="pdfdebugger">PDFDebugger</h2>
+<h2 id="pdfdebugger" tabindex="-1">PDFDebugger</h2>
<p>This application will take an existing PDF document and allows to analyze and inspect the internal structure.
It is used as replacement for the PDFReader which was removed in 2.0.0.</p>
<p>Usage: <code>java -jar pdfbox-app-2.y.z.jar PDFDebugger [inputfile] </code></p>
@@ -440,10 +440,10 @@ It is used as replacement for the PDFReader which was removed in 2.0.0.</p>
</tr>
</tbody>
</table>
-<h2 id="pdfmerger">PDFMerger</h2>
+<h2 id="pdfmerger" tabindex="-1">PDFMerger</h2>
<p>This application will take a list of pdf documents and merge them, saving the result in a new document.</p>
<p>Usage: <code>java -jar pdfbox-app-2.y.z.jar PDFMerger <Source PDF files (2 ..n)> <Target PDF file></code></p>
-<h2 id="pdfsplit">PDFSplit</h2>
+<h2 id="pdfsplit" tabindex="-1">PDFSplit</h2>
<p>This application will take an existing PDF document and split it into a number of new documents.</p>
<p>Per default the resulting files will be named after the original filenmame with <code>-<nr></code> appended before the suffix.
To override the filename use the <code>outputPrefix</code> option.</p>
@@ -491,7 +491,7 @@ To override the filename use the <code>outputPrefix</code> option.</p>
<li>PDFSplit -startPage 5 -endPage 10 sample_with_13_pages.pdf will provide a pdf containing all pages from 5 to 10 of the source pdf</li>
<li>PDFSplit -split 2 -startPage 5 -endPage 10 sample_with_13_pages.pdf will provide 3 pdfs containing all pages from 5 to 10 of the source pdf 2 pages each</li>
</ul>
-<h2 id="pdftoimage">PDFToImage</h2>
+<h2 id="pdftoimage" tabindex="-1">PDFToImage</h2>
<p>This application will create an image for every page in the PDF document.</p>
<p>Usage: <code>java -jar pdfbox-app-2.y.z.jar PDFToImage [OPTIONS] <PDF file></code></p>
<table>
@@ -555,7 +555,7 @@ To override the filename use the <code>outputPrefix</code> option.</p>
</tr>
</tbody>
</table>
-<h2 id="printpdf">PrintPDF</h2>
+<h2 id="printpdf" tabindex="-1">PrintPDF</h2>
<p>This application will send a pdf document to the printer.</p>
<p class="alert alert-info">You must have the correct permissions to print the document!</p>
<p>Usage: <code>java -jar pdfbox-app-2.y.z.jar PrintPDF [OPTIONS] <inputfile></code></p>
@@ -605,7 +605,7 @@ To override the filename use the <code>outputPrefix</code> option.</p>
</tr>
</tbody>
</table>
-<h2 id="texttopdf">TextToPDF</h2>
+<h2 id="texttopdf" tabindex="-1">TextToPDF</h2>
<p>This application will create a PDF document from a text file.</p>
<p>Usage: <code>java -jar pdfbox-app-2.y.z.jar TextToPDF [OPTIONS] <outputfile> <textfile></code></p>
<table>
@@ -651,7 +651,7 @@ To override the filename use the <code>outputPrefix</code> option.</p>
<li>Times-BoldItalic</li>
<li>ZapfDingbats</li>
</ul>
-<h2 id="writedecodeddoc">WriteDecodedDoc</h2>
+<h2 id="writedecodeddoc" tabindex="-1">WriteDecodedDoc</h2>
<p>An application to decompress PDF documents.</p>
<p>Usage: <code>java -jar pdfbox-app-2.y.z.jar WriteDecodedDoc <input-file> <output-file></code></p>
<table>
@@ -739,7 +739,7 @@ To override the filename use the <code>outputPrefix</code> option.</p>
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/2.0/cookbook/encryption.html b/content/2.0/cookbook/encryption.html
index fbcbdb87..a6a0c8ee 100644
--- a/content/2.0/cookbook/encryption.html
+++ b/content/2.0/cookbook/encryption.html
@@ -125,9 +125,9 @@
</nav>
<section>
- <h1 id="encrypting-a-file">Encrypting a File</h1>
+ <h1 id="encrypting-a-file" tabindex="-1">Encrypting a File</h1>
<p>PDF encryption requires two passwords: the "user password" to open and view the file with restricted permissions, the "owner password" to access the file with all permission.</p>
-<h2 id="load-and-save-encrypted">Load and Save Encrypted</h2>
+<h2 id="load-and-save-encrypted" tabindex="-1">Load and Save Encrypted</h2>
<p>This small sample shows how to encrypt a file so that it can be viewed, but not printed.</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">PDDocument</span> doc <span class="token operator">=</span> <span class="token class-name">PDDocument</span><span class="token punctuation">.</span><span class="token function">load</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">File</span><span class="token punctuation">(</span><span class="token string">"filename.pdf"</span><span cla [...]
@@ -156,7 +156,7 @@
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/2.0/dependencies.html b/content/2.0/dependencies.html
index 34c4674e..cd8d0abe 100644
--- a/content/2.0/dependencies.html
+++ b/content/2.0/dependencies.html
@@ -125,11 +125,11 @@
</nav>
<section>
- <h1 id="dependencies">Dependencies</h1>
-<h2 id="core-components">Core Components</h2>
+ <h1 id="dependencies" tabindex="-1">Dependencies</h1>
+<h2 id="core-components" tabindex="-1">Core Components</h2>
<p class="alert alert-info">These components are needed during runtime, development and testing dependent on the details below.</p>
<p>The three PDFBox components are named <code>pdfbox</code>, <code>fontbox</code> and <code>xmpbox</code>. The Maven groupId of all PDFBox components is org.apache.pdfbox.</p>
-<h3 id="minimum-requirements">Minimum Requirements</h3>
+<h3 id="minimum-requirements" tabindex="-1">Minimum Requirements</h3>
<p>PDFBox has the following basic dependencies:</p>
<ul>
<li>Java 6</li>
@@ -139,17 +139,17 @@
or let commons-logging fall back to the standard <a href="http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/overview.html">java.util.logging API</a>
included in the Java platform.</p>
<p>For <strong>PDFBox Preflight tests only</strong> <a href="https://commons.apache.org/proper/commons-io/">commons-io 2.4</a> is needed.</p>
-<h3 id="font-handling">Font Handling</h3>
+<h3 id="font-handling" tabindex="-1">Font Handling</h3>
<p>For font handling the fontbox component is needed.</p>
-<h3 id="xmp-metadata">XMP Metadata</h3>
+<h3 id="xmp-metadata" tabindex="-1">XMP Metadata</h3>
<p>To support XMP metadata the xmpbox component is needed.</p>
-<h3 id="include-dependencies-using-maven">Include Dependencies Using Maven</h3>
+<h3 id="include-dependencies-using-maven" tabindex="-1">Include Dependencies Using Maven</h3>
<p>To add the pdfbox, fontbox, xmpbox and commons-logging jars to your application, the easiest thing is to declare the Maven dependency shown below. This gives you the main pdfbox library directly and the other required jars as transitive dependencies.</p>
<pre class="language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependency</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>groupId</span><span class="token punctuation">></span></span>org.apache.pdfbox<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>groupId</span>< [...]
<p>Set the version field to the latest stable PDFBox version.</p>
-<h2 id="optional-components">Optional Components</h2>
+<h2 id="optional-components" tabindex="-1">Optional Components</h2>
<p>PDFBox does not ship with all features enabled. Third party components are necessary to get full support for certain functionality.</p>
-<h3 id="jai-image-i%2Fo">JAI Image I/O</h3>
+<h3 id="jai-image-i%2Fo" tabindex="-1">JAI Image I/O</h3>
<p>PDF supports embedded image files, however support for some formats require third party libraries which are distributed under terms incompatible with the Apache 2.0 license:</p>
<ul>
<li>Reading <strong>JBIG2</strong> images: <a href="https://pdfbox.apache.org/download.cgi#JBIG2">JBIG2 ImageIO</a></li>
@@ -160,14 +160,14 @@ included in the Java platform.</p>
<p>Maven dependencies for these components can be found in <a href="https://svn.apache.org/viewvc/pdfbox/trunk/parent/pom.xml?view=markup">parent/pom.xml</a>. <strong>Change the scope of the components if needed</strong>. Please make sure that any third party licenses are suitable for your project.</p>
<p>To include the JBIG2 library the following part can be included in your project pom.xml:</p>
<pre class="language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependency</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>groupId</span><span class="token punctuation">></span></span>org.apache.pdfbox<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>groupId</span>< [...]
-<h3 id="encryption-and-signing">Encryption and Signing</h3>
+<h3 id="encryption-and-signing" tabindex="-1">Encryption and Signing</h3>
<p>Encrypting and sigining PDFs requires the <em>bcprov</em>, <em>bcmail</em> and <em>bcpkix</em> libraries from the <a href="http://www.bouncycastle.org/">Legion of the Bouncy Castle</a>. These can be included in your Maven project using the following dependencies:</p>
<pre class="language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependency</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>groupId</span><span class="token punctuation">></span></span>org.bouncycastle<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>groupId</span><s [...]
-<h3 id="java-cryptography-extension-(jce)">Java Cryptography Extension (JCE)</h3>
+<h3 id="java-cryptography-extension-(jce)" tabindex="-1">Java Cryptography Extension (JCE)</h3>
<p>256-bit AES encryption requires a JDK with "unlimited strength" cryptography, which requires extra files to be installed. For JDK 7, see <a href="http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html">Java Cryptography Extension (JCE)</a>. If these files are not installed, building PDFBox will throw an exception with the following message:</p>
<pre><code>JCE unlimited strength jurisdiction policy files are not installed
</code></pre>
-<h2 id="dependencies-for-ant-builds">Dependencies for Ant Builds</h2>
+<h2 id="dependencies-for-ant-builds" tabindex="-1">Dependencies for Ant Builds</h2>
<p>The above instructions expect that you're using <a href="http://maven.apache.org/">Maven</a> or another build tool like
<a href="http://ant.apache.org/ivy/">Ivy</a> that supports Maven dependencies.
If you instead use tools like <a href="http://ant.apache.org/">Ant</a> where you need to explicitly include all the required
@@ -234,7 +234,7 @@ directory. You can then simply copy all the libraries you need from this directo
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/2.0/examples.html b/content/2.0/examples.html
index 3785e42e..98901442 100644
--- a/content/2.0/examples.html
+++ b/content/2.0/examples.html
@@ -125,7 +125,7 @@
</nav>
<section>
- <h1 id="examples">Examples</h1>
+ <h1 id="examples" tabindex="-1">Examples</h1>
<p>This content is under construction. Please look at our <a href="https://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/">examples</a> directory in SVN.</p>
</section>
@@ -147,7 +147,7 @@
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/2.0/faq.html b/content/2.0/faq.html
index 98f199f5..22d1a6f3 100644
--- a/content/2.0/faq.html
+++ b/content/2.0/faq.html
@@ -125,10 +125,10 @@
</nav>
<section>
- <h1 id="frequently-asked-questions">Frequently Asked Questions</h1>
-<h2 id="general-questions">General Questions</h2>
+ <h1 id="frequently-asked-questions" tabindex="-1">Frequently Asked Questions</h1>
+<h2 id="general-questions" tabindex="-1">General Questions</h2>
<p><a name="log4j"></a></p>
-<h3 id="i-am-getting-the-below-log4j-warning-message%2C-how-do-i-remove-it%3F">I am getting the below Log4J warning message, how do I remove it?</h3>
+<h3 id="i-am-getting-the-below-log4j-warning-message%2C-how-do-i-remove-it%3F" tabindex="-1">I am getting the below Log4J warning message, how do I remove it?</h3>
<pre><code>log4j:WARN No appenders could be found for logger (org.apache.pdfbox.util.ResourceLoader).
log4j:WARN Please initialize the log4j system properly.
</code></pre>
@@ -141,25 +141,25 @@ See the <a href="http://logging.apache.org/log4j/1.2/manual.html">log4j document
<pre><code>log4j.configuration=file:///<path to config file>
</code></pre>
<p><a name="threadsafe"></a></p>
-<h3 id="is-pdfbox-thread-safe%3F">Is PDFBox thread safe?</h3>
+<h3 id="is-pdfbox-thread-safe%3F" tabindex="-1">Is PDFBox thread safe?</h3>
<p>No! Only one thread may access a single document at a time. You can have multiple threads each accessing their own
PDDocument object.</p>
<p><a name="notclosed"></a></p>
-<h3 id="why-do-i-get-a-%22warning%3A-you-did-not-close-the-pdf-document%22%3F">Why do I get a "Warning: You did not close the PDF Document"?</h3>
+<h3 id="why-do-i-get-a-%22warning%3A-you-did-not-close-the-pdf-document%22%3F" tabindex="-1">Why do I get a "Warning: You did not close the PDF Document"?</h3>
<p>You need to call close() on the PDDocument inside the finally block, if you
don't then the document will not be closed properly. Also, you must close all
PDDocument objects that get created. The following code creates <strong>two</strong>
PDDocument objects; one from the "new PDDocument()" and the second by the load method.</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">PDDocument</span> doc <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">PDDocument</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token keyword">try</span><br><span class="token punctuation">{</span><br> doc <span class="token operator">=</span> <spa [...]
-<h2 id="font-handling">Font Handling</h2>
+<h2 id="font-handling" tabindex="-1">Font Handling</h2>
<p><a name="fontencoding"></a></p>
-<h3 id="i'm-getting-java.lang.illegalargumentexception%3A-...-is-not-available-in-this-font's-encoding%3A-winansiencoding">I'm getting java.lang.IllegalArgumentException: ... is not available in this font's encoding: WinAnsiEncoding</h3>
+<h3 id="i'm-getting-java.lang.illegalargumentexception%3A-...-is-not-available-in-this-font's-encoding%3A-winansiencoding" tabindex="-1">I'm getting java.lang.IllegalArgumentException: ... is not available in this font's encoding: WinAnsiEncoding</h3>
<p>Check whether the character is available in WinAnsiEncoding by looking at the <a href="https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf">PDF Specification</a> Appendix D.
If not, but if it is available in this font (in windows, have a look with charmap.exe), then load the font with
PDType0Font.load(), see also in the EmbeddedFonts.java example in the source code download.</p>
-<h2 id="pdf-creation">PDF Creation</h2>
+<h2 id="pdf-creation" tabindex="-1">PDF Creation</h2>
<p><a name="layout"></a></p>
-<h3 id="can-i-use-pdfbox-to-create-complex-layouts%3F">Can I use PDFBox to create complex layouts?</h3>
+<h3 id="can-i-use-pdfbox-to-create-complex-layouts%3F" tabindex="-1">Can I use PDFBox to create complex layouts?</h3>
<p>I'd like to use PDFBox to create a complex layout containing several paragraphs, tables, images etc. Is PDFBox fit for that purpose?</p>
<p>PDFBox being a low level PDF library provides the APIs to create page content such as text, images etc. But at this point in time it doesn't provide a higher level API to do page layout, paragraph handling, automatic line wrapping or create tables and such.</p>
<p>But PDFBox is the foundation of some projects which might help in that case. This includes projects such as</p>
@@ -173,17 +173,17 @@ PDType0Font.load(), see also in the EmbeddedFonts.java example in the source cod
</ul>
<p>You may also want to consider using <a href="https://xmlgraphics.apache.org/fop/">Apache FOP</a> which allows to create complex documents from XML data and templates-</p>
<p><a name="emptypage"></a></p>
-<h3 id="i'm-creating-a-pdf-but-my-page-is-empty.-why%3F">I'm creating a PDF but my page is empty. Why?</h3>
+<h3 id="i'm-creating-a-pdf-but-my-page-is-empty.-why%3F" tabindex="-1">I'm creating a PDF but my page is empty. Why?</h3>
<p>Make sure that you closed your content stream before saving.</p>
-<h2 id="text-extraction">Text Extraction</h2>
+<h2 id="text-extraction" tabindex="-1">Text Extraction</h2>
<p><a name="textorder"></a></p>
-<h3 id="why-does-the-extracted-text-appear-in-the-wrong-sequence%3F">Why does the extracted text appear in the wrong sequence?</h3>
+<h3 id="why-does-the-extracted-text-appear-in-the-wrong-sequence%3F" tabindex="-1">Why does the extracted text appear in the wrong sequence?</h3>
<p>By default, text extraction is done in the same sequence as the text in the PDF page content stream.
PDF is a graphic format, not a text format, and unlike HTML, it has no requirements that text one on page
be rendered in a certain order. The order is the one that was determined by the software that created the PDF.
To get text sorted from left to right and top to botton, use <code>setSortByPosition(true)</code>.</p>
<p><a name="notext"></a></p>
-<h3 id="how-come-i-am-not-getting-any-text-from-the-pdf-document%3F">How come I am not getting any text from the PDF document?</h3>
+<h3 id="how-come-i-am-not-getting-any-text-from-the-pdf-document%3F" tabindex="-1">How come I am not getting any text from the PDF document?</h3>
<p>Text extraction from a pdf document is a complicated task and there are many factors
involved that effect the possibility and accuracy of text extraction. It would be helpful
to the PDFBox team if you could try a couple things.</p>
@@ -194,25 +194,25 @@ should be able to as well and it is a bug if it cannot. If Acrobat cannot extra
You can tell by using the selection tool in Acrobat, if you can't select any text then it is probably an image.</li>
</ul>
<p><a name="gibberish"></a></p>
-<h3 id="how-come-i-am-getting-gibberish(g38g43g36g51g5)-when-extracting-text%3F">How come I am getting gibberish(G38G43G36G51G5) when extracting text?</h3>
+<h3 id="how-come-i-am-getting-gibberish(g38g43g36g51g5)-when-extracting-text%3F" tabindex="-1">How come I am getting gibberish(G38G43G36G51G5) when extracting text?</h3>
<p>This is because the characters in a PDF document can use a custom encoding
instead of unicode or ASCII. When you see gibberish text then it
probably means that a meaningless internal encoding is being used. The
only way to access the text is to use OCR. This may be a future
enhancement.</p>
<p><a name="fontwidth"></a></p>
-<h3 id="what-does-%22java.io.ioexception%3A-can't-handle-font-width%22-mean%3F">What does "java.io.IOException: Can't handle font width" mean?</h3>
+<h3 id="what-does-%22java.io.ioexception%3A-can't-handle-font-width%22-mean%3F" tabindex="-1">What does "java.io.IOException: Can't handle font width" mean?</h3>
<p>This probably means that the "Resources" directory is not in your classpath. The
Resources directory is included in the PDFBox jar so this is only a problem if you
are building PDFBox yourself and not using the binary.</p>
<p><a name="permission"></a></p>
-<h3 id="why-do-i-get-%22you-do-not-have-permission-to-extract-text%22-on-some-documents%3F">Why do I get "You do not have permission to extract text" on some documents?</h3>
+<h3 id="why-do-i-get-%22you-do-not-have-permission-to-extract-text%22-on-some-documents%3F" tabindex="-1">Why do I get "You do not have permission to extract text" on some documents?</h3>
<p>PDF documents have certain security permissions that can be applied to them and two
passwords associated with them, an user password and an owner password. If the "cannot extract text"
permission bit is set then you need to decrypt the document with the owner password in order
to extract the text.</p>
<p><a name="partially"></a></p>
-<h3 id="can't-we-just-extract-the-text-without-parsing-the-whole-document-or-extract-text-as-it-is-parsed%3F">Can't we just extract the text without parsing the whole document or extract text as it is parsed?</h3>
+<h3 id="can't-we-just-extract-the-text-without-parsing-the-whole-document-or-extract-text-as-it-is-parsed%3F" tabindex="-1">Can't we just extract the text without parsing the whole document or extract text as it is parsed?</h3>
<p>Not really, for a couple reasons.</p>
<ul>
<li>If the document is encrypted then you need to parse at least until the encryption dictionary before
@@ -222,9 +222,9 @@ you can decrypt.</li>
the pdf could have been written such that "World" gets drawn and then the cursor moves to the left and
the word "Hello" is drawn.</li>
</ul>
-<h2 id="pdf-rendering">PDF rendering</h2>
+<h2 id="pdf-rendering" tabindex="-1">PDF rendering</h2>
<p><a name="outofmemoryerror"></a></p>
-<h3 id="i'm-getting-an-outofmemoryerror.-what-can-i-do%3F">I'm getting an OutOfMemoryError. What can I do?</h3>
+<h3 id="i'm-getting-an-outofmemoryerror.-what-can-i-do%3F" tabindex="-1">I'm getting an OutOfMemoryError. What can I do?</h3>
<p>The memory footprint depends on the PDF itself and on the resolution you use for rendering. Some possible options:</p>
<ul>
<li>increase the <code>-Xmx</code> value when starting java</li>
@@ -235,10 +235,10 @@ the word "Hello" is drawn.</li>
<li>disable the cache for <code>PDImageXObject</code> objects by calling <code>PDDocument.setResourceCache()</code> with a cache object that is derived from <code>DefaultResourceCache</code> and whose call <code>public void put(COSObject indirect, PDXObject xobject)</code> does nothing. Be aware that this will slow down rendering for PDF files that have an identical image in several pages (e.g. a company logo or a background). More about this can be read in <a href="https://issues.apache [...]
</ul>
<p><a name="dropshadow"></a></p>
-<h3 id="a-drop-shadow-is-missing-or-at-the-wrong-position-when-rendering-a-page">A drop shadow is missing or at the wrong position when rendering a page</h3>
+<h3 id="a-drop-shadow-is-missing-or-at-the-wrong-position-when-rendering-a-page" tabindex="-1">A drop shadow is missing or at the wrong position when rendering a page</h3>
<p>Please attach your file in the <a href="https://issues.apache.org/jira/browse/PDFBOX-3000">PDFBOX-3000</a> issue.</p>
<p><a name="textantialias"></a></p>
-<h3 id="why-are-some-texts-in-poor-quality-and-not-antialiased%3F">Why are some texts in poor quality and not antialiased?</h3>
+<h3 id="why-are-some-texts-in-poor-quality-and-not-antialiased%3F" tabindex="-1">Why are some texts in poor quality and not antialiased?</h3>
<p>This is because in some PDFs (e.g. the one in PDFBOX-2814 <a href="https://issues.apache.org/jira/browse/PDFBOX-2814">https://issues.apache.org/jira/browse/PDFBOX-2814</a>), text is not
rendered directly, but as a shaped clipping from a background. Java graphics does not support "soft clipping"
<a href="https://bugs.openjdk.java.net/browse/JDK-4212743">https://bugs.openjdk.java.net/browse/JDK-4212743</a>, and because of that, the edges are not looking smooth.
@@ -342,7 +342,7 @@ but these would cost additional time and memory space. You can have a higher qua
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/2.0/getting-started.html b/content/2.0/getting-started.html
index 9d31a88e..1a9cef02 100644
--- a/content/2.0/getting-started.html
+++ b/content/2.0/getting-started.html
@@ -125,11 +125,11 @@
</nav>
<section>
- <h1 id="getting-started">Getting Started</h1>
-<h2 id="maven">Maven</h2>
+ <h1 id="getting-started" tabindex="-1">Getting Started</h1>
+<h2 id="maven" tabindex="-1">Maven</h2>
<p>To use the latest release you'll need to add the following dependency:</p>
<pre class="language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependency</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>groupId</span><span class="token punctuation">></span></span>org.apache.pdfbox<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>groupId</span><sp [...]
-<h2 id="pdfbox-and-java-8">PDFBox and Java 8</h2>
+<h2 id="pdfbox-and-java-8" tabindex="-1">PDFBox and Java 8</h2>
<p class="alert alert-warning">Important notice when using PDFBox with Java 8 before 1.8.0_191 or Java 9 before 9.0.4</p>
<p>Due to the change of the java color management module towards "LittleCMS", users can experience slow performance in color operations.
A solution is to disable LittleCMS in favor of the old KCMS (Kodak Color Management System) by:</p>
@@ -139,7 +139,7 @@ A solution is to disable LittleCMS in favor of the old KCMS (Kodak Color Managem
</ul>
<p>Sources:
https://bugs.openjdk.java.net/browse/JDK-8041125</p>
-<h2 id="rendering-performance">Rendering Performance</h2>
+<h2 id="rendering-performance" tabindex="-1">Rendering Performance</h2>
<p class="alert alert-info">Since PDFBox 2.0.4</p>
<p>PDFBox 2.0.4 introduced a new command line setting</p>
<pre><code>-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true
@@ -177,7 +177,7 @@ https://bugs.openjdk.java.net/browse/JDK-8041125</p>
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/2.0/migration.html b/content/2.0/migration.html
index 5f01ca85..cc279fad 100644
--- a/content/2.0/migration.html
+++ b/content/2.0/migration.html
@@ -125,10 +125,10 @@
</nav>
<section>
- <h1 id="migration-to-pdfbox-2.0.0">Migration to PDFBox 2.0.0</h1>
-<h2 id="environment">Environment</h2>
+ <h1 id="migration-to-pdfbox-2.0.0" tabindex="-1">Migration to PDFBox 2.0.0</h1>
+<h2 id="environment" tabindex="-1">Environment</h2>
<p>PDFBox 2.0.0 requires at least Java 6</p>
-<h2 id="packages">Packages</h2>
+<h2 id="packages" tabindex="-1">Packages</h2>
<p>There are some significant changes to the package structure of PDFBox:</p>
<ul>
<li>Jempbox is no longer supported and was removed in favour of Xmpbox</li>
@@ -138,7 +138,7 @@
<li>all debugger related stuff was moved to the new package "pdfbox-debugger"</li>
<li>the new package "debugger-app" provides a standalone pre built binary for the debugger</li>
</ul>
-<h2 id="dependency-updates">Dependency Updates</h2>
+<h2 id="dependency-updates" tabindex="-1">Dependency Updates</h2>
<p>All libraries on which PDFBox depends are updated to their latest stable versions:</p>
<ul>
<li>Bouncy Castle 1.53</li>
@@ -155,10 +155,10 @@
<ul>
<li>Apache Commons IO 2.4</li>
</ul>
-<h2 id="breaking-changes-to-the-library">Breaking Changes to the Library</h2>
-<h3 id="deprecated-api-calls">Deprecated API calls</h3>
+<h2 id="breaking-changes-to-the-library" tabindex="-1">Breaking Changes to the Library</h2>
+<h3 id="deprecated-api-calls" tabindex="-1">Deprecated API calls</h3>
<p>Most deprecated API calls in PDFBox 1.8.x have been removed for PDFBox 2.0.0</p>
-<h3 id="api-changes">API Changes</h3>
+<h3 id="api-changes" tabindex="-1">API Changes</h3>
<p>The API changes are reflected in the Javadoc for PDFBox 2.0.0. The most notable changes are:</p>
<ul>
<li><code>getCOSDictionary()</code> is no longer used. Instead <code>getCOSObject</code> now returns the matching <code>COSBase</code> subtype.</li>
@@ -167,23 +167,23 @@
<li><code>PDPage.getContents().createInputStream()</code>was simplified to <code>PDPage.getContents()</code>.</li>
<li><code>PDPageContentStream</code> was moved to <code>org.apache.pdfbox.pdmodel</code>.</li>
</ul>
-<h3 id="general-behaviour">General Behaviour</h3>
+<h3 id="general-behaviour" tabindex="-1">General Behaviour</h3>
<p>PDFBox 2.0.0 is now parsing PDF files following the Xref information in the PDF. This is similar to the functionality using
<code>PDDocument.loadNonSeq</code> with PDFBox 1.8.x. Users still using <code>PDDocument.load</code> with PDFBox 1.8.x might experience different
results when switching to PDFBox 2.0.0.</p>
-<h3 id="font-handling">Font Handling</h3>
+<h3 id="font-handling" tabindex="-1">Font Handling</h3>
<p>Font handling now has full Unicode support and supports font subsetting.</p>
<p>TrueType fonts shall now be loaded using</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">PDType0Font</span><span class="token punctuation">.</span>load</code></pre>
<p>to leverage that.</p>
<p><code>PDAfmPfbFont</code> has been removed. To load such a font pass the pfb file to <code>PDType1Font</code>. Loading the afm file is no longer required.</p>
-<h3 id="pdf-resources-handling">PDF Resources Handling</h3>
+<h3 id="pdf-resources-handling" tabindex="-1">PDF Resources Handling</h3>
<p>The individual calls to add resources such as <code>PDResources.addFont(PDFont font)</code> and <code>PDResources.addXObject(PDXObject xobject, String prefix)</code>
have been replaced with <code>PDResources.add(resource type)</code> where <code>resource type</code> represents the different resource classes such as <code>PDFont</code>, <code>PDAbstractPattern</code>
and so on. The <code>add</code> method now supports all the different type of resources available.</p>
<p>Instead of returning a <code>Map</code> like with <code>PDResources.getFonts()</code> or <code>PDResources.getXObjects()</code> in 2.0 an <code>Iterable<COSName></code> of references shall be retrieved with <code>PDResources.getFontNames()</code> or
<code>PDResources.getXObjectNames()</code>. The individual item can be retrieved with <code>PDResources.getFont(COSName fontName)</code> or <code>PDResources.getXObject(COSName xObjectName)</code>.</p>
-<h3 id="working-with-images">Working with Images</h3>
+<h3 id="working-with-images" tabindex="-1">Working with Images</h3>
<p>The individual classes <code>PDJpeg()</code>, <code>PDPixelMap()</code> and <code>PDCCitt()</code> to import images have been replaced with <code>PDImageXObject.createFromFile</code> which works for JPG, TIFF (only G4 compression), PNG, BMP and GIF.</p>
<p>In addition there are some specialized classes:</p>
<ul>
@@ -191,17 +191,17 @@ and so on. The <code>add</code> method now supports all the different type of re
<li><code>CCITTFactory.createFromFile</code> (for bitonal TIFF images with G4 compression).</li>
<li><code>LosslessFactory.createFromImage</code> (this is best if you start with a BufferedImage).</li>
</ul>
-<h3 id="parsing-the-page-content">Parsing the Page Content</h3>
+<h3 id="parsing-the-page-content" tabindex="-1">Parsing the Page Content</h3>
<p>Getting the content for a page has been simplified.</p>
<p>Prior to PDFBox 2.0 parsing the page content was done using</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">PDStream</span> contents <span class="token operator">=</span> page<span class="token punctuation">.</span><span class="token function">getContents</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token class-name">PDFStreamParser</span> parser <span class="token operator">=</span> <span class="token keyword">n [...]
<p>With PDFBox 2.0 the code is reduced to</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">PDFStreamParser</span> parser <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">PDFStreamParser</span><span class="token punctuation">(</span>page<span class="token punctuation">)</span><span class="token punctuation">;</span><br>parser<span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation" [...]
<p>In addition this also works if the page content is defined as an <strong>array of content streams</strong>.</p>
-<h3 id="iterating-pages">Iterating Pages</h3>
+<h3 id="iterating-pages" tabindex="-1">Iterating Pages</h3>
<p>With PDFBox 2.0.0 the prefered way to iterate through the pages of a document is</p>
<pre class="language-java"><code class="language-java"><span class="token keyword">for</span><span class="token punctuation">(</span><span class="token class-name">PDPage</span> page <span class="token operator">:</span> document<span class="token punctuation">.</span><span class="token function">getPages</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><br><span class="token punctuation">{</span><br> <span c [...]
-<h3 id="pdf-rendering">PDF Rendering</h3>
+<h3 id="pdf-rendering" tabindex="-1">PDF Rendering</h3>
<p>With PDFBox 2.0.0 <code>PDPage.convertToImage</code> and <code>PDFImageWriter</code> have been removed. Instead the new <code>PDFRenderer</code> class shall be used.</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">PDDocument</span> document <span class="token operator">=</span> <span class="token class-name">PDDocument</span><span class="token punctuation">.</span><span class="token function">load</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">File</span><span class="token punctuation">(</span>pdfFilename<span class="token punctuation">)</span>< [...]
<p><code>ImageIOUtil</code> has been moved into the <code>org.apache.pdfbox.tools.imageio</code> package. This is in the <code>pdfbox-tools</code> download. If you are using maven, the <code>artifactId</code> has the same name.</p>
@@ -220,32 +220,32 @@ https://bugs.openjdk.java.net/browse/JDK-8041125</p>
<p>PDFBox 2.0.4 introduced a new command line setting</p>
<p><code>-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true</code></p>
<p>which may improve the performance of rendering PDFs on some systems especially if there are a lot of images on a page.</p>
-<h3 id="pdf-printing">PDF Printing</h3>
+<h3 id="pdf-printing" tabindex="-1">PDF Printing</h3>
<p>With PDFBox 2.0.0 <code>PDFPrinter</code> has been removed.</p>
<p>Users of <code>PDFPrinter.silentPrint()</code> should now use this code:</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">PrinterJob</span> job <span class="token operator">=</span> <span class="token class-name">PrinterJob</span><span class="token punctuation">.</span><span class="token function">getPrinterJob</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br>job<span class="token punctuation">.</span><span class="token function">setPageable</ [...]
<p>While users of <code>PDFPrinter.print()</code> should now use this code:</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">PrinterJob</span> job <span class="token operator">=</span> <span class="token class-name">PrinterJob</span><span class="token punctuation">.</span><span class="token function">getPrinterJob</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br>job<span class="token punctuation">.</span><span class="token function">setPageable</ [...]
<p>Advanced use case examples can be found in th examples package under org/apache/pdfbox/examples/printing/Printing.java</p>
-<h3 id="text-extraction">Text Extraction</h3>
+<h3 id="text-extraction" tabindex="-1">Text Extraction</h3>
<p>In 1.8, to get the text colors, one method was to pass an expanded .properties file to the PDFStripper constructor. To achieve the same
in PDFBox 2.0 you can extend <code>PDFTextStripper</code>and add the following <code>Operators</code> to the constructor:</p>
<pre class="language-java"><code class="language-java"><span class="token function">addOperator</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">SetStrokingColorSpace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token function">addOperator</span><span class="token punctuation">(</span>< [...]
-<h3 id="interactive-forms">Interactive Forms</h3>
+<h3 id="interactive-forms" tabindex="-1">Interactive Forms</h3>
<p>Large parts of the support for interactive forms (AcroForms) have been rewritten. The most notable change from 1.8.x is that
there is a clear distinction between fields and the annotations representing them visually. Intermediate nodes in a field
tree are now represented by the <code>PDNonTerminalField</code> class.</p>
<p>With PDFBox 2.0.0 the prefered way to iterate through the fields is now</p>
<pre class="language-java"><code class="language-java"><span class="token class-name">PDAcroForm</span> form<span class="token punctuation">;</span><br><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><br><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token class-name">PDField</span> field <span class="token operator">:</span> form<span class="token punctuation">.</span><sp [...]
<p>Most <code>PDField</code> subclasses now accept Java generic types such as <code>String</code> as parameters instead of the former <code>COSBase</code> subclasses.</p>
-<h4 id="pdfield.getwidget()-removed">PDField.getWidget() removed</h4>
+<h4 id="pdfield.getwidget()-removed" tabindex="-1">PDField.getWidget() removed</h4>
<p>As form fields do support multiple annotations <code>PDField.getWidget()</code> has been removed in favour of <code>PDField.getWidgets()</code>which returns all
annotations associated with a field.</p>
-<h4 id="pdunknownfield-removed">PDUnknownField removed</h4>
+<h4 id="pdunknownfield-removed" tabindex="-1">PDUnknownField removed</h4>
<p>The <code>PDUnknownField</code> class has been removed, such fields are treated as <code>null</code> <a href="https://issues.apache.org/jira/browse/PDFBOX-2885">see PDFBOX-2885</a>.</p>
-<h3 id="document-outline">Document Outline</h3>
+<h3 id="document-outline" tabindex="-1">Document Outline</h3>
<p>The method <code>PDOutlineNode.appendChild()</code> has been renamed to <code>PDOutlineNode.addLast()</code>. There is now also a complementary method <code>PDOutlineNode.addFirst()</code>.</p>
-<h3 id="why-was-the-replacetext-example-removed%3F">Why was the ReplaceText example removed?</h3>
+<h3 id="why-was-the-replacetext-example-removed%3F" tabindex="-1">Why was the ReplaceText example removed?</h3>
<p>The ReplaceText example has been removed as it gave the incorrect illusion that text can be replaced easily.
Words are often split, as seen by this excerpt of a content stream:</p>
<pre><code>[ (Do) -29 (c) -1 (umen) 30 (tation) ] TJ
@@ -335,7 +335,7 @@ To understand this yourself, view any file with PDFDebugger and have a look at t
<!-- nothing in here on purpose -->
</div>
<div class="span9">
- <p>Copyright © 2009– <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <p>Copyright © 2009–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br>Apache PDFBox, PDFBox, Apache, the Apache feather logo and the Apache PDFBox project logos are trademarks of The Apache Software Foundation.</p>
</div>
</div>
diff --git a/content/3.0/migration.html b/content/3.0/migration.html
index 70c4819e..7bb23709 100644
--- a/content/3.0/migration.html
+++ b/content/3.0/migration.html
@@ -92,15 +92,15 @@
</nav>
<section>
- <h1 id="pdfbox-3.0-migration-guide">PDFBox 3.0 Migration Guide</h1>
+ <h1 id="pdfbox-3.0-migration-guide" tabindex="-1">PDFBox 3.0 Migration Guide</h1>
<p class="alert alert-warning">Work in progress! This is guide will be improved over time. If you believe there is
a missing topic, open an issue or help us with a contribution to improve the guide.
</p>
<p>This guide describes the updates in Apache PDFBox 3.0 release. Use the information provided to upgrade your PDFBox 2.x applications
to PDFBox 3.0. It provides information about the new, deprecated and unsupported features in this release.</p>
-<h2 id="java-versions">Java Versions</h2>
+<h2 id="java-versions" tabindex="-1">Java Versions</h2>
<p>PDFBox 3.0 requires at least Java 8. Testing has been done up to Java 11.</p>
-<h2 id="dependency-updates">Dependency Updates</h2>
+<h2 id="dependency-updates" tabindex="-1">Dependency Updates</h2>
<p>All libraries on which PDFBox depends are updated to their latest stable versions:</p>
<ul>
<li>Bouncy Castle 1.69</li>
@@ -115,33 +115,33 @@ to PDFBox 3.0. It provides information about the new, deprecated and unsupported
<li>JBIG ImageIO Plugin 3.0.4</li>
<li>Apache Commons IO 2.11</li>
</ul>
-<h2 id="general-changes-for-pdfbox-3.0">General Changes for PDFBox 3.0</h2>
+<h2 id="general-changes-for-pdfbox-3.0" tabindex="-1">General Changes for PDFBox 3.0</h2>
<p>This section explains the fundamental differences between PDFBox 3.0 and 2.x releases.</p>
-<h3 id="deprecated-apis-and-components">Deprecated APIs and Components</h3>
+<h3 id="deprecated-apis-and-components" tabindex="-1">Deprecated APIs and Components</h3>
<p>All deprecated APIs and components from PDFBox 2.x have been removed in PDFBox 3.0. Deprecated APIs in
<code>PDPageContentStream</code> have been kept but you are encouraged to replace them with the non deprecated calls
as they are treated to be of <strong>internal use only</strong>.</p>
-<h3 id="new-maven-module-for-io-classes">New maven module for IO-classes</h3>
+<h3 id="new-maven-module-for-io-classes" tabindex="-1">New maven module for IO-classes</h3>
<p>All basic classes used for io-operations where moved to a separate module for a shared usage.</p>
<pre><code> <dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>io</artifactId>
</dependency>
</code></pre>
-<h3 id="use-loader-to-get-a-pdf-document">Use <strong>Loader</strong> to get a PDF document</h3>
+<h3 id="use-loader-to-get-a-pdf-document" tabindex="-1">Use <strong>Loader</strong> to get a PDF document</h3>
<p>For loading a PDF <code>PDDocument.load</code> has been replaced with the <code>Loader</code> methods. The same is true for loading a FDF document.</p>
<p>When saving a PDF this will now be done in compressed mode per default. To override that use <code>PDDocument.save</code> with <code>CompressParameters.NO_COMPRESSION</code>.</p>
<p>PDFBox now loads a PDF Document incrementally reducing the initial memory footprint. This will also reduce the memory needed to
consume a PDF if only certain parts of the PDF are accessed. Note that, due to the nature of PDF, uses such as iterating over all pages,
accessing annotations, signing a PDF etc. might still load all parts of the PDF overtime leading to a similar memory consumption as with PDFBox 2.0.</p>
<p>The input file must not be used as output for saving operations. It will corrupt the file and throw an exception as parts of the file are read the first time when saving it.</p>
-<h3 id="static-instances-for-standard-14-fonts-removed">Static instances for Standard 14 fonts removed</h3>
+<h3 id="static-instances-for-standard-14-fonts-removed" tabindex="-1">Static instances for Standard 14 fonts removed</h3>
<p>The static instances of <code>PDType1Font</code> for the standard 14 fonts were removed as the underlying <code>COSDictionary</code> isn't supposed to be immutable which led to several issues.</p>
<p>A new constructor for <code>PDType1Font</code> was introduced to create a standard 14 font. The new Enum <code>Standard14Fonts.FontName</code> is the one and only parameter and defines the
name of the standard 14 font for which the instance of <code>PDType1Font</code> is created for. That instance isn't a singleton anymore and has to be recreated if necessary or cached
by the user if suitable.</p>
-<h2 id="changes-in-common-functions">Changes in Common Functions</h2>
-<h3 id="interactive-forms">Interactive Forms</h3>
+<h2 id="changes-in-common-functions" tabindex="-1">Changes in Common Functions</h2>
+<h3 id="interactive-forms" tabindex="-1">Interactive Forms</h3>
<p>When accessing <code>AcroForms</code> using <code>PDDocumentCatalog.getAcroForm()</code> a number of fix ups are applied aligning PDFBox with most of the default behaviour
of Adobe Reader. If you'd like to bypass this use <code>PDDocumentCatalog.getAcroForm(null)</code>.</p>
<p>The fix ups include</p>
@@ -151,7 +151,7 @@ of Adobe Reader. If you'd like to bypass this use <code>PDDocumentCatalog.getAcr
<li>create the normal appearance stream under certain conditions</li>
</ul>
<p>You can lookup the details in the <code>org.apache.pdfbox.pdmodel.fixup</code> package of the source distribution and also create your own fix up(s).</p>
-<h2 id="changes-in-pdfbox-app">Changes in PDFBox App</h2>
+<h2 id="changes-in-pdfbox-app" tabindex="-1">Changes in PDFBox App</h2>
<p>The command line interface for the PDFBox App has been rewritten. As a result</p>
<ul>
<li>the individual commands have been changed</li>
diff --git a/content/blog/index.html b/content/blog/index.html
index 7c558191..90afca62 100644
--- a/content/blog/index.html
+++ b/content/blog/index.html
@@ -168,7 +168,7 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="blog">Blog</h1>
+ <h1 id="blog" tabindex="-1">Blog</h1>
<h2>Apache PDFBox JBIG2 ImageIO plugin 3.0.4 released<br><small>2022-03-01</small></h2>
<p>The Apache PDFBox community is pleased to announce the release of
Apache PDFBox JBIG2 ImageIO plugin version 3.0.4. It is available for download at:</p>
diff --git a/content/building.html b/content/building.html
index 7244b69b..21fdd619 100644
--- a/content/building.html
+++ b/content/building.html
@@ -168,46 +168,46 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="building-from-source">Building from Source</h1>
+ <h1 id="building-from-source" tabindex="-1">Building from Source</h1>
<p>Building PDFBox from source is only necessary if you're wanting to contribute code to the PDFBox project. Most users should use the <a href="http://pdfbox.apache.org/download.cgi">binary releases</a> instead.</p>
-<h2 id="obtaining-the-source">Obtaining the Source</h2>
+<h2 id="obtaining-the-source" tabindex="-1">Obtaining the Source</h2>
<p>You can obtain the latest source of PDFBox from our <a href="http://svn.apache.org/repos/asf/pdfbox/">SVN repo</a>. The current trunk is 3.0.0-SNAPSHOT. There is a separate branch for the 1.8.x and the 2.0.x series. You can fetch the latest trunk version using Subversion:</p>
<pre><code>svn checkout http://svn.apache.org/repos/asf/pdfbox/trunk/
cd trunk
</code></pre>
<p>You can also browse the Subversion repository using <a href="https://svn.apache.org/viewvc/pdfbox/">ViewVC</a>.</p>
<p>We also have a read-only <a href="https://git.apache.org/">Git mirror</a> which is further mirrored to GitHub as <a href="https://github.com/apache/pdfbox">apache/pdfbox</a>.</p>
-<p>The sources for the <strong>Java ImageIO plugin for the JBIG2 image format</strong> are available in the <a href="https://git-wip-us.apache.org/repos/asf/pdfbox-jbig2.git">Apache Git Repository</a> or can be loaded from <a href="https://github.com/apache/pdfbox-jbig2">GitHub</a>:</p>
-<pre><code>git clone https://git-wip-us.apache.org/repos/asf/pdfbox-jbig2.git
+<p>The sources for the <strong>Java ImageIO plugin for the JBIG2 image format</strong> are available in the <a href="https://gitbox.apache.org/repos/asf/pdfbox-jbig2.git">Apache Git Repository</a> or can be loaded from <a href="https://github.com/apache/pdfbox-jbig2">GitHub</a>:</p>
+<pre><code>git clone https://gitbox.apache.org/repos/asf/pdfbox-jbig2.git
cd pdfbox-jbig2
</code></pre>
-<h2 id="build-dependencies">Build dependencies</h2>
-<h3 id="pdfbox-1.8">PDFBox 1.8</h3>
+<h2 id="build-dependencies" tabindex="-1">Build dependencies</h2>
+<h3 id="pdfbox-1.8" tabindex="-1">PDFBox 1.8</h3>
<ul>
<li>JDK 5 or 6</li>
<li><a href="http://maven.apache.org/">Maven 3</a></li>
</ul>
-<h3 id="pdfbox-2.0">PDFBox 2.0</h3>
+<h3 id="pdfbox-2.0" tabindex="-1">PDFBox 2.0</h3>
<ul>
<li>JDK 7</li>
<li><a href="#java-cryptography-extension-jce">Java Cryptography Extension (JCE)</a></li>
<li><a href="http://maven.apache.org/">Maven 3</a></li>
</ul>
-<h3 id="java-imageio-plugin-for-jbig2">Java ImageIO plugin for JBIG2</h3>
+<h3 id="java-imageio-plugin-for-jbig2" tabindex="-1">Java ImageIO plugin for JBIG2</h3>
<ul>
<li>JDK 6</li>
<li><a href="http://maven.apache.org/">Maven 3</a></li>
</ul>
-<h3 id="java-cryptography-extension-(jce)">Java Cryptography Extension (JCE)</h3>
+<h3 id="java-cryptography-extension-(jce)" tabindex="-1">Java Cryptography Extension (JCE)</h3>
<p>Building PDFBox 2.0 requires a JDK with "unlimited strength" cryptography, which requires extra files to be installed. For JDK 7, see <a href="http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html">Java Cryptography Extension (JCE)</a>. If these files are not installed, building PDFBox will fail the following test:</p>
<pre><code>TestPublicKeyEncryption.setUp:70 JCE unlimited strength jurisdiction policy files are not installed
</code></pre>
-<h2 id="building-with-maven">Building with Maven</h2>
+<h2 id="building-with-maven" tabindex="-1">Building with Maven</h2>
<p>In the root directory of PDFBox:</p>
<pre><code>mvn clean install
</code></pre>
<hr>
-<h2 id="building-with-ant-(deprecated%2C-removed-in-2.0.0)">Building with Ant (Deprecated, removed in 2.0.0)</h2>
+<h2 id="building-with-ant-(deprecated%2C-removed-in-2.0.0)" tabindex="-1">Building with Ant (Deprecated, removed in 2.0.0)</h2>
<p>The old Ant build is still available, and can be used especially for
building .NET binaries with IKVM:</p>
<ol>
@@ -231,7 +231,7 @@ PDFBox.</p>
</ol>
<p>NOTE: If you want to run PDFBox from an IDE them you will need to add
the 'Resources' directory to the project classpath in your IDE.</p>
-<h3 id="dependencies-for-ant-builds">Dependencies for Ant Builds</h3>
+<h3 id="dependencies-for-ant-builds" tabindex="-1">Dependencies for Ant Builds</h3>
<p>The above instructions expect that you're using <a href="http://maven.apache.org/">Maven</a> or another build tool like <a href="http://ant.apache.org/ivy/">Ivy</a> that supports Maven dependencies.
If you instead use tools like <a href="http://ant.apache.org/">Ant</a> where you need to explicitly include all the required library jars in your application, you'll need to do
something different.</p>
diff --git a/content/codingconventions.html b/content/codingconventions.html
index 75063931..e4dc9212 100644
--- a/content/codingconventions.html
+++ b/content/codingconventions.html
@@ -168,9 +168,9 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="coding-conventions">Coding Conventions</h1>
+ <h1 id="coding-conventions" tabindex="-1">Coding Conventions</h1>
<p>Over the years the PDFBox project has come to adopt a number of coding conventions. These are not always followed in old code but new code should follow these rules where possible.</p>
-<h3 id="formatting">Formatting</h3>
+<h3 id="formatting" tabindex="-1">Formatting</h3>
<ul>
<li>
<p>Braces go on their own line.</p>
@@ -194,7 +194,7 @@
<p>Prefer aligned wrapped parameter lists.</p>
</li>
</ul>
-<h3 id="whitespace">Whitespace</h3>
+<h3 id="whitespace" tabindex="-1">Whitespace</h3>
<ul>
<li>
<p>Four spaces for indents, no tabs.</p>
@@ -212,7 +212,7 @@
<p>Prefer not following casts with a blank space.</p>
</li>
</ul>
-<h3 id="structure">Structure</h3>
+<h3 id="structure" tabindex="-1">Structure</h3>
<ul>
<li>
<p>Do not use package imports (e.g. <code>import java.util.*</code>)</p>
@@ -228,7 +228,7 @@ Constructors<br>
Methods</p>
</li>
</ul>
-<h3 id="javadoc">JavaDoc</h3>
+<h3 id="javadoc" tabindex="-1">JavaDoc</h3>
<ul>
<li>
<p>Public and protected methods and fields must have JavaDoc.</p>
@@ -249,7 +249,7 @@ Methods</p>
<p>Private methods do not require JavaDoc but may have partial JavaDoc if it adds valuable information.</p>
</li>
</ul>
-<h3 id="comments">Comments</h3>
+<h3 id="comments" tabindex="-1">Comments</h3>
<ul>
<li>
<p>Only use line comments within code, never block comments.</p>
@@ -261,7 +261,7 @@ Methods</p>
<p>Prefix line comments by a space <code>// like this</code>.</p>
</li>
</ul>
-<h3 id="variables">Variables</h3>
+<h3 id="variables" tabindex="-1">Variables</h3>
<ul>
<li>
<p>Prefer initializing variables when they are declared, rather than C-style declaration before use.</p>
@@ -270,7 +270,7 @@ Methods</p>
<p>Always use final fields when possible.</p>
</li>
</ul>
-<h3 id="control-flow">Control Flow</h3>
+<h3 id="control-flow" tabindex="-1">Control Flow</h3>
<ul>
<li>
<p>Prefer multiple return statements over additional control flow logic.</p>
@@ -279,7 +279,7 @@ Methods</p>
<p>Prefer switch statements over multi-clause if-then statements.</p>
</li>
</ul>
-<h3 id="api-design">API Design</h3>
+<h3 id="api-design" tabindex="-1">API Design</h3>
<ul>
<li>
<p>Give variables and methods meaningful names. Keep these short but don't use abbreviations. Prefer using the same terminology as the PDF spec.</p>
@@ -300,10 +300,10 @@ Methods</p>
<p>Avoid unnecesary abstraction. While you're encouraged to avoid brittle designs, it's unlikey that an API designed for "future use" will have the correct API without any code which actually uses it.</p>
</li>
</ul>
-<h3 id="example">Example</h3>
+<h3 id="example" tabindex="-1">Example</h3>
<p>Here's an example of PDFBox's formatting style:</p>
<pre class="language-java"><code class="language-java"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Foo</span> <span class="token keyword">extends</span> <span class="token class-name">Bar</span><br><span class="token punctuation">{</span><br> <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class= [...]
-<h2 id="eclipse-formatter">Eclipse Formatter</h2>
+<h2 id="eclipse-formatter" tabindex="-1">Eclipse Formatter</h2>
<p>Eclipse users may download this preferences file: pdfbox-eclipse-formatter.xml and import this into Eclipse.
(Window->Preferences, go to Java->Code Style->Formatter and click "Import...").
Once you have done this you can reformat your code by using Source->Format (Ctrl+Shift+F).</p>
diff --git a/content/errors/403.html b/content/errors/403.html
index 20133ce6..9086eb5c 100644
--- a/content/errors/403.html
+++ b/content/errors/403.html
@@ -168,7 +168,7 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="403">403</h1>
+ <h1 id="403" tabindex="-1">403</h1>
<p>We're sorry, but the page you requested cannot be accessed.</p>
<p>Maybe you</p>
<ul>
diff --git a/content/errors/404.html b/content/errors/404.html
index 56be0f2c..3879f901 100644
--- a/content/errors/404.html
+++ b/content/errors/404.html
@@ -168,7 +168,7 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="404">404</h1>
+ <h1 id="404" tabindex="-1">404</h1>
<p>We're sorry, but the page you requested cannot be found.</p>
<p>Maybe you</p>
<ul>
diff --git a/content/ideas.html b/content/ideas.html
index dca53e18..bcac7704 100644
--- a/content/ideas.html
+++ b/content/ideas.html
@@ -168,27 +168,27 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="ideas">Ideas</h1>
+ <h1 id="ideas" tabindex="-1">Ideas</h1>
<p>There are several ideas to enhance PDFBox. These are outlined below together with
comments and the releases they are planned for as soon as there is agreement to do the
implementation.</p>
-<h2 id="enhance-type-safety">Enhance type safety</h2>
+<h2 id="enhance-type-safety" tabindex="-1">Enhance type safety</h2>
<p>Enhance the type safety of PDFBox and add more generic collections and code cleanup.</p>
-<h2 id="remove-all-deprecated-methods">Remove all deprecated methods</h2>
+<h2 id="remove-all-deprecated-methods" tabindex="-1">Remove all deprecated methods</h2>
<p>This is an ongoing effort and most/all deprecated methods will be removed in PDFBox 2.0.0</p>
-<h2 id="handle-large-pdf-files">Handle large PDF files</h2>
+<h2 id="handle-large-pdf-files" tabindex="-1">Handle large PDF files</h2>
<p>In addition to the PDF parsing pdfbox does not always handle large PDF files well as some
of the references are implemented as int instead of long</p>
-<h2 id="switch-to-java-1.6"><span class="complete">Switch to Java 1.6</span></h2>
+<h2 id="switch-to-java-1.6" tabindex="-1"><span class="complete">Switch to Java 1.6</span></h2>
<p><span class="complete">PDFBox 2.0.0 has Java 6 as a minimum requirement.</span></p>
-<h2 id="break-pdfbox-into-modules"><span class="complete">Break PDFBox into modules</span></h2>
+<h2 id="break-pdfbox-into-modules" tabindex="-1"><span class="complete">Break PDFBox into modules</span></h2>
<p><span class="complete">In order to support different use cases and provide a minimal toolset PDFBox 2.0.0 should be
separated into different modules. This goes inline with rearranging some of the code
e.g. remove AWT from PDDocument.
</span></p>
-<h2 id="enhance-the-font-rendering"><span class="complete">Enhance the font rendering</span></h2>
+<h2 id="enhance-the-font-rendering" tabindex="-1"><span class="complete">Enhance the font rendering</span></h2>
<p><span class="complete">PDFBox 2.0.0 will render most of the fonts without using AWT.</span></p>
-<h2 id="replace%2Fenhance-pdf-parsing">Replace/enhance PDF parsing</h2>
+<h2 id="replace%2Fenhance-pdf-parsing" tabindex="-1">Replace/enhance PDF parsing</h2>
<p><span class="complete">The old "classic" PDF parser in PDFBox is not in line with the PDF specification as it parses
a PDF from top to bottom instead of respecting the XRef information.</span> The NonSequentialParser
enhanced that situation but there is a need to have a cleaner foundation broken into several levels</p>
@@ -202,12 +202,12 @@ enhanced that situation but there is a need to have a cleaner foundation broken
</ul>
<p>In addition, handling documents which are not conforming shouldn't be part of the core parser
but of an extensible approach, e.g. by adding hooks to allow for handling parsing exceptions.</p>
-<h2 id="add-the-ability-to-create-pdfs-using-unicode-encoded-text"><span class="complete">Add the ability to create PDFs using unicode encoded text</span></h2>
+<h2 id="add-the-ability-to-create-pdfs-using-unicode-encoded-text" tabindex="-1"><span class="complete">Add the ability to create PDFs using unicode encoded text</span></h2>
<p><span class="complete">The recent PDFBox version is limited to WinANSI encoded text. 2.0.0 should have unicode support as well.</span></p>
-<h2 id="rearchitect-the-cos-level-objects">Rearchitect the COS level objects</h2>
+<h2 id="rearchitect-the-cos-level-objects" tabindex="-1">Rearchitect the COS level objects</h2>
<p>The COS level objects need to be refactored to be in line with the new parser. In addition
method signatures, constructing ... should be made similar across the COS objects</p>
-<h2 id="parsing-on-demand">Parsing on demand</h2>
+<h2 id="parsing-on-demand" tabindex="-1">Parsing on demand</h2>
<p>Instead of always parsing the complete document PDFs should be parsable on demand making
objects only available as they are needed to enhance performance and minimize memory footprint.</p>
<p>This might be achieved by providing a layered approach where a base (non caching) parser provides
@@ -222,7 +222,7 @@ only to support text extraction, merging, splitting … - the benefit would be a
consumption as well as a potential faster processing</li>
<li>the caching parser would support applications such a PDFDebugger or PDFReader</li>
</ul>
-<h2 id="handling-of-pdf-versions">Handling of PDF versions</h2>
+<h2 id="handling-of-pdf-versions" tabindex="-1">Handling of PDF versions</h2>
<p>The current implementation is a mix of PDF 1.4 and some adhoc additions without a clear
distinction what is and is not supported. We could ad some support for explicitly handling
versions in PDFBox e.g. my marking certain methods and properties to the PDF version support
diff --git a/content/index.html b/content/index.html
index 951132ec..23765af6 100644
--- a/content/index.html
+++ b/content/index.html
@@ -168,7 +168,7 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="apache-pdfbox%C2%AE---a-java-pdf-library">Apache PDFBox<sup>®</sup> - A Java PDF Library</h1>
+ <h1 id="apache-pdfbox%C2%AE---a-java-pdf-library" tabindex="-1">Apache PDFBox<sup>®</sup> - A Java PDF Library</h1>
<p class="lead">The Apache PDFBox<sup>®</sup> library is an open source Java tool for working with
PDF documents. This project allows creation of new PDF documents, manipulation of existing
documents and the ability to extract content from documents. Apache PDFBox also includes several
@@ -178,7 +178,7 @@
Apache PDFBox JBIG2 ImageIO plugin version 3.0.4. It is available for download at:</p>
<p><a href="https://pdfbox.apache.org/download.cgi">https://pdfbox.apache.org/download.cgi</a></p>
<p>See the <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310760&version=12346618">full release notes</a> for details about this release.</p>
-<h2 id="getting-help">Getting Help</h2>
+<h2 id="getting-help" tabindex="-1">Getting Help</h2>
<p>To get help on using PDFBox, please <a href="mailto:users-subscribe@pdfbox.apache.org">Subscribe to the Users Mailing List</a> and post your
questions there. We're happy to help.</p>
<p>The project is a volunteer effort and we're always looking for interested people to help
@@ -221,7 +221,7 @@ skills. Subscribe to the <a href="/mailinglists.html">Mailing Lists</a> and find
<p>Digitally sign PDF files.</p>
</div>
</div>
-<h2 id="news">News</h2>
+<h2 id="news" tabindex="-1">News</h2>
<h2>Apache PDFBox 2.0.25 released<br><small>2021-12-16</small></h2>
<p>The Apache PDFBox community is pleased to announce the release of
Apache PDFBox version 2.0.25. It is available for download at:</p>
diff --git a/content/mailinglists.html b/content/mailinglists.html
index d748b152..a3937cd2 100644
--- a/content/mailinglists.html
+++ b/content/mailinglists.html
@@ -168,7 +168,7 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="mailing-lists">Mailing Lists</h1>
+ <h1 id="mailing-lists" tabindex="-1">Mailing Lists</h1>
<p>Mailing Lists are the primary communication channels for all projects at
The Apache Software Foundation. Therefore, this applies to Apache PDFBox, too.</p>
<p><strong>Please read the <a href="https://www.apache.org/foundation/public-archives.html">public forum archive policy</a> carefully before subscribing to one of our list.</strong></p>
diff --git a/content/references.html b/content/references.html
index fc98bd5a..f494db57 100644
--- a/content/references.html
+++ b/content/references.html
@@ -168,10 +168,10 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="external-links">External Links</h1>
+ <h1 id="external-links" tabindex="-1">External Links</h1>
<p>This page lists projects that utilize PDFBox and articles that have been written about PDFBox.
Please file an <a href="https://issues.apache.org/jira/browse/PDFBOX">improvement issue</a> to get new projects or articles added to this page, or to update the information on existing links.</p>
-<h2 id="projects-using-pdfbox">Projects Using PDFBox</h2>
+<h2 id="projects-using-pdfbox" tabindex="-1">Projects Using PDFBox</h2>
<table>
<thead>
<tr>
@@ -278,7 +278,7 @@ Please file an <a href="https://issues.apache.org/jira/browse/PDFBOX">improvemen
</tr>
</tbody>
</table>
-<h2 id="articles%2Fbooks">Articles/Books</h2>
+<h2 id="articles%2Fbooks" tabindex="-1">Articles/Books</h2>
<table>
<thead>
<tr>
diff --git a/content/siteupdate.html b/content/siteupdate.html
index 848bc4d1..35538d08 100644
--- a/content/siteupdate.html
+++ b/content/siteupdate.html
@@ -168,11 +168,11 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="updating-the-pdfbox-website">Updating the PDFBox Website</h1>
-<p>The content for the PDFBox website is kept in a <a href="https://git-wip-us.apache.org/repos/asf/pdfbox-docs">Git repository</a> which is also mirrored to <a href="https://github.com/apache/pdfbox-docs">GitHub</a>. The site is split into two parts: the static content and the Javadoc for the PDFBox API. Both parts are build independently as further described below.</p>
-<h1 id="contribute">Contribute</h1>
+ <h1 id="updating-the-pdfbox-website" tabindex="-1">Updating the PDFBox Website</h1>
+<p>The content for the PDFBox website is kept in a <a href="https://gitbox.apache.org/repos/asf/pdfbox-docs">Git repository</a> which is also mirrored to <a href="https://github.com/apache/pdfbox-docs">GitHub</a>. The site is split into two parts: the static content and the Javadoc for the PDFBox API. Both parts are build independently as further described below.</p>
+<h1 id="contribute" tabindex="-1">Contribute</h1>
<p>If you would like to enhance the website content you can submit a patch. To do so please open a ticket at our <a href="https://issues.apache.org/jira/browse/PDFBOX">Issue Tracker</a>, use <code>Documentation</code> for the <code>Component</code> and add your patch to the ticket.</p>
-<h2 id="development">Development</h2>
+<h2 id="development" tabindex="-1">Development</h2>
<p>Tools used to generate the website:</p>
<ul>
<li><a href="https://git-scm.com/">Git</a> a source code management tool used to fetch document sources from different
@@ -182,25 +182,25 @@ and manage required libraries.</li>
<li>(installed via npm) <a href="https://www.11ty.dev//">Eleventy</a> a simpler static site generator.</li>
<li>(optional) <a href="https://maven.apache.org/">Maven</a> a build tool used to run the complete website generating process</li>
</ul>
-<h3 id="checkout-from-the-git-repository">Checkout from the Git Repository</h3>
+<h3 id="checkout-from-the-git-repository" tabindex="-1">Checkout from the Git Repository</h3>
<p>Before you can edit the site, you need to check it out from the Git repository:</p>
-<pre><code>git clone https://git-wip-us.apache.org/repos/asf/pdfbox-docs
+<pre><code>git clone https://gitbox.apache.org/repos/asf/pdfbox-docs
</code></pre>
-<h3 id="local-changes">Local Changes</h3>
+<h3 id="local-changes" tabindex="-1">Local Changes</h3>
<p>To build the website go to the project root directory and run:</p>
<pre><code>$ npm install # needed only once, or if dependencies change
$ npm run build # to perform the build
</code></pre>
-<h3 id="preview-changes">Preview Changes</h3>
+<h3 id="preview-changes" tabindex="-1">Preview Changes</h3>
<p>While changing the content the website generation can be done in <strong>Preview</strong> mode. This will fire up a little webserver and update the browser window when there are changes so these are reflected immediately.</p>
<pre><code>$ npm install # needed only once, or if dependencies change
$ npm run preview # to start the preview mode
</code></pre>
-<h3 id="validate-the-generated-files">Validate the generated files</h3>
+<h3 id="validate-the-generated-files" tabindex="-1">Validate the generated files</h3>
<p>To validate the generated website document go to the project root directory and run:</p>
<pre><code>$ npm run checks
</code></pre>
-<h3 id="reuse-code-from-examples-in-the-documentation">Reuse code from examples in the documentation</h3>
+<h3 id="reuse-code-from-examples-in-the-documentation" tabindex="-1">Reuse code from examples in the documentation</h3>
<p>In order to reuse code from the examples project in the documentation the shortcode <code>codesnippet</code> can be used.</p>
<p>The shortcode expects two variables</p>
<ul>
@@ -217,7 +217,7 @@ the documentation the following comments can be added to the java code</p>
code. Everything between these special comment lines will be added the
other content will be omitted. This will allow to skip license
header, import statements etc. to concentrate on the important bits.</p>
-<h3 id="publish-the-website-(for-comitters-only)">Publish the Website (For Comitters Only)</h3>
+<h3 id="publish-the-website-(for-comitters-only)" tabindex="-1">Publish the Website (For Comitters Only)</h3>
<p>After you have done the local changes follow these steps to publish the content:</p>
<p>Add the following server configuration in your ~/.m2/settings.xml file</p>
<pre class="language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>server</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>id</span><span class="token punctuation">></span></span>pdfbox-site<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>id</span><span class="token punc [...]
@@ -236,7 +236,7 @@ git push origin master
</code></pre>
<p>This will checkout the current content into the <code>./target</code>directory, apply the changes from <code>./staging</code> and publish
the changes to the PDFBox production website.</p>
-<h3 id="update-the-javadocs-for-pdfbox-2.x">Update the JavaDocs for PDFBox 2.x</h3>
+<h3 id="update-the-javadocs-for-pdfbox-2.x" tabindex="-1">Update the JavaDocs for PDFBox 2.x</h3>
<p>To publish the javadocs follow these steps:</p>
<p>Run</p>
<pre><code> $ mvn clean javadoc:aggregate scm-publish:publish-scm
@@ -244,20 +244,20 @@ the changes to the PDFBox production website.</p>
<p>from the <code><SVN_ROOT>/../pdfbox</code> directory.</p>
<p>It uses the same <code>pdfbox-site</code> settings from above to connect to the repository.</p>
<p class="alert alert-info">As <code>mvn clean</code> will delete the javadoc files download from the Apache CMS it's advised to configure <code>${svn.scmJavadocCheckoutDirectory}</code> to a local directory not below <code>./target</code>.</p>
-<h2 id="build-with-maven">Build with Maven</h2>
+<h2 id="build-with-maven" tabindex="-1">Build with Maven</h2>
<p>The project provides a simple way to build the website sources locally using the build tool <a href="https://maven.apache.org/">Maven</a>.</p>
<p>The Maven build automatically downloads the tool binaries such as <code>node</code> and <code>npm</code> for you. You do not need to install
those tools on your host then. The binaries are added to the local project sources only and generate the website content.</p>
<p>As the Maven build uses pinned versions of <code>node</code> and <code>npm</code> that are tested to build the website you most likely avoid
build errors due to incompatible versions of <code>node.js</code> tooling installed on your machine.</p>
-<h3 id="preparing-maven">Preparing Maven</h3>
+<h3 id="preparing-maven" tabindex="-1">Preparing Maven</h3>
<p>Make sure that you have Maven installed.</p>
<pre><code>$ mvn --version
</code></pre>
<p>If this command fails with an error, you do not have Maven installed.</p>
<p>Please install Maven using your favorite package manager (like <a href="https://brew.sh/">Homebrew</a>) or from
official <a href="https://maven.apache.org/install.html">Maven binaries</a></p>
-<h3 id="building-from-scratch">Building from scratch</h3>
+<h3 id="building-from-scratch" tabindex="-1">Building from scratch</h3>
<p>When building everything from scratch the build executes following steps:</p>
<ul>
<li>Download <code>Node.js</code> and <code>npm</code> binaries to the local project</li>
@@ -269,11 +269,12 @@ official <a href="https://maven.apache.org/install.html">Maven binaries</a></p>
</code></pre>
<p>The whole process takes up to five minutes (time to grab some coffee!)</p>
<p>When the build is finished you should see the generated website in the <code>public</code> directory.</p>
-<h3 id="clean-build">Clean build</h3>
+<h3 id="clean-build" tabindex="-1">Clean build</h3>
<p>When rebuilding the website the process uses some cached content.
If you want to start from scratch for some reason you can simply add the <code>clean</code> operation to the build which removes
all generated sources in the project first.</p>
-<pre><code>$ mvn clean package</code></pre>
+<pre><code>$ mvn clean package
+</code></pre>
</div>
</div>
diff --git a/content/support.html b/content/support.html
index 6944edc8..bb922e69 100644
--- a/content/support.html
+++ b/content/support.html
@@ -168,12 +168,12 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="support">Support</h1>
-<h2 id="questions-about-how-to-use-pdfbox">Questions About How to Use PDFBox</h2>
+ <h1 id="support" tabindex="-1">Support</h1>
+<h2 id="questions-about-how-to-use-pdfbox" tabindex="-1">Questions About How to Use PDFBox</h2>
<p>If you have questions about how to use PDFBox do ask on the <a href="/mailinglists.html" title="Subscribe to Mailing List">Users Mailing List</a>. This will get you help from the entire community.</p>
<p>The PDFBox examples and the test code in the sources will also provide additional information.</p>
<p>And there are additonal resources available on sites such as <a href="http://stackoverflow.com/search?q=pdfbox" title="Stack Overflow">Stack Overflow</a>.</p>
-<h2 id="filing-a-bug-report-or-enhancement-request">Filing a Bug Report or Enhancement Request</h2>
+<h2 id="filing-a-bug-report-or-enhancement-request" tabindex="-1">Filing a Bug Report or Enhancement Request</h2>
<p class="alert alert-info">Please refrain from immediately opening a ticket in the JIRA issue tracker unless
you are really certain it's a problem in the PDFBox software. Try using the Mailing Lists first.</p>
<p>If you are sure you have found a bug then please report the problem in our
diff --git a/content/team.html b/content/team.html
index e129a205..bca45cf4 100644
--- a/content/team.html
+++ b/content/team.html
@@ -168,13 +168,13 @@
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache events"></a>
</div>
<div class="col-xs-12 col-sm-9">
- <h1 id="project-team">Project Team</h1>
+ <h1 id="project-team" tabindex="-1">Project Team</h1>
<p>A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers,
submitting patches and suggestions.</p>
<p>The team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base.
Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded.
Get involved today. All contributions to the project are greatly appreciated.</p>
-<h2 id="members">Members</h2>
+<h2 id="members" tabindex="-1">Members</h2>
<p>The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.</p>
<table>
<thead>
@@ -292,7 +292,7 @@ Get involved today. All contributions to the project are greatly appreciated.</p
</tr>
</tbody>
</table>
-<h2 id="emeritus-members">Emeritus members</h2>
+<h2 id="emeritus-members" tabindex="-1">Emeritus members</h2>
<p>The following is a list of former developers going emeritus from the PDFBox PMC.</p>
<table>
<thead>