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.java40
1 files changed, 36 insertions, 4 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..5156d846 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();
@@ -226,9 +236,9 @@ public class TableDrawUtils {
contentStream.setFont(textFont, fontSize);
}
- logger.debug("Writing: " + tx + " : " + (ty - fontSize) + " as "
+ logger.debug("Writing: " + tx + " : " + (ty - fontSize + (descent * (-1))) + " as "
+ cell.getType());
- contentStream.moveTextPositionByAmount(tx, (ty - fontSize));
+ contentStream.moveTextPositionByAmount(tx, (ty - fontSize + (descent * (-1))));
contentStream.appendRawCommands(fontSize + " TL\n");
for (int k = 0; k < tlines.length; k++) {
@@ -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,