You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2019/07/20 09:28:09 UTC

svn commit: r1863457 - /pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/ExtractText.java

Author: tilman
Date: Sat Jul 20 09:28:09 2019
New Revision: 1863457

URL: http://svn.apache.org/viewvc?rev=1863457&view=rev
Log:
PDFBOX-4071: avoid duplicate code; clone matrix object to avoid modifying it

Modified:
    pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/ExtractText.java

Modified: pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/ExtractText.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/ExtractText.java?rev=1863457&r1=1863456&r2=1863457&view=diff
==============================================================================
--- pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/ExtractText.java (original)
+++ pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/ExtractText.java Sat Jul 20 09:28:09 2019
@@ -405,6 +405,13 @@ public final class ExtractText
         }
     }
 
+    static int getAngle(TextPosition text)
+    {
+        Matrix m = text.getTextMatrix().clone();
+        m.concatenate(text.getFont().getFontMatrix());
+        return (int) Math.round(Math.toDegrees(Math.atan2(m.getShearY(), m.getScaleY())));
+    }
+
     /**
      * This will print the usage requirements and exit.
      */
@@ -458,9 +465,7 @@ class AngleCollector extends PDFTextStri
     @Override
     protected void processTextPosition(TextPosition text)
     {
-        Matrix m = text.getTextMatrix();
-        m.concatenate(text.getFont().getFontMatrix());
-        int angle = (int) Math.round(Math.toDegrees(Math.atan2(m.getShearY(), m.getScaleY())));
+        int angle = ExtractText.getAngle(text);
         angle = (angle + 360) % 360;
         angles.add(angle);
     }
@@ -478,9 +483,7 @@ class FilteredTextStripper extends PDFTe
     @Override
     protected void processTextPosition(TextPosition text)
     {
-        Matrix m = text.getTextMatrix();
-        m.concatenate(text.getFont().getFontMatrix());
-        int angle = (int) Math.round(Math.toDegrees(Math.atan2(m.getShearY(), m.getScaleY())));
+        int angle = ExtractText.getAngle(text);
         if (angle == 0)
         {
             super.processTextPosition(text);