svn commit: r1691972 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java

2015-07-20 Thread msahyoun
Author: msahyoun
Date: Mon Jul 20 16:17:53 2015
New Revision: 1691972

URL: http://svn.apache.org/r1691972
Log:
PDFBOX-2877: adjust vertical text alignment

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java?rev=1691972r1=1691971r2=1691972view=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
 Mon Jul 20 16:17:53 2015
@@ -231,21 +231,32 @@ class AppearanceGeneratorHelper
 // calculate the y-position of the baseline
 float y;
 
-// calculate the Y fontScale at fontSize
-float fontScaleY = font.getFontMatrix().getScaleY() * fontSize;
-
+// calculate font metrics at font size
+float fontScaleY = fontSize / 1000f;
+float fontBoundingBoxAtSize = font.getBoundingBox().getHeight() * 
fontScaleY;
+float fontCapAtSize = font.getFontDescriptor().getCapHeight() * 
fontScaleY;
+float fontDescentAtSize = font.getFontDescriptor().getDescent() * 
fontScaleY;
 
 if (field instanceof PDTextField  ((PDTextField) 
field).isMultiline())
 {
-float height = font.getBoundingBox().getHeight() * fontScaleY;
-y = contentRect.getUpperRightY() - height;
+y = contentRect.getUpperRightY() - fontBoundingBoxAtSize;
 }
 else
 {
-float capHeigth = font.getFontDescriptor().getCapHeight() * 
fontScaleY;
-y = Math.max((bbox.getHeight() - capHeigth) / 2f, 0);
-}
+// calculate the position based on the content rectangle
+y = clipRect.getLowerLeftY() + (clipRect.getHeight() - 
fontCapAtSize) / 2;
+
+// check to ensure that ascents and descents fit
+if (y - clipRect.getLowerLeftY()  -fontDescentAtSize) {
 
+float fontDescentBased = -fontDescentAtSize + 
contentRect.getLowerLeftY();
+float fontCapBased = contentRect.getHeight() - 
contentRect.getLowerLeftY() - fontCapAtSize;
+
+y = Math.min(fontDescentBased, Math.max(y, fontCapBased));
+}
+
+}
+
 // show the text
 float x = contentRect.getLowerLeftX();
 




svn commit: r1691971 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/MemoryUsageSetting.java

2015-07-20 Thread tilman
Author: tilman
Date: Mon Jul 20 16:11:23 2015
New Revision: 1691971

URL: http://svn.apache.org/r1691971
Log:
PDFBOX-2852: make class final that has only private constructors

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/MemoryUsageSetting.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/MemoryUsageSetting.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/MemoryUsageSetting.java?rev=1691971r1=1691970r2=1691971view=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/MemoryUsageSetting.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/MemoryUsageSetting.java 
Mon Jul 20 16:11:23 2015
@@ -22,7 +22,7 @@ import java.io.File;
  * Controls how memory/temporary files are used for
  * buffering streams etc.
  */
-public class MemoryUsageSetting
+public final class MemoryUsageSetting
 {
 private final boolean useMainMemory;
 private final boolean useTempFile;




svn commit: r1692027 - in /pdfbox/trunk: examples/src/main/java/org/apache/pdfbox/examples/util/ pdfbox/src/main/java/org/apache/pdfbox/contentstream/ pdfbox/src/main/java/org/apache/pdfbox/io/ pdfbox

2015-07-20 Thread jahewson
Author: jahewson
Date: Mon Jul 20 21:47:41 2015
New Revision: 1692027

URL: http://svn.apache.org/r1692027
Log:
PDFBOX-2894: Remove COSStreamArray / SequenceRandomAccessRead

Removed:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java

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

pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/util/RemoveAllText.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDContentStream.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDFStreamEngine.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/LayerUtility.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFStreamParser.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageContentStream.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java

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

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/form/PDFormXObject.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/pattern/PDTilingPattern.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/text/PDFTextStripper.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/text/PDFTextStripperByArea.java

pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestSymmetricKeyEncryption.java

pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/TestRandomAccessBuffer.java

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

pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/content/PreflightContentStream.java

pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/graphic/ICCProfileWrapper.java

pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/CatalogValidationProcess.java

pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/MetadataValidationProcess.java

Modified: 
pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/util/RemoveAllText.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/util/RemoveAllText.java?rev=1692027r1=1692026r2=1692027view=diff
==
--- 
pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/util/RemoveAllText.java
 (original)
+++ 
pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/util/RemoveAllText.java
 Mon Jul 20 21:47:41 2015
@@ -70,7 +70,7 @@ public class RemoveAllText
 }
 for( PDPage page : document.getPages() )
 {
-PDFStreamParser parser = new 
PDFStreamParser(page.getStream());
+PDFStreamParser parser = new PDFStreamParser(page);
 parser.parse();
 ListObject tokens = parser.getTokens();
 ListObject newTokens = new ArrayListObject();

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDContentStream.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDContentStream.java?rev=1692027r1=1692026r2=1692027view=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDContentStream.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDContentStream.java
 Mon Jul 20 21:47:41 2015
@@ -17,7 +17,8 @@
 
 package org.apache.pdfbox.contentstream;
 
-import org.apache.pdfbox.cos.COSStream;
+import java.io.IOException;
+import java.io.InputStream;
 import org.apache.pdfbox.pdmodel.PDResources;
 import org.apache.pdfbox.pdmodel.common.PDRectangle;
 import org.apache.pdfbox.util.Matrix;
@@ -30,9 +31,12 @@ import org.apache.pdfbox.util.Matrix;
 public interface PDContentStream
 {
 /**
- * Returns the underlying COS stream.
+ * Returns this stream's content, if any.
+ * 
+ * @return An InputStream or null.
+ * @throws IOException If the stream could not be read
  */
-COSStream getContentStream();
+InputStream getContents() throws IOException;
 
 /**
  * Returns this stream's resources, if any.

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDFStreamEngine.java
URL: 

svn commit: r1692002 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java

2015-07-20 Thread msahyoun
Author: msahyoun
Date: Mon Jul 20 19:16:30 2015
New Revision: 1692002

URL: http://svn.apache.org/r1692002
Log:
PDFBOX-2877: special handling if the font caps are taller than the fields 
clipping area 

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java?rev=1692002r1=1692001r2=1692002view=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
 Mon Jul 20 19:16:30 2015
@@ -243,16 +243,24 @@ class AppearanceGeneratorHelper
 }
 else
 {
-// calculate the position based on the content rectangle
-y = clipRect.getLowerLeftY() + (clipRect.getHeight() - 
fontCapAtSize) / 2;
-
-// check to ensure that ascents and descents fit
-if (y - clipRect.getLowerLeftY()  -fontDescentAtSize) {
-
-float fontDescentBased = -fontDescentAtSize + 
contentRect.getLowerLeftY();
-float fontCapBased = contentRect.getHeight() - 
contentRect.getLowerLeftY() - fontCapAtSize;
-
-y = Math.min(fontDescentBased, Math.max(y, fontCapBased));
+// Adobe shows the text 'shiftet up' in case the caps don't fit 
into the clipping area
+if (fontCapAtSize  clipRect.getHeight())
+{
+y = clipRect.getLowerLeftY() + -fontDescentAtSize;
+}
+else
+{
+// calculate the position based on the content rectangle
+y = clipRect.getLowerLeftY() + (clipRect.getHeight() - 
fontCapAtSize) / 2;
+
+// check to ensure that ascents and descents fit
+if (y - clipRect.getLowerLeftY()  -fontDescentAtSize) {
+
+float fontDescentBased = -fontDescentAtSize + 
contentRect.getLowerLeftY();
+float fontCapBased = contentRect.getHeight() - 
contentRect.getLowerLeftY() - fontCapAtSize;
+
+y = Math.min(fontDescentBased, Math.max(y, fontCapBased));
+}
 }
 
 }




svn commit: r1692004 - in /pdfbox/branches/1.8: ant/pom.xml examples/pom.xml fontbox/pom.xml jempbox/pom.xml lucene/pom.xml parent/pom.xml pdfbox/pom.xml preflight-app/pom.xml preflight/pom.xml xmpbox

2015-07-20 Thread lehmi
Author: lehmi
Date: Mon Jul 20 19:20:42 2015
New Revision: 1692004

URL: http://svn.apache.org/r1692004
Log:
PDFBOX-2891: move the animal sniffer configuration to the parent pom

Modified:
pdfbox/branches/1.8/ant/pom.xml
pdfbox/branches/1.8/examples/pom.xml
pdfbox/branches/1.8/fontbox/pom.xml
pdfbox/branches/1.8/jempbox/pom.xml
pdfbox/branches/1.8/lucene/pom.xml
pdfbox/branches/1.8/parent/pom.xml
pdfbox/branches/1.8/pdfbox/pom.xml
pdfbox/branches/1.8/preflight-app/pom.xml
pdfbox/branches/1.8/preflight/pom.xml
pdfbox/branches/1.8/xmpbox/pom.xml

Modified: pdfbox/branches/1.8/ant/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/1.8/ant/pom.xml?rev=1692004r1=1692003r2=1692004view=diff
==
--- pdfbox/branches/1.8/ant/pom.xml (original)
+++ pdfbox/branches/1.8/ant/pom.xml Mon Jul 20 19:20:42 2015
@@ -43,29 +43,4 @@
 /dependency
   /dependencies
 
-  build
-plugins
-   plugin
-   groupIdorg.codehaus.mojo/groupId
-   artifactIdanimal-sniffer-maven-plugin/artifactId
-   configuration
- signature
-   groupIdorg.codehaus.mojo.signature/groupId
-   artifactIdjava15/artifactId
-   version1.0/version
- /signature
-   /configuration
-   executions
- execution
-idcheck-java-compatibility/id
-phasetest/phase
-goals
-  goalcheck/goal
-/goals
-  /execution
-/executions
-   /plugin
-/plugins
-  /build
-
 /project

Modified: pdfbox/branches/1.8/examples/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/1.8/examples/pom.xml?rev=1692004r1=1692003r2=1692004view=diff
==
--- pdfbox/branches/1.8/examples/pom.xml (original)
+++ pdfbox/branches/1.8/examples/pom.xml Mon Jul 20 19:20:42 2015
@@ -74,28 +74,6 @@
 filteringtrue/filtering
   /resource
 /resources
-plugins
-   plugin
-   groupIdorg.codehaus.mojo/groupId
-   artifactIdanimal-sniffer-maven-plugin/artifactId
-   configuration
- signature
-   groupIdorg.codehaus.mojo.signature/groupId
-   artifactIdjava15/artifactId
-   version1.0/version
- /signature
-   /configuration
-   executions
- execution
-idcheck-java-compatibility/id
-phasetest/phase
-goals
-  goalcheck/goal
-/goals
-  /execution
-/executions
-   /plugin
-/plugins
   /build
 
 /project

Modified: pdfbox/branches/1.8/fontbox/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/1.8/fontbox/pom.xml?rev=1692004r1=1692003r2=1692004view=diff
==
--- pdfbox/branches/1.8/fontbox/pom.xml (original)
+++ pdfbox/branches/1.8/fontbox/pom.xml Mon Jul 20 19:20:42 2015
@@ -58,26 +58,6 @@
 artifactIdmaven-bundle-plugin/artifactId
 extensionstrue/extensions
   /plugin
-  plugin
-  groupIdorg.codehaus.mojo/groupId
-  artifactIdanimal-sniffer-maven-plugin/artifactId
-  configuration
-signature
-  groupIdorg.codehaus.mojo.signature/groupId
-  artifactIdjava15/artifactId
-  version1.0/version
-/signature
-  /configuration
-  executions
-execution
-   idcheck-java-compatibility/id
-   phasetest/phase
-   goals
- goalcheck/goal
-   /goals
- /execution
-   /executions
-  /plugin
 /plugins
   /build
 

Modified: pdfbox/branches/1.8/jempbox/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/1.8/jempbox/pom.xml?rev=1692004r1=1692003r2=1692004view=diff
==
--- pdfbox/branches/1.8/jempbox/pom.xml (original)
+++ pdfbox/branches/1.8/jempbox/pom.xml Mon Jul 20 19:20:42 2015
@@ -51,26 +51,6 @@
 artifactIdmaven-bundle-plugin/artifactId
 extensionstrue/extensions
   /plugin
-  plugin
-  groupIdorg.codehaus.mojo/groupId
-  artifactIdanimal-sniffer-maven-plugin/artifactId
-  configuration
-signature
-  groupIdorg.codehaus.mojo.signature/groupId
-  artifactIdjava15/artifactId
-  version1.0/version
-/signature
-  /configuration
-  executions
-execution
-   idcheck-java-compatibility/id
-   phasetest/phase
-   goals
- goalcheck/goal
-   /goals
- /execution
-   

svn commit: r1692007 - in /pdfbox/trunk: examples/pom.xml fontbox/pom.xml parent/pom.xml pdfbox/pom.xml preflight/pom.xml tools/pom.xml xmpbox/pom.xml

2015-07-20 Thread lehmi
Author: lehmi
Date: Mon Jul 20 19:43:00 2015
New Revision: 1692007

URL: http://svn.apache.org/r1692007
Log:
PDFBOX-2870: move animal sniffer configuration to the parent pom

Modified:
pdfbox/trunk/examples/pom.xml
pdfbox/trunk/fontbox/pom.xml
pdfbox/trunk/parent/pom.xml
pdfbox/trunk/pdfbox/pom.xml
pdfbox/trunk/preflight/pom.xml
pdfbox/trunk/tools/pom.xml
pdfbox/trunk/xmpbox/pom.xml

Modified: pdfbox/trunk/examples/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/examples/pom.xml?rev=1692007r1=1692006r2=1692007view=diff
==
--- pdfbox/trunk/examples/pom.xml (original)
+++ pdfbox/trunk/examples/pom.xml Mon Jul 20 19:43:00 2015
@@ -101,27 +101,6 @@
 /resources
 plugins
   plugin
-groupIdorg.codehaus.mojo/groupId
-artifactIdanimal-sniffer-maven-plugin/artifactId
-version1.13/version
-executions
-   execution
-  idcheck-java-version/id
-  phasetest/phase
-  goals
-goalcheck/goal
-  /goals
-  configuration
-signature
-  groupIdorg.codehaus.mojo.signature/groupId
-  artifactIdjava16/artifactId
-  version1.0/version
-/signature
-  /configuration
-   /execution
-/executions
-  /plugin
-  plugin
 groupIdorg.apache.rat/groupId
 artifactIdapache-rat-plugin/artifactId
 configuration

Modified: pdfbox/trunk/fontbox/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/pom.xml?rev=1692007r1=1692006r2=1692007view=diff
==
--- pdfbox/trunk/fontbox/pom.xml (original)
+++ pdfbox/trunk/fontbox/pom.xml Mon Jul 20 19:43:00 2015
@@ -56,27 +56,6 @@
 extensionstrue/extensions
   /plugin
   plugin
-groupIdorg.codehaus.mojo/groupId
-artifactIdanimal-sniffer-maven-plugin/artifactId
-version1.13/version
-executions
-   execution
-  idcheck-java-version/id
-  phasetest/phase
-  goals
-goalcheck/goal
-  /goals
-  configuration
-signature
-  groupIdorg.codehaus.mojo.signature/groupId
-  artifactIdjava16/artifactId
-  version1.0/version
-/signature
-  /configuration
-   /execution
-/executions
-  /plugin
-  plugin
 groupIdorg.apache.rat/groupId
 artifactIdapache-rat-plugin/artifactId
 configuration

Modified: pdfbox/trunk/parent/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/parent/pom.xml?rev=1692007r1=1692006r2=1692007view=diff
==
--- pdfbox/trunk/parent/pom.xml (original)
+++ pdfbox/trunk/parent/pom.xml Mon Jul 20 19:43:00 2015
@@ -197,6 +197,27 @@
   /execution
/executions
 /plugin
+   plugin
+   groupIdorg.codehaus.mojo/groupId
+   artifactIdanimal-sniffer-maven-plugin/artifactId
+   version1.13/version
+   executions
+  execution
+ idcheck-java-version/id
+ phasetest/phase
+ goals
+   goalcheck/goal
+ /goals
+ configuration
+   signature
+ groupIdorg.codehaus.mojo.signature/groupId
+ artifactIdjava16/artifactId
+ version1.0/version
+   /signature
+ /configuration
+  /execution
+   /executions
+   /plugin
 /plugins
 pluginManagement
 plugins

Modified: pdfbox/trunk/pdfbox/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/pom.xml?rev=1692007r1=1692006r2=1692007view=diff
==
--- pdfbox/trunk/pdfbox/pom.xml (original)
+++ pdfbox/trunk/pdfbox/pom.xml Mon Jul 20 19:43:00 2015
@@ -122,27 +122,6 @@
 /configuration
 /plugin
 plugin
-   groupIdorg.codehaus.mojo/groupId
-   artifactIdanimal-sniffer-maven-plugin/artifactId
-   version1.13/version
-   executions
-  execution
- idcheck-java-version/id
- phasetest/phase
- goals
-   goalcheck/goal
-

svn commit: r1692011 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java

2015-07-20 Thread msahyoun
Author: msahyoun
Date: Mon Jul 20 19:49:06 2015
New Revision: 1692011

URL: http://svn.apache.org/r1692011
Log:
PDFBOX-2877: small code cleanup

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java?rev=1692011r1=1692010r2=1692011view=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
 Mon Jul 20 19:49:06 2015
@@ -58,6 +58,12 @@ class AppearanceGeneratorHelper
  * Regardless of other settings in an existing appearance stream Adobe 
will always use this value.
  */
 private static final int[] HIGHLIGHT_COLOR = {153,193,215};
+ 
+/**
+ * The scaling factor for font units to PDF units
+ */
+private static final int FONTSCALE = 1000;
+
 
 /**
  * Constructs a COSAppearance from the given field.
@@ -145,7 +151,7 @@ class AppearanceGeneratorHelper
 ContentStreamWriter writer = new ContentStreamWriter(output);
 
 ListObject tokens = tokenize(appearanceStream);
-int bmcIndex = tokens.indexOf(Operator.getOperator(BMC));
+int bmcIndex = tokens.indexOf(BMC);
 if (bmcIndex == -1)
 {
 // append to existing stream
@@ -161,7 +167,7 @@ class AppearanceGeneratorHelper
 // insert field contents
 insertGeneratedAppearance(widget, appearanceStream, output);
 
-int emcIndex = tokens.indexOf(Operator.getOperator(EMC));
+int emcIndex = tokens.indexOf(EMC);
 if (emcIndex == -1)
 {
 // append EMC
@@ -232,7 +238,7 @@ class AppearanceGeneratorHelper
 float y;
 
 // calculate font metrics at font size
-float fontScaleY = fontSize / 1000f;
+float fontScaleY = fontSize / FONTSCALE;
 float fontBoundingBoxAtSize = font.getBoundingBox().getHeight() * 
fontScaleY;
 float fontCapAtSize = font.getFontDescriptor().getCapHeight() * 
fontScaleY;
 float fontDescentAtSize = font.getFontDescriptor().getDescent() * 
fontScaleY;
@@ -262,7 +268,6 @@ class AppearanceGeneratorHelper
 y = Math.min(fontDescentBased, Math.max(y, fontCapBased));
 }
 }
-
 }
 
 // show the text
@@ -352,7 +357,7 @@ class AppearanceGeneratorHelper
 PDRectangle paddingEdge = applyPadding(appearanceStream.getBBox(), 1);
 
 float combWidth = appearanceStream.getBBox().getWidth() / maxLen;
-float ascentAtFontSize = font.getFontDescriptor().getAscent() / 1000 * 
fontSize;
+float ascentAtFontSize = font.getFontDescriptor().getAscent() / 
FONTSCALE * fontSize;
 float baselineOffset = paddingEdge.getLowerLeftY() +  
 (appearanceStream.getBBox().getHeight() - ascentAtFontSize)/2;
 
@@ -366,7 +371,7 @@ class AppearanceGeneratorHelper
 for (int i = 0; i  numChars; i++) 
 {
 combString = value.substring(i, i+1);
-currCharWidth = font.getStringWidth(combString) / 1000 * 
fontSize/2;
+currCharWidth = font.getStringWidth(combString) / FONTSCALE * 
fontSize/2;
 
 xOffset = xOffset + prevCharWidth/2 - currCharWidth/2;
 
@@ -407,7 +412,7 @@ class AppearanceGeneratorHelper
 // display starts with the first entry in Opt.
 int topIndex = ((PDListBox) field).getTopIndex();
 
-float highlightBoxHeight = font.getBoundingBox().getHeight() * 
fontSize / 1000 - 2f;
+float highlightBoxHeight = font.getBoundingBox().getHeight() * 
fontSize / FONTSCALE - 2f;
 
 // the padding area 
 PDRectangle paddingEdge = applyPadding(appearanceStream.getBBox(), 1);
@@ -436,7 +441,7 @@ class AppearanceGeneratorHelper
 else if (q == PDVariableText.QUADDING_CENTERED || q == 
PDVariableText.QUADDING_RIGHT)
 {
 float fieldWidth = appearanceStream.getBBox().getWidth();
-float stringWidth = (font.getStringWidth(value) / 1000) * fontSize;
+float stringWidth = (font.getStringWidth(value) / FONTSCALE) * 
fontSize;
 float adjustAmount = fieldWidth - stringWidth - 4;
 
 if (q == PDVariableText.QUADDING_CENTERED)
@@ -462,11 +467,11 @@ class AppearanceGeneratorHelper

 if (i == topIndex)
 {
-yTextPos = yTextPos - font.getFontDescriptor().getAscent() / 
1000 * fontSize;
+

svn commit: r1692019 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java

2015-07-20 Thread msahyoun
Author: msahyoun
Date: Mon Jul 20 20:14:41 2015
New Revision: 1692019

URL: http://svn.apache.org/r1692019
Log:
PDFBOX-2877: code cleanup

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java?rev=1692019r1=1692018r2=1692019view=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
 Mon Jul 20 20:14:41 2015
@@ -62,7 +62,12 @@ class AppearanceGeneratorHelper
 /**
  * The scaling factor for font units to PDF units
  */
-private static final int FONTSCALE = 1000;
+private static final int FONTSCALE = 1000;
+
+/**
+ * The default font size used for multiline text
+ */
+private static final float DEFAULT_FONT_SIZE = 12;
 
 
 /**
@@ -434,11 +439,8 @@ class AppearanceGeneratorHelper
 contents.setNonStrokingColor(0);
 
 int q = field.getQ();
-if (q == PDVariableText.QUADDING_LEFT)
-{
-// do nothing because left is default
-}
-else if (q == PDVariableText.QUADDING_CENTERED || q == 
PDVariableText.QUADDING_RIGHT)
+
+if (q == PDVariableText.QUADDING_CENTERED || q == 
PDVariableText.QUADDING_RIGHT)
 {
 float fieldWidth = appearanceStream.getBBox().getWidth();
 float stringWidth = (font.getStringWidth(value) / FONTSCALE) * 
fontSize;
@@ -451,18 +453,19 @@ class AppearanceGeneratorHelper
 
 contents.newLineAtOffset(adjustAmount, 0);
 }
-else
+else if (q != PDVariableText.QUADDING_LEFT)
 {
 throw new IOException(Error: Unknown justification value: + q);
 }
 
 ListString options = ((PDListBox) field).getOptionsDisplayValues();
+int numOptions = options.size();
 
 float yTextPos = contentRect.getUpperRightY();
 
 int topIndex = ((PDListBox) field).getTopIndex();
 
-for (int i = topIndex; i  options.size(); i++)
+for (int i = topIndex; i  numOptions; i++)
 {

 if (i == topIndex)
@@ -478,7 +481,7 @@ class AppearanceGeneratorHelper
 contents.newLineAtOffset(contentRect.getLowerLeftX(), yTextPos);
 contents.showText(options.get(i));
 
-if (i - topIndex != (options.size() - 1))
+if (i - topIndex != (numOptions - 1))
 {
 contents.endText();
 }
@@ -514,7 +517,7 @@ class AppearanceGeneratorHelper
 if (isMultiLine())
 {
 // Acrobat defaults to 12 for multiline text with size 0
-return 12f;
+return DEFAULT_FONT_SIZE;
 }
 else
 {