问题场景
利用itext自动生成PDF的过程中,一般情况下字体颜色都是黑色的,但是遇到一些小错误需要报出在PDF上,用彩色字体能达到效果。
代码
需导入的jar包:itext-pdfa-5.5.6.jar、itext-xtra-5.5.6.jar、itext-5.5.6.jar、itext-asian.jar
/**
* 用彩色字体加入警告
* @param document
* @param warn 警告内容
* @throws DocumentException
*/
private static void addWarning(Document document, String warn) throws DocumentException {
FontSelector selector = new FontSelector();
//非汉字字体颜色
Font f1 = FontFactory.getFont(FontFactory.TIMES_ROMAN, 12);
f1.setColor(BaseColor.RED);
//汉字字体颜色
Font f2 = FontFactory.getFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
f2.setColor(BaseColor.RED);
selector.addFont(f1);
selector.addFont(f2);
Phrase ph = selector.process(warn);
Paragraph p = new Paragraph(ph);
p.setAlignment(1);
document.add(p);
}