String pdfFilePath = "f:/itext-demo.pdf";
Document document = new Document(PageSize.A4);
// 第二 步: Get a PdfWriter instance.
PdfWriter.getInstance(document, new FileOutputStream(pdfFilePath));
// 第三步:Open the Document.
\document.open();
// 添加 中文信息
BaseFont bfCN = BaseFont.createFont("STSongStd-Light",
"UniGB-UCS2-H", false);
// 设置字体大小
Font fontCN = new Font(bfCN, 12, Font.NORMAL, BaseColor.RED);
document.add(new Paragraph("使用STSongStd-Light字体输出中文。"
, fontCN));
BaseFont bfHei = BaseFont.createFont("c:\\Windows\\fonts\\SIMHEI.TTF",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font font = new Font(bfHei, 32);
String text = "这是黑体字测试!";
document.add(new Paragraph(text, font));
bfHei = BaseFont.createFont("c:\\Windows\\fonts\\SIMKAI.TTF",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
font = new Font(bfHei, 32);
text = "这是楷体字测试!";
document.add(new Paragraph(text, font));
不要管BaseFont.createFont方法第二、三个参数的意思,依葫芦画瓢就行了,第一个参数显示就是字体文件存放的位置。后面的代码都非常好理解,不再赘述。
TruType字体集合的应用
字体集合的使用同上面差不多,只是在在createFont方中要指定使用哪种字体。如:
BaseFont bfSun=BaseFont.createFont("c:\\Windows\\fonts\\SIMSUN.TTC,1"
, BaseFont.IDENTITY_H
, BaseFont.NOT_EMBEDDED);
font = new Font(bfSun, 16);
text = "这是字体集合中的新宋体测试!"
不难看出,在使用BaseFont.createFont方法时,第一个参数"c:\\Windows\\fonts\\SIMSUN.TTC,1"中多了一个",1",表示使用序号为1字体,序号为0的字体为宋体。