我对Java很新,但很快就学会了。目前我创建的一个程序将文档写入PDF使用各种各样的字体。我想将这些声明为枚举(它们目前在一个名为Fonts的类文件中,并声明为公共静态final,工作正常)但我似乎无法确定如何声明每个特定枚举相等的Font甚至在读取之后关于枚举的几个文档。我知道枚举是更明智的方法,所以如果可能的话,我更愿意实现这一点。
真的经过一些指导。
我的字体类文件如下。
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.pdf.CMYKColor;
public class Fonts {
public static final Font REG16 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 16));
public static final Font REG13 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 13));
public static final Font BOLD13 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 13, Font.BOLD, BaseColor.BLACK));
public static final Font BOLD11 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 11, Font.BOLD, BaseColor.BLACK));
public static final Font BOLD10 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 10, Font.BOLD, BaseColor.BLACK));
public static final Font GREY11 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 11, BaseColor.GRAY));
public static final Font GREYBOLD10 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 10, Font.BOLDITALIC, BaseColor.GRAY));
public static final Font REG10 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 10));
public static final Font REG11 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 11));
public static final Font GREYBOLD17 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 17, Font.BOLDITALIC));
public static final Font WHITEBOLD38 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 38, Font.BOLD, BaseColor.WHITE));
public static final Font WHITEBOLD20 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 20, Font.BOLD, BaseColor.WHITE));
public static final Font WHITEBOLD10 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 10, Font.BOLD, BaseColor.WHITE)); // Declare fonts.
public static final Font BOLDITALIC11 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 11, Font.BOLDITALIC, BaseColor.BLACK));
public static final Font ORANGEBOLD12 = new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 12, Font.BOLDITALIC, new CMYKColor(0, 0.2f, 1f, 0)));
}
答案 0 :(得分:2)
您可以为每个实例创建一个enum
属性Font
。
以下内容:
enum Fonts {
REG16(new Font(FontFactory.getFont("C:\\Windows\\Fonts\\Calibri.ttf", 16))),
...
;
private Font f;
Fonts(Font f) {
this.f = f;
}
public Font getFont() {
return this.f;
}
}