Foxit PDF SDK

Public 类型 | Public 成员函数 | 所有成员列表
foxit::pdf::PageLabels类 参考
类 foxit::pdf::PageLabels 继承关系图:

## Public 类型
enum | Style { e_None = 0, e_DecimalNums = 1, e_UpperRomanNums = 2, e_LowerRomanNums = 3, e_UpperLetters = 4, e_LowerLetters = 5 }
| 页面标签样式枚举。 更多...

## Public 成员函数
| PageLabels (const PageLabels &other)
| 构造函数，使用另一个页面标签对象。 更多...
| PageLabels (const PDFDoc &document)
| 构造函数，从PDF文档对象构造。 更多...
| ~PageLabels ()
| 析构函数。
objects::PDFNumberTree | GetNumberTree ()
| 获取页面标签数字树。 更多...
WString | GetPageLabelPrefix (int page_index) const
| 获取指定页面索引的页面标签（作为编号格式）中的标签前缀字符串。 更多...
int | GetPageLabelStart (int page_index) const
| 获取指定页面索引的页面标签（作为编号格式）中第一个页面标签的数字部分值。 更多...
Style | GetPageLabelStyle (int page_index) const
| 获取指定页面索引的页面标签（作为编号格式）中数字部分使用的编号样式。 更多...
WString | GetPageLabelTitle (int page_index) const
| 获取由页面索引指定的页面的完整页面标签标题。 更多...
bool | HasPageLabel (int page_index)
| 检查是否为指定页面索引定义了页面标签（作为编号格式）。 更多...
bool | IsEmpty () const
| 检查当前对象是否为空。 更多...
bool | operator!= (const PageLabels &other) const
| 不相等操作符。 更多...
PageLabels & | operator= (const PageLabels &other)
| 赋值操作符。 更多...
bool | operator== (const PageLabels &other) const
| 相等操作符。 更多...
void | RemoveAll ()
| 移除所有页面标签。 更多...
void | RemovePageLabel (int page_index)
| 移除用指定页面索引定义的页面标签（作为编号格式）。 更多...
void | SetPageLabel (int page_index, Style label_style, int first_label_number, const WString &prefix_string=WString())
| 设置由页面索引定义的页面标签（作为编号格式），该页面索引是范围的起始页面索引。 更多...
Public 成员函数 继承自 foxit::Base
FS_HANDLE | Handle () const
| 获取当前对象的句柄。 更多...

## 详细描述

PDF文档中的每一页都由一个整数页面索引标识，该索引表示页面在文档中的相对位置。 此外，文档可以可选地定义页面标签（PDF 1.3）来 在屏幕上或打印时直观地标识每一页。页面标签标题和页面索引不需要一致： 索引是固定的，从第一页的0开始在文档中连续运行， 但标签标题可以以适合特定文档的任何方式指定。 例如，如果文档以12页用罗马数字编号的前言开始， 文档的其余部分用阿拉伯数字编号，第一页的页面索引为0， 页面标签标题为i，第十二页的索引为11，标签标题为xii， 第十三页的索引为12，标签标题为1。
为了页面标签的目的，文档可以分为标签范围，每个范围是一系列 使用相同编号系统的连续页面。范围内的页面按升序顺序编号。 页面的标签（作为编号格式）由基于其在标签范围内位置的数字部分组成， 可选地在前面加上表示范围本身的标签前缀。 例如，附录中的页面可能标有以字符串A-为前缀的十进制数字部分； 结果页面标签将是A-1、A-2等。更多详情请参考 <PDF Reference 1.7> 中的第8.3.1节"Page Labels"。
此类可用于直接获取页面标签完整标题，获取页面标签（作为编号格式）的信息， 设置或添加新的页面标签等。

## 成员枚举类型说明

## ◆ Style

enum foxit::pdf::PageLabels::Style

页面标签样式枚举。

此枚举的值应单独使用。

枚举值
e_None | 页面标签样式：无编号样式。 这意味着页面标签仅由标签前缀组成，没有数字部分。
e_DecimalNums | 页面标签样式：十进制阿拉伯数字。
e_UpperRomanNums | 页面标签样式：大写罗马数字。
e_LowerRomanNums | 页面标签样式：小写罗马数字。
e_UpperLetters | 页面标签样式：大写字母。 如果使用此样式，前26页将使用A到Z，接下来的26页将使用AA到ZZ， 以此类推。
e_LowerLetters | 页面标签样式：小写字母。 如果使用此样式，前26页将使用a到z，接下来的26页将使用aa到zz， 以此类推。

## 构造及析构函数说明

## ◆ PageLabels() [1/2]

foxit::pdf::PageLabels::PageLabels | ( | const PDFDoc & | document | ) |
| explicit

构造函数，从PDF文档对象构造。

如果指定的PDF文档中存在页面标签范围信息， 此函数只是构造一个与这些信息关联的页面标签对象。 如果指定的PDF文档中没有这样的信息，构造的页面标签对象 可用于向PDF文档设置页面标签范围信息。

参数

  [in] | document | 一个有效的PDF文档对象。

## ◆ PageLabels() [2/2]

foxit::pdf::PageLabels::PageLabels | ( | const PageLabels & | other | ) |

构造函数，使用另一个页面标签对象。

参数

  [in] | other | 另一个页面标签对象。

## 成员函数说明

## ◆ GetNumberTree()

objects::PDFNumberTree foxit::pdf::PageLabels::GetNumberTree | ( |  | ) |

获取页面标签数字树。

返回
  页面标签数字树。

## ◆ GetPageLabelPrefix()

WString foxit::pdf::PageLabels::GetPageLabelPrefix | ( | int | page_index | ) | const

获取指定页面索引的页面标签（作为编号格式）中的标签前缀字符串。

此函数仅在输入页面索引具有页面标签时有用——这意味着页面索引是 页面标签范围的起始页面索引。可以使用函数 PageLabels::HasPageLabel 来检查页面索引是否具有页面标签。 如果输入页面索引没有页面标签，此函数将返回空字符串。

参数

  [in] | page_index | 作为页面标签范围起始页面索引的页面索引。 有效范围：从0到(count-1)。count是 相关PDF文档的页面数，可通过函数 PDFDoc::GetPageCount 获取。

返回
  标签前缀字符串。空字符串表示未使用前缀字符串或 输入页面索引没有页面标签。可以使用函数 PageLabels::HasPageLabel 来检查输入页面索引是否具有页面标签。

## ◆ GetPageLabelStart()

int foxit::pdf::PageLabels::GetPageLabelStart | ( | int | page_index | ) | const

获取指定页面索引的页面标签（作为编号格式）中第一个页面标签的数字部分值。

后续页面从此值开始顺序编号，直到出现下一个页面标签范围。 此值必须大于或等于1。
此函数仅在输入页面索引具有页面标签时有用——这意味着页面索引是 页面标签范围的起始页面索引。可以使用函数 PageLabels::HasPageLabel 来检查页面索引是否具有页面标签。 如果输入页面索引没有页面标签，此函数将返回-1。

参数

  [in] | page_index | 作为页面标签范围起始页面索引的页面索引。 有效范围：从0到(count-1)。count是 相关PDF文档的页面数，可通过函数 PDFDoc::GetPageCount 获取。

返回
  指定标签范围中第一个页面标签的数字部分值， 该值将大于或等于1。 -1表示未定义第一个标签编号或输入页面索引没有页面标签。 可以使用函数 PageLabels::HasPageLabel 来检查输入页面索引是否具有页面标签。

## ◆ GetPageLabelStyle()

Style foxit::pdf::PageLabels::GetPageLabelStyle | ( | int | page_index | ) | const

获取指定页面索引的页面标签（作为编号格式）中数字部分使用的编号样式。

此函数仅在输入页面索引具有页面标签时有用——这意味着页面索引是 页面标签范围的起始页面索引。可以使用函数 PageLabels::HasPageLabel 来检查页面索引是否具有页面标签。 如果输入页面索引没有页面标签，此函数将返回-1。

参数

  [in] | page_index | 作为页面标签范围起始页面索引的页面索引。 有效范围：从0到(count-1)。count是 相关PDF文档的页面数，可通过函数 PDFDoc::GetPageCount 获取。

返回
  编号样式。请参考从 PageLabels::e_None 开始的值， 将是这些值中的一个。
  -1 表示输入页面索引没有页面标签。

## ◆ GetPageLabelTitle()

WString foxit::pdf::PageLabels::GetPageLabelTitle | ( | int | page_index | ) | const

获取由页面索引指定的页面的完整页面标签标题。

此函数可以帮助直接获取指定页面索引的完整页面标签标题， 用户不需要关心此页面属于哪个页面标签范围。
只有当相关PDF文档没有任何页面标签范围信息时， 此函数才会为每个有效页面索引返回空字符串。

参数

  [in] | page_index | 页面索引。有效范围：从0到(count-1)。count是 相关PDF文档的页面数，可通过函数 PDFDoc::GetPageCount 获取。

返回
  页面标签完整标题字符串。

## ◆ HasPageLabel()

bool foxit::pdf::PageLabels::HasPageLabel | ( | int | page_index | ) |

检查是否为指定页面索引定义了页面标签（作为编号格式）。

对于每个页面标签范围，页面标签（作为编号格式）由其起始页面索引定义。

参数

  [in] | page_index | 页面索引。有效范围：从0到(count-1)。count是 相关PDF文档的页面数，可通过函数 PDFDoc::GetPageCount 获取。

返回
  true 表示输入页面索引存在已定义的页面标签， false 表示输入页面索引没有定义的页面标签。

## ◆ IsEmpty()

bool foxit::pdf::PageLabels::IsEmpty | ( |  | ) | const

检查当前对象是否为空。

当前对象为空时，表示当前对象无用。

返回
  true 表示当前对象为空，false 表示不为空。

## ◆ operator!=()

bool foxit::pdf::PageLabels::operator!= | ( | const PageLabels & | other | ) | const

不相等操作符。

参数

  [in] | other | 另一个页面标签对象。此函数将检查当前对象是否不等于此对象。

返回
  true 表示不相等，false 表示相等。

## ◆ operator=()

PageLabels& foxit::pdf::PageLabels::operator= | ( | const PageLabels & | other | ) |

赋值操作符。

参数

  [in] | other | 另一个页面标签对象，其值将被赋予当前对象。

返回
  当前对象本身的引用。

## ◆ operator==()

bool foxit::pdf::PageLabels::operator== | ( | const PageLabels & | other | ) | const

相等操作符。

参数

  [in] | other | 另一个页面标签对象。此函数将检查当前对象是否等于此对象。

返回
  true 表示相等，false 表示不相等。

## ◆ RemoveAll()

void foxit::pdf::PageLabels::RemoveAll | ( |  | ) |

移除所有页面标签。

返回
  无。

## ◆ RemovePageLabel()

void foxit::pdf::PageLabels::RemovePageLabel | ( | int | page_index | ) |

移除用指定页面索引定义的页面标签（作为编号格式）。

指定页面标签被移除后，相关标签范围将合并到 前一个页面标签范围序列中。
根据 <PDF reference 1.7> 第8.3.1节"Page Labels"的要求，需要用 页面索引0定义的页面标签。因此建议用户不要单独移除页面索引0的页面标签。

参数

  [in] | page_index | 作为页面标签范围起始页面索引的页面索引。 有效范围：从0到(count-1)。count是 相关PDF文档的页面数，可通过函数 PDFDoc::GetPageCount 获取。 根据 <PDF reference 1.7> 第8.3.1节"Page Labels"的要求， 不建议单独移除用页面索引0定义的页面标签。

返回
  无。

## ◆ SetPageLabel()

void foxit::pdf::PageLabels::SetPageLabel | ( | int | page_index,
|  | Style | label_style,
|  | int | first_label_number,
|  | const WString & | prefix_string = `WString()`
| ) |  |

设置由页面索引定义的页面标签（作为编号格式），该页面索引是范围的起始页面索引。

- 如果相关PDF文档中没有任何页面标签范围，此函数将设置输入页面索引作为 新页面标签范围的起始页面，并使用输入值作为此新范围的页面标签（作为编号格式）。 指定页面之后的页面将在同一标签范围中，直到出现下一个页面标签范围。 特别地，在这种情况下，如果输入页面索引不是0， 此函数还将为索引0添加新的页面标签，默认情况下没有标签样式、没有前缀、 第一个标签编号=1——这是 <PDF reference 1.7> 第8.3.1节"Page Labels"中的要求。
- 如果输入页面索引没有页面标签，此函数将设置输入页面索引作为 新页面标签范围的起始页面，并使用输入值作为此新范围的页面标签（作为编号格式）。 指定页面之后的页面将在同一标签范围中，直到出现下一个页面标签范围。
- 如果输入页面索引存在页面标签，此函数将 用输入值替换旧的页面标签（作为编号格式）。

参数

  [in] | page_index | 作为页面标签范围起始页面索引的页面索引。 有效范围：从0到(count-1)。count是 相关PDF文档的页面数，可通过函数 PDFDoc::GetPageCount 获取。
  [in] | label_style | 页面标签范围中数字部分使用的编号样式。 请参考从 PageLabels::e_None 开始的值， 应该是这些值中的一个。
  [in] | first_label_number | 页面标签范围中第一个页面标签的数字部分值。 应该大于或等于1。 如果输入值无效，Foxit PDF SDK将默认使用1。
  [in] | prefix_string | 标签范围中页面标签的标签前缀字符串。 可以是空字符串，表示不使用前缀字符串。 默认值：空字符串。

返回
  无。