Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/print/PDFAssessmentBean.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/print/PDFAssessmentBean.java (revision 124009) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/print/PDFAssessmentBean.java (working copy) @@ -27,8 +27,10 @@ import com.lowagie.text.Document; import com.lowagie.text.Element; import com.lowagie.text.Font; +import com.lowagie.text.FontFactoryImp; import com.lowagie.text.Image; import com.lowagie.text.Paragraph; +import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfPCell; import com.lowagie.text.pdf.PdfPTable; import com.lowagie.text.pdf.PdfWriter; @@ -774,6 +776,7 @@ float prevs = 0; + props.put("font_factory", new CustomFontFactory()); props.put("img_baseurl", ServerConfigurationService.getServerUrl()); worker.setInterfaceProps(props); @@ -936,4 +939,31 @@ return "" + items; } + /** + * This class pulls in the default font from sakai.properties + */ + protected class CustomFontFactory extends FontFactoryImp { + private final String defaultFontname; + + public CustomFontFactory() { + super(); + + defaultFontname = ServerConfigurationService.getString("pdf.default.font"); + if (defaultFontname != null) { + registerDirectories(); + } + } + + @Override + public Font getFont(String fontname, String encoding, boolean embedded, float size, int style, Color color, boolean cached) { + Font font; + + if (defaultFontname == null) { + font = super.getFont(fontname, encoding, embedded, size, style, color, cached); + } else { + font = super.getFont(defaultFontname, BaseFont.IDENTITY_H, embedded, size, style, color, cached); + } + return font; + } + } }