44 lines
1.5 KiB
Java
44 lines
1.5 KiB
Java
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;
|
|
}
|
|
}
|