Author: tilman
Date: Sat Feb  8 05:22:58 2025
New Revision: 1923657

URL: http://svn.apache.org/viewvc?rev=1923657&view=rev
Log:
PDFBOX-5949: consider the font matrix when scaling

Modified:
    
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDTextAppearanceHandler.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDTextAppearanceHandler.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDTextAppearanceHandler.java?rev=1923657&r1=1923656&r2=1923657&view=diff
==============================================================================
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDTextAppearanceHandler.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDTextAppearanceHandler.java
 Sat Feb  8 05:22:58 2025
@@ -404,6 +404,10 @@ public class PDTextAppearanceHandler ext
     private void drawCrossHairs(PDAnnotationText annotation, final 
PDAppearanceContentStream contentStream)
             throws IOException
     {
+        List<Number> fontMatrix = 
PDType1Font.SYMBOL.getFontBoxFont().getFontMatrix();
+        float xScale = (float) fontMatrix.get(0);
+        float yScale = (float) fontMatrix.get(3);
+
         PDRectangle bbox = adjustRectAndBBox(annotation, 20, 20);
 
         float min = Math.min(bbox.getWidth(), bbox.getHeight());
@@ -413,7 +417,7 @@ public class PDTextAppearanceHandler ext
         contentStream.setLineCapStyle(0);
         contentStream.setLineWidth(0.61f); // value from Adobe
 
-        contentStream.transform(Matrix.getScaleInstance(0.001f * min / 1.5f, 
0.001f * min / 1.5f));
+        contentStream.transform(Matrix.getScaleInstance(xScale * min * 
1.3333f, yScale * min * 1.3333f));
         contentStream.transform(Matrix.getTranslateInstance(0, 50));
 
         // we get the shape of a Symbol crosshair (0x2295) and use that one.


Reply via email to