Hi, I'm using this method (fired by Quartz) to register new fonts (I'dont know if this method is compatible with the last release of JR): I also have a method to list the fonts. Hope this helps Good luck Code: public static HashMap<FontKey,PdfFont> fontMap = new HashMap<FontKey,PdfFont>(); private GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); /** * * Metodo para registrar las tipografias de la aplicacion en el sistema de * fuentes de AWT y dentro de las tipografias disponibles para la libreria * iText, utilizada por JasperReports para la exportacion de reportes en * formato PDF. * * @param fontfile nombre del archivo ttf de la tipografia que se desea * registrar. * @return devuelve un <code>boolean</code> indicando si se pudo * o no registrar la tipografia */ private boolean registerFont(String fontsdir, String fontfile) { /** registramos una tipografia propia en el sistema de tipografias de AWT/JAVA 2D con esto la ponemos disponible para que JasperReports pueda realizar sus calculos de altura y dimesiones para la impresion del documento. */ FileInputStream fis = null; boolean retval = false; String fullfontpath = fontsdir + File.separator + fontfile; String fontthumb = fontsdir + File.separator + FilenameUtils.getBaseName(fontfile) + "." + FontThumbs.IMAGEFORMATEXTENSION; FontKey key; PdfFont font; try { _log.info(sessionid +"registrando en AWT"); fis = new FileInputStream(fullfontpath); Font customFont = Font.createFont(Font.TRUETYPE_FONT, fis); ge.registerFont(customFont); _log.info(sessionid +"registrando en iText"); FontFactory.register(fullfontpath); _log.info(sessionid + "se logro registrar la tipografia <" + customFont.getFontName() + "> correspondiente a la familia <" + customFont.getFamily() + ">"); /** * actualizamos el parametro FONT_MAP que luego utilizara la clase * ReportExporter al exportar el reporte al formato PDF. */ key = new FontKey(customFont.getFontName(), false, false); font = new PdfFont(fullfontpath, "Cp1252", true); fontMap.put(key, font); retval = true; } catch (FontFormatException ex) { _log.error(sessionid + "se produjo un error al registrar la " + "tipografia <" + ex + ">"); ex.printStackTrace(); } catch (IOException ex) { _log.error(sessionid + "se produjo un error de E/S <" + ex + ">"); ex.printStackTrace(); } catch (Exception e) { _log.error(sessionid + "se produjo un error generico <" + e + ">"); e.printStackTrace(); } finally { try { fis.close(); } catch (IOException ex) { _log.error(sessionid + "se produjo un error al cerrar el " + "inputstream de la tipografia <" + ex + ">"); ex.printStackTrace(); } } return retval; } /** * metodo para listar las tipografias registradas en el sistema de AWT y * en la libreria iText que utiliza JasperReports para exportar los * reportes a PDF. */ public static void listFonts() { GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); _log.debug("=== inicio listado de tipografias del sistema ===>"); String[] fontNames = ge.getAvailableFontFamilyNames(); Font[] fontfiles = ge.getAllFonts(); for (int index = 0; index < fontNames.length; index++) { _log.debug("\t" + fontNames[index]); } _log.debug("\t*********************************************"); for (int index = 0; index < fontfiles.length; index++) { _log.debug("\t" + fontfiles[index].getFontName()); } _log.debug("<=== fin listado de tipografias del sistema ==="); _log.debug( "--- inicio listado de tipografias disponibles para iText --->"); for (Iterator i = FontFactory.getRegisteredFonts().iterator(); i.hasNext();) { _log.debug("\t" + (String) i.next()); } _log.debug( "<--- fin listado de tipografias disponibles para iText ---"); }