当前位置: 首页 > 面试题库 >

使用iText设置标题行的格式

周伟泽
2023-03-14
问题内容

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

较大的字体

粗体

highlighted by a background colour

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

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

提前致谢


问题答案:

您的要求在我们的教学视频中进行了详细说明,更具体地说是在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参数,以便我们可以为标题定义更大,更粗体的字体。



 类似资料:
  • 是否可以在中设置标题格式?当编织到中的时,我希望将表格的标题居中并加粗。我尝试将表包装在一个中,其中文本居中,但这并没有产生预期的结果。 表格示例: 收益率: 我想:

  • 问题内容: 虽然默认情况下当然可以使用,但提供的选择非常有限。 我想知道如何将自己的自定义颜色添加到文档中? 问题答案: 很多选择。 也有图案颜色和阴影颜色,但是简单得多。

  • 问题内容: 我正在尝试使用jQuery访问Google文档。这是我到目前为止的内容: 如果将设置为,则不允许我设置标头(来自使用jQuery的跨域Ajax请求)。如果遗漏了,我将无法提出跨域请求。如果使用,则无法传递任何标题… 发出跨域ajax请求时(在jQuery中),有什么方法可以定义自定义标头? 问题答案: 这是不可能的。 JSONP请求的工作原理是创建一个元素,并将其属性设置为请求URL。

  • 问题内容: 我正在迁移基于AngularJS的应用程序以使用ui-router而不是内置路由。我将其配置如下所示 如何使用pageTitle变量动态设置页面标题?使用内置的路由,我可以 然后将变量绑定到HTML中,如下所示 是否有类似事件可以挂接到ui-router上?我注意到有“ onEnter”和“ onExit”函数,但它们似乎与每个状态相关,将需要我重复代码以为每个状态设置$ rootSc

  • Since 8.0 setTitle 设置页面的标题栏,包括主标题,副标题以及标题菜单项 注意:由于苹果的ATS限制,image URL必须为https链接或base64,http链接会被忽略 使用方法 AlipayJSBridge.call('setTitle', { title: '标题', }); 代码演示 设置各种类型的标题栏 <h1>点击以下按钮看不同效果</h1> <a href

  • 我试图设置硒网格与docker来运行我的webdriverio测试。然而,当我执行测试时,我得到了一个异常。 我的文件类似于: 我正在通过文件是: 我在selenium集线器容器日志中看到它已启动并正在运行: 但是,当我运行webdriverio测试时,我看到了异常: org.openqa.grid.common.exception.GridExc0019:用于设置功能的VM的空池{Browser