aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxTable.java29
-rw-r--r--pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/TableDrawUtils.java3
2 files changed, 24 insertions, 8 deletions
diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxTable.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxTable.java
index e35e3994..17ee60be 100644
--- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxTable.java
+++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxTable.java
@@ -85,8 +85,22 @@ public class PDFBoxTable {
case Entry.TYPE_CAPTION:
case Entry.TYPE_VALUE:
String value = (String) cell.getValue();
- cell.setValue(StringUtils
- .convertStringToPDFFormat(value));
+
+ //Check if the used value font supports all characters in string
+ PDFont f = null;
+ try{
+ if(valueFont != null){
+ f = valueFont.getFont();
+ f.getStringWidth(value);
+ }
+ }catch(IllegalArgumentException | IOException e){
+ if(f!=null){
+ logger.warn("Font "+f.getName()+" doesnt support a character in the value "+value);
+ }
+ value = StringUtils.convertStringToPDFFormat(value);
+ cell.setValue(value);
+ }
+
break;
}
}
@@ -99,11 +113,6 @@ public class PDFBoxTable {
private void initializeStyle(Table abstractTable, PDFBoxTable parent,
PDFBOXObject pdfBoxObject) throws IOException {
this.table = abstractTable;
- try {
- normalizeContent(abstractTable);
- } catch (PdfAsException e) {
- throw new PdfAsWrappedIOException(e);
- }
if (parent != null) {
style = Style.doInherit(abstractTable.getStyle(), parent.style);
@@ -148,6 +157,12 @@ public class PDFBoxTable {
padding = style.getPadding();
bgColor = style.getBgColor();
+
+ try {
+ normalizeContent(abstractTable);
+ } catch (PdfAsException e) {
+ throw new PdfAsWrappedIOException(e);
+ }
}
public PDFBoxTable(Table abstractTable, PDFBoxTable parent, float fixSize,
diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/TableDrawUtils.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/TableDrawUtils.java
index aa2a397d..5162b287 100644
--- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/TableDrawUtils.java
+++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/TableDrawUtils.java
@@ -246,8 +246,9 @@ public class TableDrawUtils {
contentStream.moveTextPositionByAmount(tx, (ty - fontSize + (descent * (-1))));
contentStream.appendRawCommands(fontSize + " TL\n");
+
for (int k = 0; k < tlines.length; k++) {
- contentStream.drawString(tlines[k]);
+ contentStream.showText(tlines[k]);
if (k < tlines.length - 1) {
contentStream.appendRawCommands("T*\n");
}