java设置标题_使用iText设置标题行的格式

小编典典

您的要求在我们的教学视频中进行了详细说明,更具体地说是在United

States示例中。在此示例中,我们获取一个包含美国不同州的CSV文件:united_states.csv

name;abbr;capital;most populous city;population;square miles;time zone 1;time zone 2;dst

ALABAMA;AL;Montgomery;Birmingham;4,708,708;52,423;CST (UTC-6);EST (UTC-5);YES

ALASKA;AK;Juneau;Anchorage;698,473;656,425;AKST (UTC-09) ;HST (UTC-10) ;YES

ARIZONA;AZ;Phoenix;Phoenix;6,595,778;114,006;MT (UTC-07); ;NO

ARKANSAS;AR;Little Rock;Little Rock;2,889,450;53,182;CST (UTC-6); ;YES

CALIFORNIA;CA;Sacramento;Los Angeles;36,961,664;163,707;PT (UTC-8); ;YES

然后将它们解析为带有重复标头的PDF:united_states.pdf

唯一的区别是,您希望标题中的文本为粗体。这只需要对代码进行最小的更改:

public void createPdf(String dest) throws IOException, DocumentException {

Document document = new Document(PageSize.A4.rotate());

PdfWriter.getInstance(document, new FileOutputStream(dest));

document.open();

PdfPTable table = new PdfPTable(9);

table.setWidthPercentage(100);

table.setWidths(new int[]{4, 1, 3, 4, 3, 3, 3, 3, 1});

BufferedReader br = new BufferedReader(new FileReader(DATA));

String line = br.readLine();

process(table, line, new Font(FontFamily.HELVETICA, 16, Font.BOLD));

table.setHeaderRows(1);

while ((line = br.readLine()) != null) {

process(table, line, new Font(FontFamily.HELVETICA, 12));

}

br.close();

document.add(table);

document.close();

}

public void process(PdfPTable table, String line, Font font) {

StringTokenizer tokenizer = new StringTokenizer(line, ";");

while (tokenizer.hasMoreTokens()) {

table.addCell(new Phrase(tokenizer.nextToken(), font));

}

}

仔细看一下process()方法的更改方式:它现在接受一个font参数,以便我们可以为标题定义更大,更粗体的字体。

2020-11-01

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值