diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-10-24 15:08:01 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-10-24 15:08:01 +0200 |
commit | 8ce1e812db33337b751276e1659e7c067a11ab68 (patch) | |
tree | 22046edde318e45a241802689a52f0d7196a653f /pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/TableDrawUtils.java | |
parent | 7fc6f037cf416a4ea6cf8ee4df1367a45266562a (diff) | |
parent | 022f1cace8a815721af4c0da9fc7bdf66a08413c (diff) | |
download | pdf-as-4-8ce1e812db33337b751276e1659e7c067a11ab68.tar.gz pdf-as-4-8ce1e812db33337b751276e1659e7c067a11ab68.tar.bz2 pdf-as-4-8ce1e812db33337b751276e1659e7c067a11ab68.zip |
Merge branch 'fontVerticalAlign'
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.java | 40 |
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, |