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 2022/07/17 06:36:56 UTC

svn commit: r1902795 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDLineAppearanceHandler.java

Author: tilman
Date: Sun Jul 17 06:36:55 2022
New Revision: 1902795

URL: http://svn.apache.org/viewvc?rev=1902795&view=rev
Log:
PDFBOX-4892: optimize, as suggested by Valery Bokov

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDLineAppearanceHandler.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDLineAppearanceHandler.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDLineAppearanceHandler.java?rev=1902795&r1=1902794&r2=1902795&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDLineAppearanceHandler.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDLineAppearanceHandler.java Sun Jul 17 06:36:55 2022
@@ -104,10 +104,11 @@ public class PDLineAppearanceHandler ext
         // arrow length is 9 * width at about 30° => 10 * width seems to be enough
         // but need to consider /LL, /LLE and /LLO too
         //TODO find better way to calculate padding
-        rect.setLowerLeftX(Math.min(minX - Math.max(lineEndingSize * 10, Math.abs(llo+ll+lle)), rect.getLowerLeftX()));
-        rect.setLowerLeftY(Math.min(minY - Math.max(lineEndingSize * 10, Math.abs(llo+ll+lle)), rect.getLowerLeftY()));
-        rect.setUpperRightX(Math.max(maxX + Math.max(lineEndingSize * 10, Math.abs(llo+ll+lle)), rect.getUpperRightX()));
-        rect.setUpperRightY(Math.max(maxY + Math.max(lineEndingSize * 10, Math.abs(llo+ll+lle)), rect.getUpperRightY()));
+        float max = Math.max(lineEndingSize * 10, Math.abs(llo+ll+lle));
+        rect.setLowerLeftX(Math.min(minX - max, rect.getLowerLeftX()));
+        rect.setLowerLeftY(Math.min(minY - max, rect.getLowerLeftY()));
+        rect.setUpperRightX(Math.max(maxX + max, rect.getUpperRightX()));
+        rect.setUpperRightY(Math.max(maxY + max, rect.getUpperRightY()));
 
         annotation.setRectangle(rect);