diff options
author | Christian Maierhofer <cmaierhofer@iaik.tugraz.at> | 2016-06-13 13:15:39 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2016-08-17 16:45:59 +0200 |
commit | 4a0feb2e69b86cd4a7c574de49907af2620f5e23 (patch) | |
tree | efe8e9c85b8cbde7d19ea2ee0831a7e00847a6a7 /pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsFontCache.java | |
parent | c4e41301d0746ce57044a3aa41375cff3a9f2b5e (diff) | |
download | pdf-as-4-4a0feb2e69b86cd4a7c574de49907af2620f5e23.tar.gz pdf-as-4-4a0feb2e69b86cd4a7c574de49907af2620f5e23.tar.bz2 pdf-as-4-4a0feb2e69b86cd4a7c574de49907af2620f5e23.zip |
modified font caching
Diffstat (limited to 'pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsFontCache.java')
-rw-r--r-- | pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsFontCache.java | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsFontCache.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsFontCache.java new file mode 100644 index 00000000..97dcf551 --- /dev/null +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsFontCache.java @@ -0,0 +1,66 @@ +package at.gv.egiz.pdfas.lib.impl.stamping.pdfbox2; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +import org.apache.pdfbox.pdmodel.font.PDFont; +import org.apache.pdfbox.pdmodel.font.PDType1Font; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class PDFAsFontCache { + + private static final Logger logger = LoggerFactory + .getLogger(PDFAsFontCache.class); + + private static final String HELVETICA = "HELVETICA"; + private static final String COURIER = "COURIER"; + private static final String TIMES_ROMAN = "TIMES_ROMAN"; + private static final String BOLD = "BOLD"; + private static final String NORMAL = "NORMAL"; + private static final String ITALIC = "ITALIC"; + private static final String SEP = ":"; + + public static PDFont defaultFont = PDType1Font.HELVETICA; + public static float defaultFontSize = 8; + + private Map<String, PDFont> fonts; + + private static Map<String, PDFont> defaultFonts = new HashMap<String, PDFont>(); + static { + defaultFonts.put(HELVETICA + SEP + NORMAL, PDType1Font.HELVETICA); + defaultFonts.put(HELVETICA + SEP + BOLD, PDType1Font.HELVETICA_BOLD); + + defaultFonts.put(COURIER + SEP + NORMAL, PDType1Font.COURIER); + defaultFonts.put(COURIER + SEP + BOLD, PDType1Font.COURIER_BOLD); + + defaultFonts.put(TIMES_ROMAN + SEP + NORMAL, PDType1Font.TIMES_ROMAN); + defaultFonts.put(TIMES_ROMAN + SEP + BOLD, PDType1Font.TIMES_BOLD); + defaultFonts.put(TIMES_ROMAN + SEP + ITALIC, PDType1Font.TIMES_ITALIC); + } + + public PDFAsFontCache(){ + fonts = new HashMap<String, PDFont>(defaultFonts); + } + + public boolean contains(String fontPath) { + return fonts.containsKey(fontPath); + } + + public void addFont(String fontPath, PDFont font) { + fonts.put(fontPath, font); + } + + public PDFont getFont(String fontPath) { + return fonts.get(fontPath); + } + + public void showAvailableFonts() { + Iterator<String> it = fonts.keySet().iterator(); + logger.info("Available Fonts:"); + while (it.hasNext()) { + logger.info(it.next()); + } + } +} |