svn commit: r1749165 - /pdfbox/trunk/parent/pom.xml

2016-06-19 Thread lehmi
Author: lehmi
Date: Sun Jun 19 13:17:24 2016
New Revision: 1749165

URL: http://svn.apache.org/viewvc?rev=1749165=rev
Log:
PDFBOX-3386: added a comment on using an outdated plugin version

Modified:
pdfbox/trunk/parent/pom.xml

Modified: pdfbox/trunk/parent/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/parent/pom.xml?rev=1749165=1749164=1749165=diff
==
--- pdfbox/trunk/parent/pom.xml (original)
+++ pdfbox/trunk/parent/pom.xml Sun Jun 19 13:17:24 2016
@@ -232,6 +232,7 @@
 
 org.apache.felix
 maven-bundle-plugin
+
 2.5.4
 
 




svn commit: r1749164 - in /pdfbox/branches/2.0: ./ parent/pom.xml

2016-06-19 Thread lehmi
Author: lehmi
Date: Sun Jun 19 13:11:57 2016
New Revision: 1749164

URL: http://svn.apache.org/viewvc?rev=1749164=rev
Log:
PDFBOX-3386: downgrade maven-bundle-plugin due to jdk6 compatibility

Modified:
pdfbox/branches/2.0/   (props changed)
pdfbox/branches/2.0/parent/pom.xml

Propchange: pdfbox/branches/2.0/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Jun 19 13:11:57 2016
@@ -1,3 +1,3 @@
 /pdfbox/branches/no-awt:1618517-1621410
 /pdfbox/no-awt:1618514-1618516
-/pdfbox/trunk:1736223,1736227,1736615,1737043,1737130,1737599-1737600,1738755,1740160,1742437,1742442,1745595,1745606,1745772,1745774,1745776,1745779,1746032,1746151
+/pdfbox/trunk:1736223,1736227,1736615,1737043,1737130,1737599-1737600,1738755,1740160,1742437,1742442,1745595,1745606,1745772,1745774,1745776,1745779,1746032,1746151,1749162

Modified: pdfbox/branches/2.0/parent/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/parent/pom.xml?rev=1749164=1749163=1749164=diff
==
--- pdfbox/branches/2.0/parent/pom.xml (original)
+++ pdfbox/branches/2.0/parent/pom.xml Sun Jun 19 13:11:57 2016
@@ -240,7 +240,7 @@
 
 org.apache.felix
 maven-bundle-plugin
-3.0.1
+2.5.4
 
 
 




svn commit: r1749162 - /pdfbox/trunk/parent/pom.xml

2016-06-19 Thread lehmi
Author: lehmi
Date: Sun Jun 19 13:09:21 2016
New Revision: 1749162

URL: http://svn.apache.org/viewvc?rev=1749162=rev
Log:
PDFBOX-3386: downgrade maven-bundle-plugin due to jdk6 compatibility

Modified:
pdfbox/trunk/parent/pom.xml

Modified: pdfbox/trunk/parent/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/parent/pom.xml?rev=1749162=1749161=1749162=diff
==
--- pdfbox/trunk/parent/pom.xml (original)
+++ pdfbox/trunk/parent/pom.xml Sun Jun 19 13:09:21 2016
@@ -232,7 +232,7 @@
 
 org.apache.felix
 maven-bundle-plugin
-3.0.1
+2.5.4
 
 
 




svn propchange: r1749156 - svn:log

2016-06-19 Thread tilman
Author: tilman
Revision: 1749156
Modified property: svn:log

Modified: svn:log at Sun Jun 19 12:00:59 2016
--
--- svn:log (original)
+++ svn:log Sun Jun 19 12:00:59 2016
@@ -1 +1 @@
-PDFBOX-3280: remove test due to revert in 1741295
+PDFBOX-3280: remove test due to revert of 1741295



svn commit: r1749158 - /pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocument.java

2016-06-19 Thread tilman
Author: tilman
Date: Sun Jun 19 11:59:13 2016
New Revision: 1749158

URL: http://svn.apache.org/viewvc?rev=1749158=rev
Log:
PDFBOX-3280: remove test due to revert of 1741294

Modified:

pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocument.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocument.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocument.java?rev=1749158=1749157=1749158=diff
==
--- 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocument.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocument.java
 Sun Jun 19 11:59:13 2016
@@ -16,10 +16,6 @@
  */
 package org.apache.pdfbox.pdmodel;
 
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Graphics;
-import java.awt.image.BufferedImage;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -37,11 +33,6 @@ import junit.framework.TestCase;
 import static junit.framework.TestCase.assertNull;
 import static junit.framework.TestCase.assertTrue;
 import static junit.framework.TestCase.fail;
-import org.apache.pdfbox.pdmodel.font.PDType1Font;
-import org.apache.pdfbox.pdmodel.graphics.image.LosslessFactory;
-import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
-import org.apache.pdfbox.rendering.PDFRenderer;
-import org.junit.Assert;
 
 /**
  * Testcase introduced with PDFBOX-1581.
@@ -259,49 +250,4 @@ public class TestPDDocument extends Test
 boolean deleted = f.delete();
 assertTrue("delete good file failed after successful load() and 
close()", deleted);
 }
-
-/**
- * Test whether importPage does a deep copy (if not, the save would fail, 
see PDFBOX-3328)
- *
- * @throws java.io.IOException
- */
-public void testImportPage() throws IOException
-{
-PDDocument doc1 = new PDDocument();
-PDPage page = new PDPage();
-PDPageContentStream pageContentStream = new PDPageContentStream(doc1, 
page);
-BufferedImage bim = new BufferedImage(100, 50, 
BufferedImage.TYPE_INT_RGB);
-Graphics g = bim.getGraphics();
-Font font = new Font("Dialog", Font.PLAIN, 20);   
-g.setFont(font);
-g.drawString("PDFBox", 10, 30);
-g.dispose();
-PDImageXObject img = LosslessFactory.createFromImage(doc1, bim);
-pageContentStream.drawImage(img, 200, 500);
-pageContentStream.setFont(PDType1Font.HELVETICA, 20);
-pageContentStream.beginText();
-pageContentStream.setNonStrokingColor(Color.blue);
-pageContentStream.newLineAtOffset(200, 600);
-pageContentStream.showText("PDFBox");
-pageContentStream.endText();
-pageContentStream.close();
-doc1.addPage(page);
-BufferedImage bim1 = new PDFRenderer(doc1).renderImage(0);
-
-PDDocument doc2 = new PDDocument();
-doc2.importPage(doc1.getPage(0));
-doc1.close();
-BufferedImage bim2 = new PDFRenderer(doc2).renderImage(0);
-doc2.save(new ByteArrayOutputStream());
-doc2.close();
-
-assertEquals(bim1.getWidth(), bim2.getWidth());
-assertEquals(bim1.getHeight(), bim2.getHeight());
-int w = bim1.getWidth();
-int h = bim1.getHeight();
-int[] pixels1 = bim1.getRaster().getPixels(0, 0, w, h, (int[]) null);
-int[] pixels2 = bim2.getRaster().getPixels(0, 0, w, h, (int[]) null);
-assertEquals(w * h * 3, pixels1.length);
-Assert.assertArrayEquals(pixels1, pixels2);
-}
 }




svn commit: r1749157 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java

2016-06-19 Thread tilman
Author: tilman
Date: Sun Jun 19 11:57:27 2016
New Revision: 1749157

URL: http://svn.apache.org/viewvc?rev=1749157=rev
Log:
PDFBOX-3280: revert 1741294 because it resulted in split creating huge files

Modified:

pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java?rev=1749157=1749156=1749157=diff
==
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
 Sun Jun 19 11:57:27 2016
@@ -42,7 +42,6 @@ import org.apache.pdfbox.io.RandomAccess
 import org.apache.pdfbox.io.RandomAccessBufferedFileInputStream;
 import org.apache.pdfbox.io.RandomAccessRead;
 import org.apache.pdfbox.io.ScratchFile;
-import org.apache.pdfbox.multipdf.PDFCloneUtility;
 import org.apache.pdfbox.pdfparser.PDFParser;
 import org.apache.pdfbox.pdfwriter.COSWriter;
 import org.apache.pdfbox.pdmodel.common.COSArrayList;
@@ -505,26 +504,34 @@ public class PDDocument implements Close
  * document and want to copy the contents to this document's scratch file 
then use this method otherwise just use
  * the {@link #addPage} method.
  * 
- * Unlike {@link #addPage}, this method does a deep clone. This will be 
slower and have a larger
- * memory footprint. However the deep clone is important to avoid 
resources getting lost if the
- * source document is closed when the destination document is saved.
- *
- * If your page has annotations, and if these link to pages not in the 
target document, then the
- * target document might become huge. What you need to do is to delete 
page references of such
- * annotations. See
+ * Unlike {@link #addPage}, this method does a deep copy. If your page has 
annotations, and if
+ * these link to pages not in the target document, then the target 
document might become huge.
+ * What you need to do is to delete page references of such annotations. 
See
  * http://stackoverflow.com/a/35477351/535646;>here for how 
to do this.
  *
  * @param page The page to import.
  * @return The page that was imported.
- *
+ * 
  * @throws IOException If there is an error copying the page.
  */
 public PDPage importPage(PDPage page) throws IOException
 {
-PDFCloneUtility cloner = new PDFCloneUtility(this);
-COSBase pageBase = cloner.cloneForNewDocument(page.getCOSObject());
-PDPage importedPage = new PDPage((COSDictionary) pageBase, 
resourceCache);
-addPage(importedPage);
+PDPage importedPage = new PDPage(new 
COSDictionary(page.getCOSObject()), resourceCache);
+InputStream in = null;
+try
+{
+in = page.getContents();
+if (in != null)
+{
+PDStream dest = new PDStream(this, in, COSName.FLATE_DECODE);
+importedPage.setContents(dest);
+}
+addPage(importedPage);
+}
+catch (IOException e)
+{
+IOUtils.closeQuietly(in);
+}
 return importedPage;
 }
 




svn commit: r1749156 - /pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocument.java

2016-06-19 Thread tilman
Author: tilman
Date: Sun Jun 19 11:55:23 2016
New Revision: 1749156

URL: http://svn.apache.org/viewvc?rev=1749156=rev
Log:
PDFBOX-3280: remove test due to revert in 1741295

Modified:

pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocument.java

Modified: 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocument.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocument.java?rev=1749156=1749155=1749156=diff
==
--- 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocument.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocument.java 
Sun Jun 19 11:55:23 2016
@@ -16,10 +16,6 @@
  */
 package org.apache.pdfbox.pdmodel;
 
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Graphics;
-import java.awt.image.BufferedImage;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -37,11 +33,6 @@ import junit.framework.TestCase;
 import static junit.framework.TestCase.assertNull;
 import static junit.framework.TestCase.assertTrue;
 import static junit.framework.TestCase.fail;
-import org.apache.pdfbox.pdmodel.font.PDType1Font;
-import org.apache.pdfbox.pdmodel.graphics.image.LosslessFactory;
-import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
-import org.apache.pdfbox.rendering.PDFRenderer;
-import org.junit.Assert;
 
 /**
  * Testcase introduced with PDFBOX-1581.
@@ -259,49 +250,4 @@ public class TestPDDocument extends Test
 boolean deleted = f.delete();
 assertTrue("delete good file failed after successful load() and 
close()", deleted);
 }
-
-/**
- * Test whether importPage does a deep copy (if not, the save would fail, 
see PDFBOX-3328)
- *
- * @throws java.io.IOException
- */
-public void testImportPage() throws IOException
-{
-PDDocument doc1 = new PDDocument();
-PDPage page = new PDPage();
-PDPageContentStream pageContentStream = new PDPageContentStream(doc1, 
page);
-BufferedImage bim = new BufferedImage(100, 50, 
BufferedImage.TYPE_INT_RGB);
-Graphics g = bim.getGraphics();
-Font font = new Font("Dialog", Font.PLAIN, 20);   
-g.setFont(font);
-g.drawString("PDFBox", 10, 30);
-g.dispose();
-PDImageXObject img = LosslessFactory.createFromImage(doc1, bim);
-pageContentStream.drawImage(img, 200, 500);
-pageContentStream.setFont(PDType1Font.HELVETICA, 20);
-pageContentStream.beginText();
-pageContentStream.setNonStrokingColor(Color.blue);
-pageContentStream.newLineAtOffset(200, 600);
-pageContentStream.showText("PDFBox");
-pageContentStream.endText();
-pageContentStream.close();
-doc1.addPage(page);
-BufferedImage bim1 = new PDFRenderer(doc1).renderImage(0);
-
-PDDocument doc2 = new PDDocument();
-doc2.importPage(doc1.getPage(0));
-doc1.close();
-BufferedImage bim2 = new PDFRenderer(doc2).renderImage(0);
-doc2.save(new ByteArrayOutputStream());
-doc2.close();
-
-assertEquals(bim1.getWidth(), bim2.getWidth());
-assertEquals(bim1.getHeight(), bim2.getHeight());
-int w = bim1.getWidth();
-int h = bim1.getHeight();
-int[] pixels1 = bim1.getRaster().getPixels(0, 0, w, h, (int[]) null);
-int[] pixels2 = bim2.getRaster().getPixels(0, 0, w, h, (int[]) null);
-assertEquals(w * h * 3, pixels1.length);
-Assert.assertArrayEquals(pixels1, pixels2);
-}
 }




svn commit: r1749155 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java

2016-06-19 Thread tilman
Author: tilman
Date: Sun Jun 19 11:53:46 2016
New Revision: 1749155

URL: http://svn.apache.org/viewvc?rev=1749155=rev
Log:
PDFBOX-3280: revert 1741295 because it resulted in split creating huge files

Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java?rev=1749155=1749154=1749155=diff
==
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java 
(original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java 
Sun Jun 19 11:53:46 2016
@@ -42,11 +42,11 @@ import org.apache.pdfbox.io.RandomAccess
 import org.apache.pdfbox.io.RandomAccessBufferedFileInputStream;
 import org.apache.pdfbox.io.RandomAccessRead;
 import org.apache.pdfbox.io.ScratchFile;
-import org.apache.pdfbox.multipdf.PDFCloneUtility;
 import org.apache.pdfbox.pdfparser.PDFParser;
 import org.apache.pdfbox.pdfwriter.COSWriter;
 import org.apache.pdfbox.pdmodel.common.COSArrayList;
 import org.apache.pdfbox.pdmodel.common.PDRectangle;
+import org.apache.pdfbox.pdmodel.common.PDStream;
 import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
 import org.apache.pdfbox.pdmodel.encryption.PDEncryption;
 import org.apache.pdfbox.pdmodel.encryption.ProtectionPolicy;
@@ -504,26 +504,34 @@ public class PDDocument implements Close
  * document and want to copy the contents to this document's scratch file 
then use this method otherwise just use
  * the {@link #addPage} method.
  * 
- * Unlike {@link #addPage}, this method does a deep clone. This will be 
slower and have a larger
- * memory footprint. However the deep clone is important to avoid 
resources getting lost if the
- * source document is closed when the destination document is saved.
- *
- * If your page has annotations, and if these link to pages not in the 
target document, then the
- * target document might become huge. What you need to do is to delete 
page references of such
- * annotations. See
+ * Unlike {@link #addPage}, this method does a deep copy. If your page has 
annotations, and if
+ * these link to pages not in the target document, then the target 
document might become huge.
+ * What you need to do is to delete page references of such annotations. 
See
  * http://stackoverflow.com/a/35477351/535646;>here for how 
to do this.
  *
  * @param page The page to import.
  * @return The page that was imported.
- *
+ * 
  * @throws IOException If there is an error copying the page.
  */
 public PDPage importPage(PDPage page) throws IOException
 {
-PDFCloneUtility cloner = new PDFCloneUtility(this);
-COSBase pageBase = cloner.cloneForNewDocument(page.getCOSObject());
-PDPage importedPage = new PDPage((COSDictionary) pageBase, 
resourceCache);
-addPage(importedPage);
+PDPage importedPage = new PDPage(new 
COSDictionary(page.getCOSObject()), resourceCache);
+InputStream in = null;
+try
+{
+in = page.getContents();
+if (in != null)
+{
+PDStream dest = new PDStream(this, in, COSName.FLATE_DECODE);
+importedPage.setContents(dest);
+}
+addPage(importedPage);
+}
+catch (IOException e)
+{
+IOUtils.closeQuietly(in);
+}
 return importedPage;
 }
 




svn commit: r1749152 - /pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java

2016-06-19 Thread tilman
Author: tilman
Date: Sun Jun 19 11:27:38 2016
New Revision: 1749152

URL: http://svn.apache.org/viewvc?rev=1749152=rev
Log:
PDFBOX-3337: added test code from Philip Helger

Modified:

pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java?rev=1749152=1749151=1749152=diff
==
--- 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
 Sun Jun 19 11:27:38 2016
@@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import junit.framework.TestCase;
+import org.apache.fontbox.ttf.TTFParser;
+import org.apache.fontbox.ttf.TrueTypeFont;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDPage;
 import org.apache.pdfbox.pdmodel.PDPageContentStream;
@@ -68,6 +70,7 @@ public class PDFontTest extends TestCase
 {
 InputStream ttfStream = 
PDFontTest.class.getClassLoader().getResourceAsStream(
 "org/apache/pdfbox/ttf/LiberationSans-Regular.ttf");
+final TrueTypeFont ttf = new TTFParser ().parse (ttfStream);
 
 for (int i = 0; i < 2; ++i)
 {
@@ -77,7 +80,7 @@ public class PDFontTest extends TestCase
 doc.addPage(page);
 
 PDPageContentStream cs = new PDPageContentStream(doc, page);
-PDFont font = PDType0Font.load(doc, ttfStream);
+PDFont font = PDType0Font.load(doc, ttf, true);
 cs.setFont(font, 10);
 cs.beginText();
 cs.showText("PDFBOX");




svn commit: r1749146 - /pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java

2016-06-19 Thread tilman
Author: tilman
Date: Sun Jun 19 10:21:07 2016
New Revision: 1749146

URL: http://svn.apache.org/viewvc?rev=1749146=rev
Log:
PDFBOX-3337: added test code from Philip Helger

Modified:

pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java?rev=1749146=1749145=1749146=diff
==
--- 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
 Sun Jun 19 10:21:07 2016
@@ -19,8 +19,14 @@
 
 package org.apache.pdfbox.pdmodel.font;
 
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import junit.framework.TestCase;
 import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.pdmodel.PDPage;
+import org.apache.pdfbox.pdmodel.PDPageContentStream;
+import org.apache.pdfbox.pdmodel.common.PDRectangle;
 import org.apache.pdfbox.rendering.PDFRenderer;
 
 /**
@@ -51,4 +57,34 @@ public class PDFontTest extends TestCase
 }
 }
 }
+
+/**
+ * PDFBOX-3337: Test ability to reuse a TrueTypeFont for several PDFs to 
avoid parsing it over
+ * and over again.
+ *
+ * @throws java.io.IOException
+ */
+public void testPDFBox3337() throws IOException
+{
+InputStream ttfStream = 
PDFontTest.class.getClassLoader().getResourceAsStream(
+"org/apache/pdfbox/ttf/LiberationSans-Regular.ttf");
+
+for (int i = 0; i < 2; ++i)
+{
+PDDocument doc = new PDDocument();
+
+final PDPage page = new PDPage(PDRectangle.A4);
+doc.addPage(page);
+
+PDPageContentStream cs = new PDPageContentStream(doc, page);
+PDFont font = PDType0Font.load(doc, ttfStream);
+cs.setFont(font, 10);
+cs.beginText();
+cs.showText("PDFBOX");
+cs.endText();
+cs.close();
+doc.save(new ByteArrayOutputStream());
+doc.close();
+}
+}
 }




svn commit: r1749145 - /pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java

2016-06-19 Thread tilman
Author: tilman
Date: Sun Jun 19 10:20:42 2016
New Revision: 1749145

URL: http://svn.apache.org/viewvc?rev=1749145=rev
Log:
PDFBOX-3337: added test code from Philip Helger

Modified:

pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java

Modified: 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java?rev=1749145=1749144=1749145=diff
==
--- 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
 Sun Jun 19 10:20:42 2016
@@ -19,8 +19,16 @@
 
 package org.apache.pdfbox.pdmodel.font;
 
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import junit.framework.TestCase;
+import org.apache.fontbox.ttf.TTFParser;
+import org.apache.fontbox.ttf.TrueTypeFont;
 import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.pdmodel.PDPage;
+import org.apache.pdfbox.pdmodel.PDPageContentStream;
+import org.apache.pdfbox.pdmodel.common.PDRectangle;
 import org.apache.pdfbox.rendering.PDFRenderer;
 
 /**
@@ -51,4 +59,35 @@ public class PDFontTest extends TestCase
 }
 }
 }
+
+/**
+ * PDFBOX-3337: Test ability to reuse a TrueTypeFont for several PDFs to 
avoid parsing it over
+ * and over again.
+ *
+ * @throws java.io.IOException
+ */
+public void testPDFBox3337() throws IOException
+{
+InputStream ttfStream = 
PDFontTest.class.getClassLoader().getResourceAsStream(
+"org/apache/pdfbox/ttf/LiberationSans-Regular.ttf");
+final TrueTypeFont ttf = new TTFParser ().parse (ttfStream);
+
+for (int i = 0; i < 2; ++i)
+{
+PDDocument doc = new PDDocument();
+
+final PDPage page = new PDPage(PDRectangle.A4);
+doc.addPage(page);
+
+PDPageContentStream cs = new PDPageContentStream(doc, page);
+PDFont font = PDType0Font.load(doc, ttf, true);
+cs.setFont(font, 10);
+cs.beginText();
+cs.showText("PDFBOX");
+cs.endText();
+cs.close();
+doc.save(new ByteArrayOutputStream());
+doc.close();
+}
+}
 }




svn commit: r1749143 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java

2016-06-19 Thread tilman
Author: tilman
Date: Sun Jun 19 10:04:57 2016
New Revision: 1749143

URL: http://svn.apache.org/viewvc?rev=1749143=rev
Log:
PDFBOX-3382: reorder modifier according to JLS suggestions

Modified:

pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java?rev=1749143=1749142=1749143=diff
==
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
 Sun Jun 19 10:04:57 2016
@@ -107,7 +107,7 @@ public class PDType1Font extends PDSimpl
 /**
  * to improve encoding speed.
  */
-final private Map  codeToBytesMap = new 
HashMap();
+private final Map  codeToBytesMap = new 
HashMap();
 
 /**
  * Creates a Type 1 standard 14 font for embedding.




svn commit: r1749142 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java

2016-06-19 Thread tilman
Author: tilman
Date: Sun Jun 19 10:04:45 2016
New Revision: 1749142

URL: http://svn.apache.org/viewvc?rev=1749142=rev
Log:
PDFBOX-3382: reorder modifier according to JLS suggestions

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java?rev=1749142=1749141=1749142=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
 Sun Jun 19 10:04:45 2016
@@ -107,7 +107,7 @@ public class PDType1Font extends PDSimpl
 /**
  * to improve encoding speed.
  */
-final private Map  codeToBytesMap = new 
HashMap();
+private final Map  codeToBytesMap = new 
HashMap();
 
 /**
  * Creates a Type 1 standard 14 font for embedding.




svn propchange: r1747966 - svn:log

2016-06-19 Thread tilman
Author: tilman
Revision: 1747966
Modified property: svn:log

Modified: svn:log at Sun Jun 19 09:40:20 2016
--
--- svn:log (original)
+++ svn:log Sun Jun 19 09:40:20 2016
@@ -1 +1 @@
-PDFBOX-3381, PDFBOX-3359: copy from trunk
+PDFBOX-3359: defactor and refactor code to separate clearing for both cases, 
i.e. render to graphics and render to image



svn commit: r1749136 - /pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java

2016-06-19 Thread jahewson
Author: jahewson
Date: Sun Jun 19 07:31:56 2016
New Revision: 1749136

URL: http://svn.apache.org/viewvc?rev=1749136=rev
Log:
PDFBOX-3337: Don't clear data when closing an in-memory TTF stream

Modified:

pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java

Modified: 
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java?rev=1749136=1749135=1749136=diff
==
--- 
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java
 (original)
+++ 
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java
 Sun Jun 19 07:31:56 2016
@@ -146,7 +146,6 @@ class MemoryTTFDataStream extends TTFDat
  */
 public void close() throws IOException
 {
-data = null;
 }
 
 /**




svn commit: r1749135 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java

2016-06-19 Thread jahewson
Author: jahewson
Date: Sun Jun 19 07:27:11 2016
New Revision: 1749135

URL: http://svn.apache.org/viewvc?rev=1749135=rev
Log:
PDFBOX-3337: Don't clear data when closing an in-memory TTF stream

Modified:

pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java

Modified: 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java?rev=1749135=1749134=1749135=diff
==
--- 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java
 (original)
+++ 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java
 Sun Jun 19 07:27:11 2016
@@ -146,7 +146,6 @@ class MemoryTTFDataStream extends TTFDat
  */
 public void close() throws IOException
 {
-data = null;
 }
 
 /**