diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-06-04 15:39:57 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-06-04 15:39:57 +0200 |
commit | 6de4496bc66024471186174c77554ba9804b980a (patch) | |
tree | 1ba4c69cb8acd703aafcd726048cefe0e6f0551b /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFBoxTable.java | |
parent | c085bb68cbd15e5c8cf0ce23e7c8104b08fdf238 (diff) | |
download | pdf-as-4-6de4496bc66024471186174c77554ba9804b980a.tar.gz pdf-as-4-6de4496bc66024471186174c77554ba9804b980a.tar.bz2 pdf-as-4-6de4496bc66024471186174c77554ba9804b980a.zip |
PDF Table Font alignment
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFBoxTable.java')
-rw-r--r-- | pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFBoxTable.java | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFBoxTable.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFBoxTable.java index e76c849e..1bbfbe9a 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFBoxTable.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFBoxTable.java @@ -11,6 +11,8 @@ import org.apache.pdfbox.pdmodel.font.PDType1Font; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.sun.org.apache.bcel.internal.generic.Type; + import at.gv.egiz.pdfas.common.exceptions.PdfAsException; import at.gv.egiz.pdfas.common.exceptions.PdfAsWrappedIOException; import at.gv.egiz.pdfas.common.settings.ISettings; @@ -71,12 +73,11 @@ public class PDFBoxTable { } catch(PdfAsException e) { throw new PdfAsWrappedIOException(e); } - if (abstractTable.getStyle() != null) { - style = abstractTable.getStyle(); - } - if (style == null && parent != null) { - style = parent.style; + if (parent != null) { + style = Style.doInherit(abstractTable.getStyle(), parent.style); + } else { + style = abstractTable.getStyle(); } if (style == null) { @@ -87,10 +88,6 @@ public class PDFBoxTable { String vfontString = style.getValueFont(); - if(fontString == null || vfontString == null) { - - } - if (parent != null && style == parent.style) { font = parent.getFont(); @@ -158,14 +155,26 @@ public class PDFBoxTable { ArrayList<Entry> row = this.table.getRows().get(i); for (int j = 0; j < row.size(); j++) { Entry cell = (Entry) row.get(j); - - float cellheight = getCellHeight(cell, colWidths[j]); + + float colWidth = colWidths[j]; + + int colsleft = cell.getColSpan() - 1; + + if(j + colsleft > colWidths.length) { + throw new IOException("Configuration is wrong. Cannot determine column width!"); + } + + for(int k = 0; k < colsleft; k++) { + colWidth = colWidth + colWidths[j+k]; + } + + float cellheight = getCellHeight(cell, colWidth); if (rowHeights[i] < cellheight) { rowHeights[i] = cellheight; } - logger.debug("ROW: {} COL: {} Width: {} Height: {}", i, j, + logger.debug("ROW: {} COL: {} Width: {} Height: {}", i, j, colWidth, cellheight); int span = cell.getColSpan() - 1; @@ -386,7 +395,7 @@ public class PDFBoxTable { c = font.getFont(null); fontSize = font.getFontSize(); } - + float fwidth; if (c instanceof PDType1Font) { fwidth = c.getFontDescriptor().getFontBoundingBox().getWidth() @@ -536,6 +545,9 @@ public class PDFBoxTable { for (int i = 0; i < colWidths.length; i++) { logger.debug("\t[{}] : {}", i, this.colWidths[i]); } + logger.debug("\t================================"); + logger.debug("\tTable:"); + logger.debug("\t" + this.table.toString()); logger.debug("====================================================================="); } |