如何在iText7中为单个页面设置页面标签?

时间:2019-11-03 17:46:26

标签: java itext itext7

iText页面标签中可以通过以下方式设置:

PdfPage page = pdfDoc.getPage(1);

page.setPageLabel(PageLabelNumberingStyle.UPPERCASE_ROMAN_NUMERALS, "Cover", 1);

但是,生成的PDF的第一页将标记为CoverI,随后的所有页面也将被标记。我既不想在页面标签Cover上添加任何内容,也不想在标签上标记任何其他页面。

那么,如何为单个页面设置页面标签?

我希望第一页具有自定义的字符串标签,其他页面使用阿拉伯数字,接下来的页面使用罗马数字。

1 个答案:

答案 0 :(得分:0)

页面标签配置适用于您为其设置的页面以及所有连续页面。因此,要使第2页及其后的页面具有标准的阿拉伯数字,只需确保已明确设置配置即可。对于您提到的情况,代码大致如下:

PdfPage page = pdfDocument.getPage(1);
page.setPageLabel(PageLabelNumberingStyle.UPPERCASE_ROMAN_NUMERALS, "Cover", 1);

page = pdfDocument.getPage(2);
int pageNumToStartFrom = 2; // Replace it with 1 if you want the blocks to be numbered independently
page.setPageLabel(PageLabelNumberingStyle.DECIMAL_ARABIC_NUMERALS, null, pageNumToStartFrom);

page = pdfDocument.getPage(4);
pageNumToStartFrom = 4; // Replace it with 1 if you want the blocks to be numbered independently
page.setPageLabel(PageLabelNumberingStyle.UPPERCASE_ROMAN_NUMERALS, null, pageNumToStartFrom);