aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFSignatureObjectIText.java35
-rw-r--r--src/site/changes.xml1
2 files changed, 35 insertions, 1 deletions
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFSignatureObjectIText.java b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFSignatureObjectIText.java
index 75e90c5..5bc748d 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFSignatureObjectIText.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFSignatureObjectIText.java
@@ -26,6 +26,7 @@ import java.util.HashMap;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
+import at.gv.egiz.pdfas.exceptions.ErrorCode;
import at.knowcenter.wag.egov.egiz.cfg.ConfigLogger;
import at.knowcenter.wag.egov.egiz.cfg.SettingsReader;
import at.knowcenter.wag.egov.egiz.exceptions.PDFDocumentException;
@@ -36,10 +37,12 @@ import at.knowcenter.wag.egov.egiz.table.Style;
import at.knowcenter.wag.egov.egiz.table.Table;
import com.lowagie.text.BadElementException;
+import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.Image;
import com.lowagie.text.Phrase;
+import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
@@ -242,11 +245,37 @@ public class PDFSignatureObjectIText implements PDFSignatureObject
int face = ((Integer) font_face).intValue();
float height = Float.parseFloat(font_arr[1]);
int weight = ((Integer) font_weight).intValue();
-
+
font = new Font(face, height, weight);
fontMap_.put(fontString, font);
return font;
}
+
+ /**
+ * Creates a custom
+ * @param fontString
+ * @return
+ * @throws PDFDocumentException
+ */
+ private Font getCellTrueTypeFont(String fontString) throws PDFDocumentException {
+ // TODO[tknall-PDF/A]: Remove hardcoded TTF. Impement TTF usage based on configuration.
+ logger_.warn("TrueType Fonts are activated. This is only for testing purposes. Deactivate in final release!");
+ try {
+ Font font = (Font) fontMap_.get(fontString);
+ if (font == null) {
+ logger_.debug("Font \"" + fontString + "\" not in cache. Instantiating font.");
+ String fontPath = SettingsReader.RESOURCES_PATH + "fonts" + File.separator + "DejaVuSansCondensed.ttf";
+ logger_.debug("Instantiating \"" + fontPath + "\".");
+ font = new Font(BaseFont.createFont(fontPath, BaseFont.WINANSI, true), 8);
+ fontMap_.put(fontString, font);
+ }
+ return font;
+ } catch (DocumentException e) {
+ throw new PDFDocumentException(ErrorCode.FONT_NOT_FOUND, e.getMessage());
+ } catch (IOException e) {
+ throw new PDFDocumentException(ErrorCode.FONT_NOT_FOUND, e.getMessage());
+ }
+ }
/**
* This method visualize an abstract table cell into a corresponding pdf table
@@ -284,7 +313,11 @@ public class PDFSignatureObjectIText implements PDFSignatureObject
{
font_string = cell_style.getValueFont();
}
+
+ // TODO[tknall-PDF/A]: Deactivate temporary TTF test.
Font cell_font = getCellFont(font_string);
+// Font cell_font = getCellTrueTypeFont(font_string);
+
Phrase text_phrase = new Phrase(text, cell_font);
pdf_cell = new PdfPCell(text_phrase);
setCellStyle(pdf_cell, cell_style);
diff --git a/src/site/changes.xml b/src/site/changes.xml
index 96307b2..8e1016c 100644
--- a/src/site/changes.xml
+++ b/src/site/changes.xml
@@ -28,6 +28,7 @@
<action dev="tknall" type="add">Preparation for multilingual support for web application.</action>
<action dev="tknall" type="update">Minor updates of configuration.</action>
<action dev="tknall" type="update">Sitemesh updates.</action>
+ <action dev="tknall" type="add">Minor support for TrueType fonts in preparation of PDF/A added.</action>
</release>
<release version="3.0.7-20080923" date="2008-09-23" description="subsequent release">