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.