This is an automated email from the ASF dual-hosted git repository. msahyoun 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 d3e83dd Site checkin for project Apache PDFBox Website d3e83dd is described below commit d3e83ddcfefd509085c23f2e5f827e0f7addcf45 Author: Maruan Sahyoun <msahy...@tp001.local.fileaffairs.de> AuthorDate: Sun Dec 29 17:12:58 2019 +0100 Site checkin for project Apache PDFBox Website --- content/1.8/architecture.html | 12 ++--- content/1.8/cookbook/documentcreation.html | 12 ++--- content/1.8/cookbook/encryption.html | 6 +-- content/1.8/cookbook/pdfacreation.html | 12 ++--- content/1.8/cookbook/pdfavalidation.html | 16 +++---- content/1.8/cookbook/textextraction.html | 4 +- content/1.8/cookbook/workingwithattachments.html | 14 +++--- content/1.8/cookbook/workingwithfonts.html | 24 +++++----- content/1.8/cookbook/workingwithmetadata.html | 34 +++++++------- content/1.8/faq.html | 4 +- content/2.0/cookbook/encryption.html | 6 +-- content/2.0/faq.html | 24 +++++++++- content/2.0/migration.html | 60 ++++++++++++------------ content/codingconventions.html | 8 ++-- 14 files changed, 128 insertions(+), 108 deletions(-) diff --git a/content/1.8/architecture.html b/content/1.8/architecture.html index 11b42f3..29cc418 100644 --- a/content/1.8/architecture.html +++ b/content/1.8/architecture.html @@ -282,9 +282,9 @@ doesn’t provide the functionality needed.</p> <p>The information within the dictionary can be accessed using the COS model</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">COSDictionary</span> <span class="n">page</span> <span class="o">=</span> <span class="o">...;</span> -<span class="nc">COSArray</span> <span class="n">mediaBox</span> <span class="o">=</span> <span class="o">(</span><span class="nc">COSArray</span><span class="o">)</span><span class="n">page</span><span class="o">.</span><span class="na">getDictionaryObject</span><span class="o">(</span> <span class="s">"MediaBox"</span> <span class="o">);</span> -<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Width:"</span> <span class="o">+</span> <span class="n">mediaBox</span><span class="o">.</span><span class="na">get</span><span class="o">(</span> <span class="mi">3</span> <span class="o">)</span> <span class="o">);</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">COSDictionary</span> <span class="n">page</span> <span class="o">=</span> <span class="o">...;</span> +<span class="n">COSArray</span> <span class="n">mediaBox</span> <span class="o">=</span> <span class="o">(</span><span class="n">COSArray</span><span class="o">)</span><span class="n">page</span><span class="o">.</span><span class="na">getDictionaryObject</span><span class="o">(</span> <span class="s">"MediaBox"</span> <span class="o">);</span> +<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Width:"</span> <span class="o">+</span> <span class="n">mediaBox</span><span class="o">.</span><span class="na">get</span><span class="o">(</span> <span class="mi">3</span> <span class="o">)</span> <span class="o">);</span> </code></pre></div></div> <p>As can be seen from that little example the COS model provides a low level API to access @@ -303,9 +303,9 @@ available to access the attributes.</p> <p>The same code from above to get the page width can be rewritten to use PD Model classes.</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDPage</span> <span class="n">page</span> <span class="o">=</span> <span class="o">...;</span> -<span class="nc">PDRectangle</span> <span class="n">mediaBox</span> <span class="o">=</span> <span class="n">page</span><span class="o">.</span><span class="na">getMediaBox</span><span class="o">();</span> -<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Width:"</span> <span class="o">+</span> <span class="n">mediaBox</span><span class="o">.</span><span class="na">getWidth</span><span class="o">()</span> <span class="o">);</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDPage</span> <span class="n">page</span> <span class="o">=</span> <span class="o">...;</span> +<span class="n">PDRectangle</span> <span class="n">mediaBox</span> <span class="o">=</span> <span class="n">page</span><span class="o">.</span><span class="na">getMediaBox</span><span class="o">();</span> +<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Width:"</span> <span class="o">+</span> <span class="n">mediaBox</span><span class="o">.</span><span class="na">getWidth</span><span class="o">()</span> <span class="o">);</span> </code></pre></div></div> <p>PD Model objects sit on top of COS model. Typically, the classes in the PD Model will only diff --git a/content/1.8/cookbook/documentcreation.html b/content/1.8/cookbook/documentcreation.html index 7510996..8d7eb71 100644 --- a/content/1.8/cookbook/documentcreation.html +++ b/content/1.8/cookbook/documentcreation.html @@ -164,10 +164,10 @@ <p>This small sample shows how to create a new PDF document using PDFBox.</p> <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Create a new empty document</span> -<span class="nc">PDDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDDocument</span><span class="o">();</span> +<span class="n">PDDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDDocument</span><span class="o">();</span> <span class="c1">// Create a new blank page and add it to the document</span> -<span class="nc">PDPage</span> <span class="n">blankPage</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDPage</span><span class="o">();</span> +<span class="n">PDPage</span> <span class="n">blankPage</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDPage</span><span class="o">();</span> <span class="n">document</span><span class="o">.</span><span class="na">addPage</span><span class="o">(</span> <span class="n">blankPage</span> <span class="o">);</span> <span class="c1">// Save the newly created document</span> @@ -183,15 +183,15 @@ <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> <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Create a document and add a page to it</span> -<span class="nc">PDDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDDocument</span><span class="o">();</span> -<span class="nc">PDPage</span> <span class="n">page</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDPage</span><span class="o">();</span> +<span class="n">PDDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDDocument</span><span class="o">();</span> +<span class="n">PDPage</span> <span class="n">page</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDPage</span><span class="o">();</span> <span class="n">document</span><span class="o">.</span><span class="na">addPage</span><span class="o">(</span> <span class="n">page</span> <span class="o">);</span> <span class="c1">// Create a new font object selecting one of the PDF base fonts</span> -<span class="nc">PDFont</span> <span class="n">font</span> <span class="o">=</span> <span class="nc">PDType1Font</span><span class="o">.</span><span class="na">HELVETICA_BOLD</span><span class="o">;</span> +<span class="n">PDFont</span> <span class="n">font</span> <span class="o">=</span> <span class="n">PDType1Font</span><span class="o">.</span><span class="na">HELVETICA_BOLD</span><span class="o">;</span> <span class="c1">// Start a new content stream which will "hold" the to be created content</span> -<span class="nc">PDPageContentStream</span> <span class="n">contentStream</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDPageContentStream</span><span class="o">(</span><span class="n">document</span><span class="o">,</span> <span class="n">page</span><span class="o">);</span> +<span class="n">PDPageContentStream</span> <span class="n">contentStream</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDPageContentStream</span><span class="o">(</span><span class="n">document</span><span class="o">,</span> <span class="n">page</span><span class="o">);</span> <span class="c1">// Define a text content stream using the selected font, moving the cursor and drawing the text "Hello World"</span> <span class="n">contentStream</span><span class="o">.</span><span class="na">beginText</span><span class="o">();</span> diff --git a/content/1.8/cookbook/encryption.html b/content/1.8/cookbook/encryption.html index 5044834..2be3c2b 100644 --- a/content/1.8/cookbook/encryption.html +++ b/content/1.8/cookbook/encryption.html @@ -165,20 +165,20 @@ <p>This small sample shows how to encrypt a file so that it can be viewed, but not printed.</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDDocument</span> <span class="n">doc</span> <span class="o">=</span> <span class="nc">PDDocument</span><span class="o">.</span><span class="na">load</span><span class="o">(</span><span class="s">"filename.pdf"</span><span class="o">);</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDDocument</span> <span class="n">doc</span> <span class="o">=</span> <span class="n">PDDocument</span><span class="o">.</span><span class="na">load</span><span class="o">(</span><span class="s">"filename.pdf"</span><span class="o">);</span> <span class="c1">// Define the length of the encryption key.</span> <span class="c1">// Possible values are 40 or 128 (256 will be available in PDFBox 2.0).</span> <span class="kt">int</span> <span class="n">keyLength</span> <span class="o">=</span> <span class="mi">128</span><span class="o">;</span> -<span class="nc">AccessPermission</span> <span class="n">ap</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">AccessPermission</span><span class="o">();</span> +<span class="n">AccessPermission</span> <span class="n">ap</span> <span class="o">=</span> <span class="k">new</span> <span class="n">AccessPermission</span><span class="o">();</span> <span class="c1">// Disable printing, everything else is allowed</span> <span class="n">ap</span><span class="o">.</span><span class="na">setCanPrint</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span> <span class="c1">// Owner password (to open the file with all permissions) is "12345"</span> <span class="c1">// User password (to open the file but with restricted permissions, is empty here) </span> -<span class="nc">StandardProtectionPolicy</span> <span class="n">spp</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">StandardProtectionPolicy</span><span class="o">(</span><span class="s">"12345"</span><span class="o">,</span> <span class="s">""</span><span class="o">,</span> <span class="n">ap</span><span class="o">);</span> +<span class="n">StandardProtectionPolicy</span> <span class="n">spp</span> <span class="o">=</span> <span class="k">new</span> <span class="n">StandardProtectionPolicy</span><span class="o">(</span><span class="s">"12345"</span><span class="o">,</span> <span class="s">""</span><span class="o">,</span> <span class="n">ap</span><span class="o">);</span> <span class="n">spp</span><span class="o">.</span><span class="na">setEncryptionKeyLength</span><span class="o">(</span><span class="n">keyLength</span><span class="o">);</span> <span class="n">spp</span><span class="o">.</span><span class="na">setPermissions</span><span class="o">(</span><span class="n">ap</span><span class="o">);</span> <span class="n">doc</span><span class="o">.</span><span class="na">protect</span><span class="o">(</span><span class="n">spp</span><span class="o">);</span> diff --git a/content/1.8/cookbook/pdfacreation.html b/content/1.8/cookbook/pdfacreation.html index 505e301..758bf1e 100644 --- a/content/1.8/cookbook/pdfacreation.html +++ b/content/1.8/cookbook/pdfacreation.html @@ -170,8 +170,8 @@ document. The current example creates a valid PDF/A-1b document.</p> <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> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">InputStream</span> <span class="n">fontStream</span> <span class="o">=</span> <span class="nc">CreatePDFA</span><span class="o">.</span><span class="na">class</span><span class="o">.</span><span class="na">getResourceAsStream</span><span class="o">(</span><span class="s">"/org/apache/pdfbox/resources/ttf/ArialMT.ttf"</span><span class="o">);</span> -<span class="nc">PDFont</span> <span class="n">font</span> <span class="o">=</span> <span class="nc">PDTrueTypeFont</span><span class="o">.</span><span class="na">loadTTF</span><span class="o">(</span><span class="n">doc</span><span class="o">,</span> <span class="n">fontStream</span><span class="o">);</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">InputStream</span> <span class="n">fontStream</span> <span class="o">=</span> <span class="n">CreatePDFA</span><span class="o">.</span><span class="na">class</span><span class="o">.</span><span class="na">getResourceAsStream</span><span class="o">(</span><span class="s">"/org/apache/pdfbox/resources/ttf/ArialMT.ttf"</span><span class="o">);</span> +<span class="n">PDFont</span> <span class="n">font</span> <span class="o">=</span> <span class="n">PDTrueTypeFont</span><span class="o">.</span><span class="na">loadTTF</span><span class="o">(</span><span class="n">doc</span><span class="o">,</span> <span class="n">fontStream</span><span class="o">);</span> </code></pre></div></div> <h2 id="include-xmp-metadata-block">Include XMP Metadata Block</h2> @@ -180,8 +180,8 @@ have to load them. As an example:</p> of PDF/A specification reached by the document) must be present. These lines create the XMP metadata for a PDF/A-1b document:</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">XMPMetadata</span> <span class="n">xmp</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">XMPMetadata</span><span class="o">();</span> -<span class="nc">XMPSchemaPDFAId</span> <span class="n">pdfaid</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">XMPSchemaPDFAId</span><span class="o">(</span><span class="n">xmp</span><span class="o">);</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">XMPMetadata</span> <span class="n">xmp</span> <span class="o">=</span> <span class="k">new</span> <span class="n">XMPMetadata</span><span class="o">();</span> +<span class="n">XMPSchemaPDFAId</span> <span class="n">pdfaid</span> <span class="o">=</span> <span class="k">new</span> <span class="n">XMPSchemaPDFAId</span><span class="o">(</span><span class="n">xmp</span><span class="o">);</span> <span class="n">xmp</span><span class="o">.</span><span class="na">addSchema</span><span class="o">(</span><span class="n">pdfaid</span><span class="o">);</span> <span class="n">pdfaid</span><span class="o">.</span><span class="na">setConformance</span><span class="o">(</span><span class="s">"B"</span><span class="o">);</span> <span class="n">pdfaid</span><span class="o">.</span><span class="na">setPart</span><span class="o">(</span><span class="mi">1</span><span class="o">);</span> @@ -195,8 +195,8 @@ PDF/A-1b document:</p> example takes one present in pdfbox:</p> <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Create output intent</span> -<span class="nc">InputStream</span> <span class="n">colorProfile</span> <span class="o">=</span> <span class="nc">CreatePDFA</span><span class="o">.</span><span class="na">class</span><span class="o">.</span><span class="na">getResourceAsStream</span><span class="o">(</span><span class="s">"/org/apache/pdfbox/resources/pdfa/sRGB Color Space Profile.icm"</span><span class="o">);</span> -<span class="nc">PDOutputIntent</span> <span class="n">oi</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDOutputIntent</span><span class="o">(</span><span class="n">doc</span><span class="o">,</span> <span class="n">colorProfile</span><span class="o">);</span> +<span class="n">InputStream</span> <span class="n">colorProfile</span> <span class="o">=</span> <span class="n">CreatePDFA</span><span class="o">.</span><span class="na">class</span><span class="o">.</span><span class="na">getResourceAsStream</span><span class="o">(</span><span class="s">"/org/apache/pdfbox/resources/pdfa/sRGB Color Space Profile.icm"</span><span class="o">);</span> +<span class="n">PDOutputIntent</span> <span class="n">oi</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDOutputIntent</span><span class="o">(</span><span class="n">doc</span><span class="o">,</span> <span class="n">colorProfile</span><span class="o">);</span> <span class="n">oi</span><span class="o">.</span><span class="na">setInfo</span><span class="o">(</span><span class="s">"sRGB IEC61966-2.1"</span><span class="o">);</span> <span class="n">oi</span><span class="o">.</span><span class="na">setOutputCondition</span><span class="o">(</span><span class="s">"sRGB IEC61966-2.1"</span><span class="o">);</span> <span class="n">oi</span><span class="o">.</span><span class="na">setOutputConditionIdentifier</span><span class="o">(</span><span class="s">"sRGB IEC61966-2.1"</span><span class="o">);</span> diff --git a/content/1.8/cookbook/pdfavalidation.html b/content/1.8/cookbook/pdfavalidation.html index 140966c..c074351 100644 --- a/content/1.8/cookbook/pdfavalidation.html +++ b/content/1.8/cookbook/pdfavalidation.html @@ -164,9 +164,9 @@ 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> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">ValidationResult</span> <span class="n">result</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">ValidationResult</span> <span class="n">result</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span> -<span class="nc">PreflightParser</span> <span class="n">parser</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PreflightParser</span><span class="o">(</span><span class="n">args</span><span class="o">[</span><span class="mi">0</span><span class="o">]);</span> +<span class="n">PreflightParser</span> <span class="n">parser</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PreflightParser</span><span class="o">(</span><span class="n">args</span><span class="o">[</span><span class="mi">0</span><span class="o">]);</span> <span class="k">try</span> <span class="o">{</span> @@ -181,7 +181,7 @@ Check Compliance with PDF/A-1b</p> * (that inherits from PDDocument) * This document process the end of PDF/A validation. */</span> - <span class="nc">PreflightDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="na">getPreflightDocument</span><span class="o">();</span> + <span class="n">PreflightDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="na">getPreflightDocument</span><span class="o">();</span> <span class="n">document</span><span class="o">.</span><span class="na">validate</span><span class="o">();</span> <span class="c1">// Get validation result</span> @@ -189,7 +189,7 @@ Check Compliance with PDF/A-1b</p> <span class="n">document</span><span class="o">.</span><span class="na">close</span><span class="o">();</span> <span class="o">}</span> -<span class="k">catch</span> <span class="o">(</span><span class="nc">SyntaxValidationException</span> <span class="n">e</span><span class="o">)</span> +<span class="k">catch</span> <span class="o">(</span><span class="n">SyntaxValidationException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span> <span class="cm">/* the parse method can throw a SyntaxValidationException * if the PDF file can't be parsed. @@ -201,14 +201,14 @@ Check Compliance with PDF/A-1b</p> <span class="c1">// display validation result</span> <span class="k">if</span> <span class="o">(</span><span class="n">result</span><span class="o">.</span><span class="na">isValid</span><span class="o">())</span> <span class="o">{</span> - <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"The file "</span> <span class="o">+</span> <span class="n">args</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span> <span class="o">+</span> <span class="s">" is a valid PDF/A-1b file"</span><span class="o">);</span> + <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"The file "</span> <span class="o">+</span> <span class="n">args</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span> <span class="o">+</span> <span class="s">" is a valid PDF/A-1b file"</span><span class="o">);</span> <span class="o">}</span> <span class="k">else</span> <span class="o">{</span> - <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"The file"</span> <span class="o">+</span> <span class="n">args</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span> <span class="o">+</span> <span class="s">" is not valid, error(s) :"</span><span class="o">);</span> - <span class="k">for</span> <span class="o">(</span><span class="nc">ValidationError</span> <span class="n">error</span> <span class="o">:</span> <span class="n">result</span><span class="o">.</span><span class="na">getErrorsList</span><span class="o">())</span> + <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"The file"</span> <span class="o">+</span> <span class="n">args</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span> <span class="o">+</span> <span class="s">" is not valid, error(s) :"</span><span class="o">);</span> + <span class="k">for</span> <span class="o">(</span><span class="n">ValidationError</span> <span class="n">error</span> <span class="o">:</span> <span class="n">result</span><span class="o">.</span><span class="na">getErrorsList</span><span class="o">())</span> <span class="o">{</span> - <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">error</span><span class="o">.</span><span class="na">getErrorCode</span><span class="o">()</span> <span class="o">+</span> <span class="s">" : "</span> <span class="o">+</span> <span class="n">error</span><span class="o">.</span><span class="na">getDetails</span><span class="o">());</span> + <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">error</span><span class="o">.</span><span class="na">getErrorCode</span><span class="o">()</span> <span class="o">+</span> <span class="s">" : "</span> <span class="o">+</span> <span class="n">error</span><span class="o">.</span><span class="na">getDetails</span><span class="o">());</span> <span class="o">}</span> <span class="o">}</span> </code></pre></div></div> diff --git a/content/1.8/cookbook/textextraction.html b/content/1.8/cookbook/textextraction.html index 7015420..8660afc 100644 --- a/content/1.8/cookbook/textextraction.html +++ b/content/1.8/cookbook/textextraction.html @@ -176,7 +176,7 @@ org.apache.pdfbox.ExtractText.</p> 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> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">Document</span> <span class="n">luceneDocument</span> <span class="o">=</span> <span class="nc">LucenePDFDocument</span><span class="o">.</span><span class="na">getDocument</span><span class="o">(</span> <span class="o">...</span> <span class="o">);</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Document</span> <span class="n">luceneDocument</span> <span class="o">=</span> <span class="n">LucenePDFDocument</span><span class="o">.</span><span class="na">getDocument</span><span class="o">(</span> <span class="o">...</span> <span class="o">);</span> </code></pre></div></div> <p>Now that you hava a Lucene Document object, you can add it to the Lucene index just like @@ -200,7 +200,7 @@ process. The simplest is to specify the range of pages that you want to be extra For example, to only extract text from the second and third pages of the PDF document you could do this:</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDFTextStripper</span> <span class="n">stripper</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDFTextStripper</span><span class="o">();</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDFTextStripper</span> <span class="n">stripper</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDFTextStripper</span><span class="o">();</span> <span class="n">stripper</span><span class="o">.</span><span class="na">setStartPage</span><span class="o">(</span> <span class="mi">2</span> <span class="o">);</span> <span class="n">stripper</span><span class="o">.</span><span class="na">setEndPage</span><span class="o">(</span> <span class="mi">3</span> <span class="o">);</span> <span class="n">stripper</span><span class="o">.</span><span class="na">writeText</span><span class="o">(</span> <span class="o">...</span> <span class="o">);</span> diff --git a/content/1.8/cookbook/workingwithattachments.html b/content/1.8/cookbook/workingwithattachments.html index 78b9c14..0a34b31 100644 --- a/content/1.8/cookbook/workingwithattachments.html +++ b/content/1.8/cookbook/workingwithattachments.html @@ -183,25 +183,25 @@ attribute of the <code class="highlighter-rouge">PDComplexFileSpecification</cod 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> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDEmbeddedFilesNameTreeNode</span> <span class="n">efTree</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDEmbeddedFilesNameTreeNode</span><span class="o">();</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDEmbeddedFilesNameTreeNode</span> <span class="n">efTree</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDEmbeddedFilesNameTreeNode</span><span class="o">();</span> <span class="c1">//first create the file specification, which holds the embedded file</span> -<span class="nc">PDComplexFileSpecification</span> <span class="n">fs</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDComplexFileSpecification</span><span class="o">();</span> +<span class="n">PDComplexFileSpecification</span> <span class="n">fs</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDComplexFileSpecification</span><span class="o">();</span> <span class="n">fs</span><span class="o">.</span><span class="na">setFile</span><span class="o">(</span> <span class="s">"Test.txt"</span> <span class="o">);</span> -<span class="nc">InputStream</span> <span class="n">is</span> <span class="o">=</span> <span class="o">...;</span> -<span class="nc">PDEmbeddedFile</span> <span class="n">ef</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDEmbeddedFile</span><span class="o">(</span><span class="n">doc</span><span class="o">,</span> <span class="n">is</span> <span class="o">);</span> +<span class="n">InputStream</span> <span class="n">is</span> <span class="o">=</span> <span class="o">...;</span> +<span class="n">PDEmbeddedFile</span> <span class="n">ef</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDEmbeddedFile</span><span class="o">(</span><span class="n">doc</span><span class="o">,</span> <span class="n">is</span> <span class="o">);</span> <span class="c1">//set some of the attributes of the embedded file</span> <span class="n">ef</span><span class="o">.</span><span class="na">setSubtype</span><span class="o">(</span> <span class="s">"test/plain"</span> <span class="o">);</span> <span class="n">ef</span><span class="o">.</span><span class="na">setSize</span><span class="o">(</span> <span class="n">data</span><span class="o">.</span><span class="na">length</span> <span class="o">);</span> -<span class="n">ef</span><span class="o">.</span><span class="na">setCreationDate</span><span class="o">(</span> <span class="k">new</span> <span class="nc">GregorianCalendar</span><span class="o">()</span> <span class="o">);</span> +<span class="n">ef</span><span class="o">.</span><span class="na">setCreationDate</span><span class="o">(</span> <span class="k">new</span> <span class="n">GregorianCalendar</span><span class="o">()</span> <span class="o">);</span> <span class="n">fs</span><span class="o">.</span><span class="na">setEmbeddedFile</span><span class="o">(</span> <span class="n">ef</span> <span class="o">);</span> <span class="c1">//now add the entry to the embedded file tree and set in the document.</span> -<span class="nc">Map</span> <span class="n">efMap</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">HashMap</span><span class="o">();</span> +<span class="n">Map</span> <span class="n">efMap</span> <span class="o">=</span> <span class="k">new</span> <span class="n">HashMap</span><span class="o">();</span> <span class="n">efMap</span><span class="o">.</span><span class="na">put</span><span class="o">(</span> <span class="s">"My first attachment"</span><span class="o">,</span> <span class="n">fs</span> <span class="o">);</span> <span class="n">efTree</span><span class="o">.</span><span class="na">setNames</span><span class="o">(</span> <span class="n">efMap</span> <span class="o">);</span> <span class="c1">//attachments are stored as part of the "names" dictionary in the document catalog</span> -<span class="nc">PDDocumentNameDictionary</span> <span class="n">names</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDDocumentNameDictionary</span><span class="o">(</span> <span class="n">doc</span><span class="o">.</span><span class="na">getDocumentCatalog</span><span class="o">()</span> <span class="o">);</span> +<span class="n">PDDocumentNameDictionary</span> <span class="n">names</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDDocumentNameDictionary</span><span class="o">(</span> <span class="n">doc</span><span class="o">.</span><span class="na">getDocumentCatalog</span><span class="o">()</span> <span class="o">);</span> <span class="n">names</span><span class="o">.</span><span class="na">setEmbeddedFiles</span><span class="o">(</span> <span class="n">efTree</span> <span class="o">);</span> <span class="n">doc</span><span class="o">.</span><span class="na">getDocumentCatalog</span><span class="o">().</span><span class="na">setNames</span><span class="o">(</span> <span class="n">names</span> <span class="o">);</span> </code></pre></div></div> diff --git a/content/1.8/cookbook/workingwithfonts.html b/content/1.8/cookbook/workingwithfonts.html index e201288..07d76a3 100644 --- a/content/1.8/cookbook/workingwithfonts.html +++ b/content/1.8/cookbook/workingwithfonts.html @@ -235,15 +235,15 @@ <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> <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Create a document and add a page to it</span> -<span class="nc">PDDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDDocument</span><span class="o">();</span> -<span class="nc">PDPage</span> <span class="n">page</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDPage</span><span class="o">();</span> +<span class="n">PDDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDDocument</span><span class="o">();</span> +<span class="n">PDPage</span> <span class="n">page</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDPage</span><span class="o">();</span> <span class="n">document</span><span class="o">.</span><span class="na">addPage</span><span class="o">(</span> <span class="n">page</span> <span class="o">);</span> <span class="c1">// Create a new font object selecting one of the PDF base fonts</span> -<span class="nc">PDFont</span> <span class="n">font</span> <span class="o">=</span> <span class="nc">PDType1Font</span><span class="o">.</span><span class="na">HELVETICA_BOLD</span><span class="o">;</span> +<span class="n">PDFont</span> <span class="n">font</span> <span class="o">=</span> <span class="n">PDType1Font</span><span class="o">.</span><span class="na">HELVETICA_BOLD</span><span class="o">;</span> <span class="c1">// Start a new content stream which will "hold" the to be created content</span> -<span class="nc">PDPageContentStream</span> <span class="n">contentStream</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDPageContentStream</span><span class="o">(</span><span class="n">document</span><span class="o">,</span> <span class="n">page</span><span class="o">);</span> +<span class="n">PDPageContentStream</span> <span class="n">contentStream</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDPageContentStream</span><span class="o">(</span><span class="n">document</span><span class="o">,</span> <span class="n">page</span><span class="o">);</span> <span class="c1">// Define a text content stream using the selected font, moving the cursor and drawing the text "Hello World"</span> <span class="n">contentStream</span><span class="o">.</span><span class="na">beginText</span><span class="o">();</span> @@ -265,15 +265,15 @@ <p>This small sample shows how to create a new document and print the text “Hello World” using a TrueType font.</p> <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Create a document and add a page to it</span> -<span class="nc">PDDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDDocument</span><span class="o">();</span> -<span class="nc">PDPage</span> <span class="n">page</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDPage</span><span class="o">();</span> +<span class="n">PDDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDDocument</span><span class="o">();</span> +<span class="n">PDPage</span> <span class="n">page</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDPage</span><span class="o">();</span> <span class="n">document</span><span class="o">.</span><span class="na">addPage</span><span class="o">(</span> <span class="n">page</span> <span class="o">);</span> <span class="c1">// Create a new font object by loading a TrueType font into the document</span> -<span class="nc">PDFont</span> <span class="n">font</span> <span class="o">=</span> <span class="nc">PDTrueTypeFont</span><span class="o">.</span><span class="na">loadTTF</span><span class="o">(</span><span class="n">document</span><span class="o">,</span> <span class="s">"Arial.ttf"</span><span class="o">);</span> +<span class="n">PDFont</span> <span class="n">font</span> <span class="o">=</span> <span class="n">PDTrueTypeFont</span><span class="o">.</span><span class="na">loadTTF</span><span class="o">(</span><span class="n">document</span><span class="o">,</span> <span class="s">"Arial.ttf"</span><span class="o">);</span> <span class="c1">// Start a new content stream which will "hold" the to be created content</span> -<span class="nc">PDPageContentStream</span> <span class="n">contentStream</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDPageContentStream</span><span class="o">(</span><span class="n">document</span><span class="o">,</span> <span class="n">page</span><span class="o">);</span> +<span class="n">PDPageContentStream</span> <span class="n">contentStream</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDPageContentStream</span><span class="o">(</span><span class="n">document</span><span class="o">,</span> <span class="n">page</span><span class="o">);</span> <span class="c1">// Define a text content stream using the selected font, moving the cursor and drawing the text "Hello World"</span> <span class="n">contentStream</span><span class="o">.</span><span class="na">beginText</span><span class="o">();</span> @@ -303,15 +303,15 @@ use when no mapping exists.</p> <p>This small sample shows how to create a new document and print the text “Hello World” using a PostScript Type1 font.</p> <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Create a document and add a page to it</span> -<span class="nc">PDDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDDocument</span><span class="o">();</span> -<span class="nc">PDPage</span> <span class="n">page</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDPage</span><span class="o">();</span> +<span class="n">PDDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDDocument</span><span class="o">();</span> +<span class="n">PDPage</span> <span class="n">page</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDPage</span><span class="o">();</span> <span class="n">document</span><span class="o">.</span><span class="na">addPage</span><span class="o">(</span> <span class="n">page</span> <span class="o">);</span> <span class="c1">// Create a new font object by loading a PostScript Type 1 font into the document</span> -<span class="nc">PDFont</span> <span class="n">font</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDType1AfmPfbFont</span><span class="o">(</span><span class="n">doc</span><span class="o">,</span><span class="s">"cfm.afm"</span><span class="o">);</span> +<span class="n">PDFont</span> <span class="n">font</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDType1AfmPfbFont</span><span class="o">(</span><span class="n">doc</span><span class="o">,</span><span class="s">"cfm.afm"</span><span class="o">);</span> <span class="c1">// Start a new content stream which will "hold" the to be created content</span> -<span class="nc">PDPageContentStream</span> <span class="n">contentStream</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDPageContentStream</span><span class="o">(</span><span class="n">document</span><span class="o">,</span> <span class="n">page</span><span class="o">);</span> +<span class="n">PDPageContentStream</span> <span class="n">contentStream</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDPageContentStream</span><span class="o">(</span><span class="n">document</span><span class="o">,</span> <span class="n">page</span><span class="o">);</span> <span class="c1">// Define a text content stream using the selected font, moving the cursor and drawing the text "Hello World"</span> <span class="n">contentStream</span><span class="o">.</span><span class="na">beginText</span><span class="o">();</span> diff --git a/content/1.8/cookbook/workingwithmetadata.html b/content/1.8/cookbook/workingwithmetadata.html index 4dd6a0e..3f2dd2c 100644 --- a/content/1.8/cookbook/workingwithmetadata.html +++ b/content/1.8/cookbook/workingwithmetadata.html @@ -171,17 +171,17 @@ 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> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDDocumentInformation</span> <span class="n">info</span> <span class="o">=</span> <span class="n">document</span><span class="o">.</span><span class="na">getDocumentInformation</span><span class="o">();</span> -<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Page Count="</span> <span class="o">+</span> <span class="n">document</span><span class="o">.</span><span class="na">getNumberOfPages</span><span class="o">()</span> <span class="o">);</span> -<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Title="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getTitle</span><span class="o">()</span> <span class="o">);</span> -<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Author="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getAuthor</span><span class="o">()</span> <span class="o">);</span> -<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Subject="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getSubject</span><span class="o">()</span> <span class="o">);</span> -<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Keywords="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getKeywords</span><span class="o">()</span> <span class="o">);</span> -<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Creator="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getCreator</span><span class="o">()</span> <span class="o">);</span> -<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Producer="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getProducer</span><span class="o">()</span> <span class="o">);</span> -<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Creation Date="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getCreationDate</span><span class="o">()</span> <span class="o">);</span> -<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Modification Date="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getModificationDate</span><span class="o">());</span> -<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Trapped="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getTrapped</span><span class="o">()</span> <span class="o">);</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDDocumentInformation</span> <span class="n">info</span> <span class="o">=</span> <span class="n">document</span><span class="o">.</span><span class="na">getDocumentInformation</span><span class="o">();</span> +<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Page Count="</span> <span class="o">+</span> <span class="n">document</span><span class="o">.</span><span class="na">getNumberOfPages</span><span class="o">()</span> <span class="o">);</span> +<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Title="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getTitle</span><span class="o">()</span> <span class="o">);</span> +<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Author="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getAuthor</span><span class="o">()</span> <span class="o">);</span> +<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Subject="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getSubject</span><span class="o">()</span> <span class="o">);</span> +<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Keywords="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getKeywords</span><span class="o">()</span> <span class="o">);</span> +<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Creator="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getCreator</span><span class="o">()</span> <span class="o">);</span> +<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Producer="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getProducer</span><span class="o">()</span> <span class="o">);</span> +<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Creation Date="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getCreationDate</span><span class="o">()</span> <span class="o">);</span> +<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Modification Date="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getModificationDate</span><span class="o">());</span> +<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span> <span class="s">"Trapped="</span> <span class="o">+</span> <span class="n">info</span><span class="o">.</span><span class="na">getTrapped</span><span class="o">()</span> <span class="o">);</span> </code></pre></div></div> <h2 id="accessing-pdf-metadata">Accessing PDF Metadata</h2> @@ -205,16 +205,16 @@ recommended that you review that specification. Currently there is no high level managing the XML metadata, PDFBox uses standard java InputStream/OutputStream to retrieve or set the XML metadata.</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDDocument</span> <span class="n">doc</span> <span class="o">=</span> <span class="nc">PDDocument</span><span class="o">.</span><span class="na">load</span><span class="o">(</span> <span class="o">...</span> <span class="o">);</span> -<span class="nc">PDDocumentCatalog</span> <span class="n">catalog</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="na">getDocumentCatalog</span><span class="o">();</span> -<span class="nc">PDMetadata</span> <span class="n">metadata</span> <span class="o">=</span> <span class="n">catalog</span><span class="o">.</span><span class="na">getMetadata</span><span class="o">();</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDDocument</span> <span class="n">doc</span> <span class="o">=</span> <span class="n">PDDocument</span><span class="o">.</span><span class="na">load</span><span class="o">(</span> <span class="o">...</span> <span class="o">);</span> +<span class="n">PDDocumentCatalog</span> <span class="n">catalog</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="na">getDocumentCatalog</span><span class="o">();</span> +<span class="n">PDMetadata</span> <span class="n">metadata</span> <span class="o">=</span> <span class="n">catalog</span><span class="o">.</span><span class="na">getMetadata</span><span class="o">();</span> <span class="c1">// To read the XML metadata</span> -<span class="nc">InputStream</span> <span class="n">xmlInputStream</span> <span class="o">=</span> <span class="n">metadata</span><span class="o">.</span><span class="na">createInputStream</span><span class="o">();</span> +<span class="n">InputStream</span> <span class="n">xmlInputStream</span> <span class="o">=</span> <span class="n">metadata</span><span class="o">.</span><span class="na">createInputStream</span><span class="o">();</span> <span class="c1">// Or to write new XML metadata</span> -<span class="nc">InputStream</span> <span class="n">newXMPData</span> <span class="o">=</span> <span class="o">...;</span> -<span class="nc">PDMetadata</span> <span class="n">newMetadata</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDMetadata</span><span class="o">(</span><span class="n">doc</span><span class="o">,</span> <span class="n">newXMLData</span><span class="o">,</span> <span class="kc">false</span> <span class="o">);</span> +<span class="n">InputStream</span> <span class="n">newXMPData</span> <span class="o">=</span> <span class="o">...;</span> +<span class="n">PDMetadata</span> <span class="n">newMetadata</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDMetadata</span><span class="o">(</span><span class="n">doc</span><span class="o">,</span> <span class="n">newXMLData</span><span class="o">,</span> <span class="kc">false</span> <span class="o">);</span> <span class="n">catalog</span><span class="o">.</span><span class="na">setMetadata</span><span class="o">(</span> <span class="n">newMetadata</span> <span class="o">);</span> </code></pre></div></div> diff --git a/content/1.8/faq.html b/content/1.8/faq.html index e6be7b6..eca2fc3 100644 --- a/content/1.8/faq.html +++ b/content/1.8/faq.html @@ -213,10 +213,10 @@ 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> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDDocument</span> <span class="n">doc</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDDocument</span><span class="o">();</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDDocument</span> <span class="n">doc</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDDocument</span><span class="o">();</span> <span class="k">try</span> <span class="o">{</span> - <span class="n">doc</span> <span class="o">=</span> <span class="nc">PDDocument</span><span class="o">.</span><span class="na">load</span><span class="o">(</span> <span class="s">"my.pdf"</span> <span class="o">);</span> + <span class="n">doc</span> <span class="o">=</span> <span class="n">PDDocument</span><span class="o">.</span><span class="na">load</span><span class="o">(</span> <span class="s">"my.pdf"</span> <span class="o">);</span> <span class="o">}</span> <span class="k">finally</span> <span class="o">{</span> diff --git a/content/2.0/cookbook/encryption.html b/content/2.0/cookbook/encryption.html index 6de1076..d424eb2 100644 --- a/content/2.0/cookbook/encryption.html +++ b/content/2.0/cookbook/encryption.html @@ -111,20 +111,20 @@ <p>This small sample shows how to encrypt a file so that it can be viewed, but not printed.</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDDocument</span> <span class="n">doc</span> <span class="o">=</span> <span class="nc">PDDocument</span><span class="o">.</span><span class="na">load</span><span class="o">(</span><span class="k">new</span> <span class="nc">File</span><span class="o">(</span><span class="s">"filename.pdf"</span><span class="o">));</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDDocument</span> <span class="n">doc</span> <span class="o">=</span> <span class="n">PDDocument</span><span class="o">.</span><span class="na">load</span><span class="o">(</span><span class="k">new</span> <span class="n">File</span><span class="o">(</span><span class="s">"filename.pdf"</span><span class="o">));</span> <span class="c1">// Define the length of the encryption key.</span> <span class="c1">// Possible values are 40, 128 or 256.</span> <span class="kt">int</span> <span class="n">keyLength</span> <span class="o">=</span> <span class="mi">256</span><span class="o">;</span> -<span class="nc">AccessPermission</span> <span class="n">ap</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">AccessPermission</span><span class="o">();</span> +<span class="n">AccessPermission</span> <span class="n">ap</span> <span class="o">=</span> <span class="k">new</span> <span class="n">AccessPermission</span><span class="o">();</span> <span class="c1">// disable printing, everything else is allowed</span> <span class="n">ap</span><span class="o">.</span><span class="na">setCanPrint</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span> <span class="c1">// Owner password (to open the file with all permissions) is "12345"</span> <span class="c1">// User password (to open the file but with restricted permissions, is empty here)</span> -<span class="nc">StandardProtectionPolicy</span> <span class="n">spp</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">StandardProtectionPolicy</span><span class="o">(</span><span class="s">"12345"</span><span class="o">,</span> <span class="s">""</span><span class="o">,</span> <span class="n">ap</span><span class="o">);</span> +<span class="n">StandardProtectionPolicy</span> <span class="n">spp</span> <span class="o">=</span> <span class="k">new</span> <span class="n">StandardProtectionPolicy</span><span class="o">(</span><span class="s">"12345"</span><span class="o">,</span> <span class="s">""</span><span class="o">,</span> <span class="n">ap</span><span class="o">);</span> <span class="n">spp</span><span class="o">.</span><span class="na">setEncryptionKeyLength</span><span class="o">(</span><span class="n">keyLength</span><span class="o">);</span> <span class="n">spp</span><span class="o">.</span><span class="na">setPermissions</span><span class="o">(</span><span class="n">ap</span><span class="o">);</span> <span class="n">doc</span><span class="o">.</span><span class="na">protect</span><span class="o">(</span><span class="n">spp</span><span class="o">);</span> diff --git a/content/2.0/faq.html b/content/2.0/faq.html index e4d6239..c76f696 100644 --- a/content/2.0/faq.html +++ b/content/2.0/faq.html @@ -144,10 +144,10 @@ 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> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDDocument</span> <span class="n">doc</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDDocument</span><span class="o">();</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDDocument</span> <span class="n">doc</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDDocument</span><span class="o">();</span> <span class="k">try</span> <span class="o">{</span> - <span class="n">doc</span> <span class="o">=</span> <span class="nc">PDDocument</span><span class="o">.</span><span class="na">load</span><span class="o">(</span> <span class="s">"my.pdf"</span> <span class="o">);</span> + <span class="n">doc</span> <span class="o">=</span> <span class="n">PDDocument</span><span class="o">.</span><span class="na">load</span><span class="o">(</span> <span class="s">"my.pdf"</span> <span class="o">);</span> <span class="o">}</span> <span class="k">finally</span> <span class="o">{</span> @@ -170,6 +170,25 @@ PDType0Font.load(), see also in the EmbeddedFonts.java example in the source cod <h2 id="pdf-creation">PDF Creation</h2> +<p><a name="layout"></a></p> + +<h3 id="can-i-use-pdfbox-to-create-complex-layouts">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> +<ul> + <li><a href="http://dhorions.github.io/boxable/">Boxable</a></li> + <li><a href="https://github.com/errt/BoxTable">BoxTable</a></li> + <li><a href="https://github.com/vandeseer/easytable">easytable</a></li> + <li><a href="https://github.com/ralfstuckert/pdfbox-layout">pdfbox-layout</a></li> + <li><a href="https://github.com/GlenKPeterson/PdfLayoutManager">PdfLayoutManager</a></li> + <li><a href="https://github.com/phax/ph-pdf-layout">ph-pdf-layout</a></li> +</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="im-creating-a-pdf-but-my-page-is-empty-why">I’m creating a PDF but my page is empty. Why?</h3> @@ -295,6 +314,7 @@ but these would cost additional time and memory space. You can have a higher qua </li> <li><a href="#pdf-creation">PDF Creation</a> <ul> + <li><a href="#can-i-use-pdfbox-to-create-complex-layouts">Can I use PDFBox to create complex layouts?</a></li> <li><a href="#im-creating-a-pdf-but-my-page-is-empty-why">I’m creating a PDF but my page is empty. Why?</a></li> </ul> </li> diff --git a/content/2.0/migration.html b/content/2.0/migration.html index 7b0d1c4..c1454fc 100644 --- a/content/2.0/migration.html +++ b/content/2.0/migration.html @@ -169,7 +169,7 @@ results when switching to PDFBox 2.0.0.</p> <p>TrueType fonts shall now be loaded using</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDType0Font</span><span class="o">.</span><span class="na">load</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDType0Font</span><span class="o">.</span><span class="na">load</span> </code></pre></div></div> <p>to leverage that.</p> @@ -200,17 +200,17 @@ and so on. The <code class="highlighter-rouge">add</code> method now supports al <p>Prior to PDFBox 2.0 parsing the page content was done using</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDStream</span> <span class="n">contents</span> <span class="o">=</span> <span class="n">page</span><span class="o">.</span><span class="na">getContents</span><span class="o">();</span> -<span class="nc">PDFStreamParser</span> <span class="n">parser</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDFStreamParser</span><span class="o">(</span><span class="n">contents</span><span class="o">.</span><span class="na">getStream</span><span class="o">());</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDStream</span> <span class="n">contents</span> <span class="o">=</span> <span class="n">page</span><span class="o">.</span><span class="na">getContents</span><span class="o">();</span> +<span class="n">PDFStreamParser</span> <span class="n">parser</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDFStreamParser</span><span class="o">(</span><span class="n">contents</span><span class="o">.</span><span class="na">getStream</span><span class="o">());</span> <span class="n">parser</span><span class="o">.</span><span class="na">parse</span><span class="o">();</span> -<span class="nc">List</span><span class="o"><</span><span class="nc">Object</span><span class="o">></span> <span class="n">tokens</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="na">getTokens</span><span class="o">();</span> +<span class="n">List</span><span class="o"><</span><span class="n">Object</span><span class="o">></span> <span class="n">tokens</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="na">getTokens</span><span class="o">();</span> </code></pre></div></div> <p>With PDFBox 2.0 the code is reduced to</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDFStreamParser</span> <span class="n">parser</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDFStreamParser</span><span class="o">(</span><span class="n">page</span><span class="o">);</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDFStreamParser</span> <span class="n">parser</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDFStreamParser</span><span class="o">(</span><span class="n">page</span><span class="o">);</span> <span class="n">parser</span><span class="o">.</span><span class="na">parse</span><span class="o">();</span> -<span class="nc">List</span><span class="o"><</span><span class="nc">Object</span><span class="o">></span> <span class="n">tokens</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="na">getTokens</span><span class="o">();</span> +<span class="n">List</span><span class="o"><</span><span class="n">Object</span><span class="o">></span> <span class="n">tokens</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="na">getTokens</span><span class="o">();</span> </code></pre></div></div> <p>In addition this also works if the page content is defined as an <strong>array of content streams</strong>.</p> @@ -218,7 +218,7 @@ and so on. The <code class="highlighter-rouge">add</code> method now supports al <h3 id="iterating-pages">Iterating Pages</h3> <p>With PDFBox 2.0.0 the prefered way to iterate through the pages of a document is</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for</span><span class="o">(</span><span class="nc">PDPage</span> <span class="n">page</span> <span class="o">:</span> <span class="n">document</span><span class="o">.</span><span class="na">getPages</span><span class="o">())</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for</span><span class="o">(</span><span class="n">PDPage</span> <span class="n">page</span> <span class="o">:</span> <span class="n">document</span><span class="o">.</span><span class="na">getPages</span><span class="o">())</span> <span class="o">{</span> <span class="o">...</span> <span class="o">(</span><span class="k">do</span> <span class="n">something</span><span class="o">)</span> <span class="o">}</span> @@ -227,16 +227,16 @@ and so on. The <code class="highlighter-rouge">add</code> method now supports al <h3 id="pdf-rendering">PDF Rendering</h3> <p>With PDFBox 2.0.0 <code class="highlighter-rouge">PDPage.convertToImage</code> and <code class="highlighter-rouge">PDFImageWriter</code> have been removed. Instead the new <code class="highlighter-rouge">PDFRenderer</code> class shall be used.</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="nc">PDDocument</span><span class="o">.</span><span class="na">load</span><span class="o">(</span><span class="k">new</span> <span class="nc">File</span><span class="o">(</span><span class="n">pdfFilename</span><span class="o">));</span> -<span class="nc">PDFRenderer</span> <span class="n">pdfRenderer</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PDFRenderer</span><span class="o">(</span><span class="n">document</span><span class="o">);</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDDocument</span> <span class="n">document</span> <span class="o">=</span> <span class="n">PDDocument</span><span class="o">.</span><span class="na">load</span><span class="o">(</span><span class="k">new</span> <span class="n">File</span><span class="o">(</span><span class="n">pdfFilename</span><span class="o">));</span> +<span class="n">PDFRenderer</span> <span class="n">pdfRenderer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">PDFRenderer</span><span class="o">(</span><span class="n">document</span><span class="o">);</span> <span class="kt">int</span> <span class="n">pageCounter</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> -<span class="k">for</span> <span class="o">(</span><span class="nc">PDPage</span> <span class="n">page</span> <span class="o">:</span> <span class="n">document</span><span class="o">.</span><span class="na">getPages</span><span class="o">())</span> +<span class="k">for</span> <span class="o">(</span><span class="n">PDPage</span> <span class="n">page</span> <span class="o">:</span> <span class="n">document</span><span class="o">.</span><span class="na">getPages</span><span class="o">())</span> <span class="o">{</span> <span class="c1">// note that the page number parameter is zero based</span> - <span class="nc">BufferedImage</span> <span class="n">bim</span> <span class="o">=</span> <span class="n">pdfRenderer</span><span class="o">.</span><span class="na">renderImageWithDPI</span><span class="o">(</span><span class="n">pageCounter</span><span class="o">,</span> <span class="mi">300</span><span class="o">,</span> <span class="nc">ImageType</span><span class="o">.</span><span class="na">RGB</span><span class="o">);</span> + <span class="n">BufferedImage</span> <span class="n">bim</span> <span class="o">=</span> <span class="n">pdfRenderer</span><span class="o">.</span><span class="na">renderImageWithDPI</span><span class="o">(</span><span class="n">pageCounter</span><span class="o">,</span> <span class="mi">300</span><span class="o">,</span> <span class="n">ImageType</span><span class="o">.</span><span class="na">RGB</span><span class="o">);</span> <span class="c1">// suffix in filename will be used as the file format</span> - <span class="nc">ImageIOUtil</span><span class="o">.</span><span class="na">writeImage</span><span class="o">(</span><span class="n">bim</span><span class="o">,</span> <span class="n">pdfFilename</span> <span class="o">+</span> <span class="s">"-"</span> <span class="o">+</span> <span class="o">(</span><span class="n">pageCounter</span><span class="o">++)</span> <span class="o">+</span> <span class="s">".png"</span><span class="o">,</span> <span class="mi">300</span><span class="o">) [...] + <span class="n">ImageIOUtil</span><span class="o">.</span><span class="na">writeImage</span><span class="o">(</span><span class="n">bim</span><span class="o">,</span> <span class="n">pdfFilename</span> <span class="o">+</span> <span class="s">"-"</span> <span class="o">+</span> <span class="o">(</span><span class="n">pageCounter</span><span class="o">++)</span> <span class="o">+</span> <span class="s">".png"</span><span class="o">,</span> <span class="mi">300</span><span class="o">);</span> <span class="o">}</span> <span class="n">document</span><span class="o">.</span><span class="na">close</span><span class="o">();</span> </code></pre></div></div> @@ -270,15 +270,15 @@ https://bugs.openjdk.java.net/browse/JDK-8041125</p> <p>Users of <code class="highlighter-rouge">PDFPrinter.silentPrint()</code> should now use this code:</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PrinterJob</span> <span class="n">job</span> <span class="o">=</span> <span class="nc">PrinterJob</span><span class="o">.</span><span class="na">getPrinterJob</span><span class="o">();</span> -<span class="n">job</span><span class="o">.</span><span class="na">setPageable</span><span class="o">(</span><span class="k">new</span> <span class="nc">PDFPageable</span><span class="o">(</span><span class="n">document</span><span class="o">));</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PrinterJob</span> <span class="n">job</span> <span class="o">=</span> <span class="n">PrinterJob</span><span class="o">.</span><span class="na">getPrinterJob</span><span class="o">();</span> +<span class="n">job</span><span class="o">.</span><span class="na">setPageable</span><span class="o">(</span><span class="k">new</span> <span class="n">PDFPageable</span><span class="o">(</span><span class="n">document</span><span class="o">));</span> <span class="n">job</span><span class="o">.</span><span class="na">print</span><span class="o">();</span> </code></pre></div></div> <p>While users of <code class="highlighter-rouge">PDFPrinter.print()</code> should now use this code:</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PrinterJob</span> <span class="n">job</span> <span class="o">=</span> <span class="nc">PrinterJob</span><span class="o">.</span><span class="na">getPrinterJob</span><span class="o">();</span> -<span class="n">job</span><span class="o">.</span><span class="na">setPageable</span><span class="o">(</span><span class="k">new</span> <span class="nc">PDFPageable</span><span class="o">(</span><span class="n">document</span><span class="o">));</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PrinterJob</span> <span class="n">job</span> <span class="o">=</span> <span class="n">PrinterJob</span><span class="o">.</span><span class="na">getPrinterJob</span><span class="o">();</span> +<span class="n">job</span><span class="o">.</span><span class="na">setPageable</span><span class="o">(</span><span class="k">new</span> <span class="n">PDFPageable</span><span class="o">(</span><span class="n">document</span><span class="o">));</span> <span class="k">if</span> <span class="o">(</span><span class="n">job</span><span class="o">.</span><span class="na">printDialog</span><span class="o">())</span> <span class="o">{</span> <span class="n">job</span><span class="o">.</span><span class="na">print</span><span class="o">();</span> <span class="o">}</span> @@ -290,18 +290,18 @@ https://bugs.openjdk.java.net/browse/JDK-8041125</p> <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 class="highlighter-rouge">PDFTextStripper</code>and add the following <code class="highlighter-rouge">Operators</code> to the constructor:</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="nc">SetStrokingColorSpace</span><span class="o">());</span> -<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="nc">SetNonStrokingColorSpace</span><span class="o">());</span> -<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="nc">SetStrokingDeviceCMYKColor</span><span class="o">());</span> -<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="nc">SetNonStrokingDeviceCMYKColor</span><span class="o">());</span> -<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="nc">SetNonStrokingDeviceRGBColor</span><span class="o">());</span> -<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="nc">SetStrokingDeviceRGBColor</span><span class="o">());</span> -<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="nc">SetNonStrokingDeviceGrayColor</span><span class="o">());</span> -<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="nc">SetStrokingDeviceGrayColor</span><span class="o">());</span> -<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="nc">SetStrokingColor</span><span class="o">());</span> -<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="nc">SetStrokingColorN</span><span class="o">());</span> -<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="nc">SetNonStrokingColor</span><span class="o">());</span> -<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="nc">SetNonStrokingColorN</span><span class="o">());</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="n">SetStrokingColorSpace</span><span class="o">());</span> +<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="n">SetNonStrokingColorSpace</span><span class="o">());</span> +<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="n">SetStrokingDeviceCMYKColor</span><span class="o">());</span> +<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="n">SetNonStrokingDeviceCMYKColor</span><span class="o">());</span> +<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="n">SetNonStrokingDeviceRGBColor</span><span class="o">());</span> +<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="n">SetStrokingDeviceRGBColor</span><span class="o">());</span> +<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="n">SetNonStrokingDeviceGrayColor</span><span class="o">());</span> +<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="n">SetStrokingDeviceGrayColor</span><span class="o">());</span> +<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="n">SetStrokingColor</span><span class="o">());</span> +<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="n">SetStrokingColorN</span><span class="o">());</span> +<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="n">SetNonStrokingColor</span><span class="o">());</span> +<span class="n">addOperator</span><span class="o">(</span><span class="k">new</span> <span class="n">SetNonStrokingColorN</span><span class="o">());</span> </code></pre></div></div> <h3 id="interactive-forms">Interactive Forms</h3> @@ -311,9 +311,9 @@ tree are now represented by the <code class="highlighter-rouge">PDNonTerminalFie <p>With PDFBox 2.0.0 the prefered way to iterate through the fields is now</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PDAcroForm</span> <span class="n">form</span><span class="o">;</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PDAcroForm</span> <span class="n">form</span><span class="o">;</span> <span class="o">...</span> -<span class="k">for</span> <span class="o">(</span><span class="nc">PDField</span> <span class="n">field</span> <span class="o">:</span> <span class="n">form</span><span class="o">.</span><span class="na">getFieldTree</span><span class="o">())</span> +<span class="k">for</span> <span class="o">(</span><span class="n">PDField</span> <span class="n">field</span> <span class="o">:</span> <span class="n">form</span><span class="o">.</span><span class="na">getFieldTree</span><span class="o">())</span> <span class="o">{</span> <span class="o">...</span> <span class="o">(</span><span class="k">do</span> <span class="n">something</span><span class="o">)</span> <span class="o">}</span> diff --git a/content/codingconventions.html b/content/codingconventions.html index 8e48692..8f44135 100644 --- a/content/codingconventions.html +++ b/content/codingconventions.html @@ -312,18 +312,18 @@ <p>Here’s an example of PDFBox’s formatting style:</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">Foo</span> <span class="kd">extends</span> <span class="nc">Bar</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">Foo</span> <span class="kd">extends</span> <span class="n">Bar</span> <span class="o">{</span> - <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="nc">String</span> <span class="n">args</span><span class="o">[])</span> + <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span> <span class="n">args</span><span class="o">[])</span> <span class="o">{</span> <span class="k">try</span> <span class="o">{</span> <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">args</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span> - <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">args</span><span class="o">[</span><span class="n">i</span><span class="o">]));</span> + <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">Integer</span><span class="o">.</span><span class="na">parseInt</span><span class="o">(</span><span class="n">args</span><span class="o">[</span><span class="n">i</span><span class="o">]));</span> <span class="o">}</span> <span class="o">}</span> - <span class="k">catch</span> <span class="o">(</span><span class="nc">NumberFormatException</span> <span class="n">e</span><span class="o">)</span> + <span class="k">catch</span> <span class="o">(</span><span class="n">NumberFormatException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span> <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span> <span class="o">}</span>