使用iText设置标题行的格式

我正在使用iText5从CSV生成PDF文件。 我需要格式化文件,以便标题行(发生在每个页面的开头)应该在一个

更大的字体

大胆的

highlighted by a background colour

为了清楚起见,我知道如何设置字体样式/大小/颜色。 我很难找到如何为标题行做这件事

我怎样才能做到这一点? 请帮忙。

提前致谢

我们的教程video中更详细地解释了您的要求,更具体地说,在美国的示例中。 在此示例中,我们采用包含美国不同状态的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参数,这样我们就可以为标题定义一个更大,更大胆的字体。