getPageLabels 和 getPageLabelFormats 有什么区别?
What is the difference between getPageLabels and getPageLabelFormats?
我有一个程序调用 PdfPageLabels.getPageLabels()
和
PdfPageLabels.getPageLabelFormats()
在同一个 PdfReader
对象上
我的代码的连续行:
PdfPageLabels.PdfPageLabelFormat[] pplf = PdfPageLabels.getPageLabelFormats(reader);
String[] labs = PdfPageLabels.getPageLabels(reader);
我原以为这两个调用总是对相同长度的 return 数组,它们应该是相同的标签。大多数情况下都是如此,但偶尔情况并非如此。
我有一个例子。这是一个 150Mb 的 PDF 文件,通过 getPageLabels()
似乎有 4670 个标签,但通过 getPageLabelFormats()
.
只有 1 个
所以我的问题是:在什么情况下两个调用return不同长度的数组?
两种方法的区别很简单:
getPageLabels()
returns 数组中每个页面的标签。如果您的 PDF 有 4670 页,您将得到一个包含 4670 String
个值的数组。
getPageLabelFormat()
returns 一个数组,其中包含文档中使用的格式。它不是 return String
个值,而是 PdfPageLabelFormat
个实例。在许多情况下,整个文档只使用一种页面标签格式。
例如:
您有一份包含五页简介的文档,编号为 i、ii、iii、iv 和 v。那么你有一百页,数字 1 到 100。
在这种情况下,getPageLabels()
应该 return 一个包含 105 String
个值的数组。然而,getPageLabelFormat()
方法只会 return 两个 PageLabelFormat
值,因为我们只使用两种页面标签格式:
- 有人说第一个物理页面以 i.
开头的小写罗马数字开头
- 有人说第六页是阿拉伯数字,从1开始。
只需要起始格式,物理页2到4与物理页1格式相同;第 7 至 105 页的物理页与第 6 页的格式相同。
我有一个程序调用 PdfPageLabels.getPageLabels()
和
PdfPageLabels.getPageLabelFormats()
在同一个 PdfReader
对象上
我的代码的连续行:
PdfPageLabels.PdfPageLabelFormat[] pplf = PdfPageLabels.getPageLabelFormats(reader);
String[] labs = PdfPageLabels.getPageLabels(reader);
我原以为这两个调用总是对相同长度的 return 数组,它们应该是相同的标签。大多数情况下都是如此,但偶尔情况并非如此。
我有一个例子。这是一个 150Mb 的 PDF 文件,通过 getPageLabels()
似乎有 4670 个标签,但通过 getPageLabelFormats()
.
所以我的问题是:在什么情况下两个调用return不同长度的数组?
两种方法的区别很简单:
getPageLabels()
returns 数组中每个页面的标签。如果您的 PDF 有 4670 页,您将得到一个包含 4670String
个值的数组。getPageLabelFormat()
returns 一个数组,其中包含文档中使用的格式。它不是 returnString
个值,而是PdfPageLabelFormat
个实例。在许多情况下,整个文档只使用一种页面标签格式。
例如:
您有一份包含五页简介的文档,编号为 i、ii、iii、iv 和 v。那么你有一百页,数字 1 到 100。
在这种情况下,getPageLabels()
应该 return 一个包含 105 String
个值的数组。然而,getPageLabelFormat()
方法只会 return 两个 PageLabelFormat
值,因为我们只使用两种页面标签格式:
- 有人说第一个物理页面以 i. 开头的小写罗马数字开头
- 有人说第六页是阿拉伯数字,从1开始。
只需要起始格式,物理页2到4与物理页1格式相同;第 7 至 105 页的物理页与第 6 页的格式相同。