From 47e75a098389adf138cf7ddf1ab7b8f43da7b68f Mon Sep 17 00:00:00 2001 From: "11@q.com" <11@q.com> Date: Wed, 19 May 2021 13:58:52 +0800 Subject: [PATCH] =?UTF-8?q?=E9=AA=91=E7=BC=9D=E7=AB=A0=E5=A4=96=E8=A7=82?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=B8=8D=E6=AD=A3=E7=A1=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/ofdrw/converter/AWTMaker.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ofdrw-converter/src/main/java/org/ofdrw/converter/AWTMaker.java b/ofdrw-converter/src/main/java/org/ofdrw/converter/AWTMaker.java index f217eb50..dc15f53f 100644 --- a/ofdrw-converter/src/main/java/org/ofdrw/converter/AWTMaker.java +++ b/ofdrw-converter/src/main/java/org/ofdrw/converter/AWTMaker.java @@ -149,6 +149,7 @@ public abstract class AWTMaker { } ST_Box stBox = stampAnnot.getBoundary(); + ST_Box clip = stampAnnot.getClip(); Matrix m = MatrixUtils.base(); graphics.setTransform(MatrixUtils.createAffineTransform(m)); @@ -161,7 +162,15 @@ public abstract class AWTMaker { // 缩放适应 m = MatrixUtils.scale(m, ppm, ppm); - graphics.setClip(null); + if (clip != null) { + Matrix m1 = MatrixUtils.base(); + m1 = MatrixUtils.scale(m1, fx, fy); + m1 = MatrixUtils.move(m1, stBox.getTopLeftX() + clip.getTopLeftX(), stBox.getTopLeftY() + clip.getTopLeftY()); + m1 = MatrixUtils.scale(m1, ppm, ppm); + graphics.setClip((int) m1.getAsDouble(2, 0), (int) m1.getAsDouble(2, 1), + (int) (stampImage.getWidth() * m1.getAsDouble(0, 0) * (clip.getWidth()/ stBox.getWidth())), + (int) (stampImage.getHeight() * m1.getAsDouble(1, 1) * (clip.getHeight()/ stBox.getHeight()))); + } graphics.setComposite(getStampComposite()); graphics.drawImage(stampImage, MatrixUtils.createAffineTransform(m), null); } -- Gitee