首页 > 解决方案 > 如何在 iText7 中为单个页面设置页面标签?

问题描述

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

PdfPage page = pdfDoc.getPage(1);

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

但是,生成的 PDF 将标记其第一页CoverI,并且所有后续页面也将被标记。我不希望将任何内容添加到我的页面标签Cover或任何其他带有标签的页面中。

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

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

标签: javaitextitext7

解决方案


页面标签配置适用于您设置的页面以及所有连续页面。因此,要使第 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);

推荐阅读