From a33e858b5e7d512e126ec266823f398624d4b808 Mon Sep 17 00:00:00 2001 From: Emmeran Seehuber Date: Sun, 8 Jan 2023 10:56:16 +0100 Subject: [PATCH] #47 Shear and rotate seems to be always a rotate on the text... --- .../rototor/pdfbox/graphics2d/FontTest.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/graphics2d/src/test/java/de/rototor/pdfbox/graphics2d/FontTest.java b/graphics2d/src/test/java/de/rototor/pdfbox/graphics2d/FontTest.java index f05468b..7a05f5c 100644 --- a/graphics2d/src/test/java/de/rototor/pdfbox/graphics2d/FontTest.java +++ b/graphics2d/src/test/java/de/rototor/pdfbox/graphics2d/FontTest.java @@ -99,4 +99,41 @@ public void draw(Graphics2D gfx) throws IOException, FontFormatException } }); } + + @Test + public void testFanceTransformedFont() throws IOException, FontFormatException + { + final Font antonioRegular = Font.createFont(Font.TRUETYPE_FONT, + PdfBoxGraphics2dTest.class.getResourceAsStream("antonio/Antonio-Regular.ttf")) + .deriveFont(15f); + exportGraphic("fonts", "fancyTransformed", new GraphicsExporter() + { + @Override + public void draw(Graphics2D gfx) throws IOException, FontFormatException + { + AffineTransform affineTransform = antonioRegular.getTransform(); + affineTransform.shear(Math.toRadians(45), Math.toRadians(-45)); + Font rotatedFont = antonioRegular.deriveFont(affineTransform); + gfx.setColor(Color.BLACK); + gfx.setFont(rotatedFont); + gfx.drawString("Sheared Text", 50, 150); + + affineTransform = antonioRegular.getTransform(); + affineTransform.rotate(Math.toRadians(45), Math.toRadians(-45)); + rotatedFont = antonioRegular.deriveFont(affineTransform); + gfx.setColor(Color.BLUE); + gfx.setFont(rotatedFont); + gfx.drawString("Rotated Text", 150, 150); + + affineTransform = antonioRegular.getTransform(); + affineTransform.rotate(Math.toRadians(45), Math.toRadians(-45)); + affineTransform.shear(Math.toRadians(45), Math.toRadians(-45)); + rotatedFont = antonioRegular.deriveFont(affineTransform); + gfx.setColor(Color.GREEN); + gfx.setFont(rotatedFont); + gfx.drawString("Shear & Rotated Text", 50, 250); + + } + }); + } }