package net.sf.jasperreports.engine.util; import java.awt.font.TextAttribute; import java.util.HashMap; import java.util.Map; import net.sf.jasperreports.engine.JRFont; public class JRFontUtil { public static Map getNonPdfAttributes(JRFont font) { Map nonPdfAttributes = new HashMap(); setNonPdfAttributes(nonPdfAttributes, font); return nonPdfAttributes; } public static Map getAttributes(JRFont font) { Map attributes = new HashMap(); setAttributes(attributes, font); return attributes; } private static Map setNonPdfAttributes(Map attributes, JRFont font) { attributes.put(TextAttribute.FAMILY, font.getFontName()); attributes.put(TextAttribute.SIZE, new Float(font.getFontSize())); if (font.isBold()) attributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD); if (font.isItalic()) attributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE); if (font.isUnderline()) attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); if (font.isStrikeThrough()) attributes.put(TextAttribute.STRIKETHROUGH, TextAttribute.STRIKETHROUGH_ON); return attributes; } public static Map setAttributes(Map attributes, JRFont font) { attributes = setNonPdfAttributes(attributes, font); attributes.put(JRTextAttribute.PDF_FONT_NAME, font.getPdfFontName()); attributes.put(JRTextAttribute.PDF_ENCODING, font.getPdfEncoding()); if (font.isPdfEmbedded()) attributes.put(JRTextAttribute.IS_PDF_EMBEDDED, Boolean.TRUE); return attributes; } }