aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/TableDrawUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/TableDrawUtils.java')
-rw-r--r--pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/TableDrawUtils.java36
1 files changed, 34 insertions, 2 deletions
diff --git a/pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/TableDrawUtils.java b/pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/TableDrawUtils.java
index 88eb798a..3572ad54 100644
--- a/pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/TableDrawUtils.java
+++ b/pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/TableDrawUtils.java
@@ -209,11 +209,21 @@ public class TableDrawUtils {
tx += offset;
}
}
-
+ float ascent = textFont.getFontDescriptor().getAscent();
+ float descent = textFont.getFontDescriptor().getDescent();
+
+ ascent = ascent / 1000.0f * fontSize;
+ descent = descent / 1000.0f * fontSize;
+
+ ty = ty + (descent * (-1));
+
logger.debug("Text tx {} ty {} maxWidth {} textHeight {}", tx, ty,
maxWidth, textHeight);
+ logger.debug("Text ASCENT {} DESCENT {}", ascent, descent);
- drawDebugLine(contentStream, tx, ty, maxWidth, textHeight, settings);
+ logger.debug("Text TRANSFORMED ASCENT {} DESCENT {}", ascent, descent);
+
+ drawDebugLineString(contentStream, tx, ty, maxWidth, textHeight, descent, settings);
contentStream.beginText();
@@ -528,6 +538,28 @@ public class TableDrawUtils {
}
}
}
+
+ private static void drawDebugLineString(PDPageContentStream contentStream,
+ float x, float y, float width, float height, float descent, ISettings settings) {
+ if ("true".equals(settings.getValue(TABLE_DEBUG))) {
+ try {
+ contentStream.setStrokingColor(Color.RED);
+ contentStream.drawLine(x, y, x + width, y);
+ contentStream.setStrokingColor(Color.BLUE);
+ contentStream.drawLine(x, y, x, y - height);
+ contentStream.setStrokingColor(Color.GREEN);
+ contentStream.drawLine(x + width, y, x + width, y - height);
+ contentStream.setStrokingColor(Color.ORANGE);
+ contentStream.drawLine(x, y - height, x + width, y - height);
+ contentStream.setStrokingColor(Color.MAGENTA);
+ contentStream.drawLine(x, y + (descent * (-1)) - height, x + width, y + (descent * (-1)) - height);
+
+ contentStream.setStrokingColor(Color.BLACK);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ }
private static void drawDebugPadding(PDPageContentStream contentStream,
float x, float y, float padding, float width, float height,