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);