【问题标题】:iTextSharp: Is there a way to override hard page numbers in a PDF?iTextSharp:有没有办法覆盖 PDF 中的硬页码?
【发布时间】:2011-03-04 20:01:48
【问题描述】:

我有一个包含封面、目录和实际内容的文档。目录后的第一页在页脚中编号为“1”。

假设文档有 130 页,除了封面和 TOC 外,实际内容有 128 页。我希望我的观众能够到 adobe reader 的顶部看到 1/128 而不是 1/130。当他们在该框中输入 1 或 2 等时,它会跳转到实际内容的第 1 或第 2 页(而不是封面或 TOC)。这可能吗?

【问题讨论】:

  • 这些页码是否存在于您要修改的现有 PDF 中,或者您是否从头开始生成 PDF?

标签: itextsharp


【解决方案1】:

您可能会通过“页面标签”获得想要的结果。

PdfPageLabels labels = new PdfPageLabels();
// label the first two pages "i" and "ii"
labels.addPageLabel( 1, PdfPageLabels.LOWERCASE_ROMAN_NUMERALS );
// label the following pages "1, 2, ..."
labels.addPageLabel( 3, PdfPageLabels.DECIMAL_ARABIC_NUMERALS );

myPdfWriter.setPageLabels( labels );

你也可以给每个页面一个唯一的字符串而不是页码:

labels.addPageLabel( pageNum, PdfPageLabels.EMPTY, pageNameStr );

我在文本输入字段中看到“第 1 页”,旁边的灰色文本中有 (1 of 3)。我不认为你可以改变“N”,只是第一部分。

警告:我刚刚发现 Acrobat X 中的页面“编号”对话框限制为 8 个字符。任何超过此长度的标签都无法输入。

【讨论】:

  • 这是您通过单击我的答案旁边的复选框将您的问题标记为“已回答”的部分。搜索这个问题的人会看到它已被回答,哪一个是正确的(当只有一个答案时这没什么大不了的,但在一般情况下非常方便),我得到了一点声誉。
  • 抱歉,我对这个过程比较陌生。完成!
猜你喜欢
  • 1970-01-01
  • 2018-10-05
  • 1970-01-01
  • 1970-01-01
  • 2011-12-25
  • 2011-07-07
  • 2020-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多