Foxit PDF SDK

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

## Public 类型
enum | Type { e_InvalidType = 0, e_Boolean = 1, e_Number = 2, e_String = 3, e_Name = 4, e_Array = 5, e_Dictionary = 6, e_Stream = 7, e_Null = 8, e_Reference = 9 }
| PDF对象类型的枚举。 更多...

## Public 成员函数
PDFObject * | CloneObject () const
| 克隆当前PDF对象并获取克隆的PDF对象。 更多...
PDFObject * | DeepCloneObject () const
| 克隆当前PDF对象并获取克隆的PDF对象。 更多...
PDFArray * | GetArray ()
| 获取当前PDF对象的PDF数组对象。 更多...
bool | GetBoolean () const
| 获取当前PDF对象的布尔值。 更多...
DateTime | GetDateTime () const
| 获取当前PDF对象的日期时间值。 更多...
PDFDictionary * | GetDict ()
| 获取当前PDF对象的PDF字典对象。 更多...
PDFObject * | GetDirectObject () const
| 获取当前PDF对象的直接对象。 更多...
float | GetFloat () const
| 获取当前PDF对象的浮点数值。 更多...
int | GetInteger () const
| 获取当前PDF对象的整数值。 更多...
Matrix | GetMatrix () const
| 获取当前PDF对象的矩阵值。 更多...
String | GetName () const
| 获取当前PDF对象的名称值。 更多...
uint32 | GetObjNum () const
| 获取当前PDF对象的间接对象编号。 更多...
RectF | GetRect () const
| 获取当前PDF对象的矩形值。 更多...
PDFStream * | GetStream ()
| 获取当前PDF对象的PDF流对象。 更多...
String | GetString () const
| 获取当前PDF对象的字符串值。 更多...
Type | GetType () const
| 获取当前PDF对象的类型。 更多...
WString | GetWideString () const
| 获取当前PDF对象的宽字符串值。 更多...
bool | IsIdentical (PDFObject *pdf_obj) const
| 检查输入的PDF对象是否与当前PDF对象相同。 更多...
void | Release ()
| 释放新创建的PDF对象或克隆PDF对象， 该对象与PDF文档或其他PDF对象无关且不会再使用。 更多...

## 静态 Public 成员函数
static PDFObject * | CreateFromBoolean (bool boolean_value)
| 从布尔值创建PDF对象。 更多...
static PDFObject * | CreateFromDateTime (const DateTime &date_time)
| 从日期时间创建PDF对象。 更多...
static PDFObject * | CreateFromFloat (float float_value)
| 从浮点数创建PDF对象。 更多...
static PDFObject * | CreateFromInteger (int integer_value)
| Create a PDF object from a integer number. 更多...
static PDFObject * | CreateFromName (const char *name)
| 从表示名称的字符串创建PDF对象。 更多...
static PDFObject * | CreateFromNameW (const wchar_t *name)
| 从表示名称的字符串创建PDF对象。 更多...
static PDFObject * | CreateFromString (const wchar_t *string_value)
| 从字符串创建PDF对象。 更多...
static PDFObject * | CreateFromString (const wchar_t *string_value, int length)
| 从字符串创建PDF对象。 更多...
static PDFObject * | CreateReference (PDFDoc document, uint32 object_number)
| 为间接对象创建引用。 更多...

## 详细描述

PDF支持八种基本类型的对象：
“布尔值”、“整数和实数”、“字符串”、“名称”、 “数组”、“字典”、“流”、“空对象”。有关PDF对象的更多详细信息， 请参考<PDF Reference 1.7>中的第3.2节“对象”。
类PDFObject是所有类型PDF对象的基类。它提供了不同的函数来 创建不同类型的PDF对象。对于“数组”、“字典”和“流”PDF对象，请参考 派生类objects::PDFArray、objects::PDFDictionary和PDFStream。
如果用户想要将新创建的PDF对象设为间接对象，请调用函数 pdf::PDFDoc::AddIndirectObject。

参见
  PDFArray
  PDFDictionary
  PDFStream
  pdf::PDFDoc

## 成员枚举类型说明

## ◆ Type

enum foxit::pdf::objects::PDFObject::Type

PDF对象类型的枚举。

此枚举的值应单独使用。

枚举值
e_InvalidType | 无效的PDF对象类型。
e_Boolean | PDF布尔对象。
e_Number | PDF数字对象。
e_String | PDF字符串对象。
e_Name | PDF名称对象。
e_Array | PDF数组对象。
e_Dictionary | PDF字典对象。
e_Stream | PDF流对象。
e_Null | PDF空对象。
e_Reference | PDF引用对象。

## 成员函数说明

## ◆ CloneObject()

PDFObject* foxit::pdf::objects::PDFObject::CloneObject | ( |  | ) | const

克隆当前PDF对象并获取克隆的PDF对象。

如果新对象尚未添加/设置到PDF文档或其他PDF对象中且不会再使用， 请调用PDFObject::Release来释放该对象。

返回
  一个新的PDFObject对象作为克隆结果。 如果有任何错误，此函数将返回NULL。

## ◆ CreateFromBoolean()

static PDFObject* foxit::pdf::objects::PDFObject::CreateFromBoolean | ( | bool | boolean_value | ) |
| static

从布尔值创建PDF对象。

如果创建的对象尚未添加/设置到PDF文档或其他PDF对象中且不会再使用， 请调用函数PDFObject::Release来释放该对象。

参数

  [in] | boolean_value | 一个布尔值。

返回
  一个新的PDFObject对象，其对象类型为PDFObject::e_Boolean。 如果有任何错误，此函数将返回NULL。

## ◆ CreateFromDateTime()

static PDFObject* foxit::pdf::objects::PDFObject::CreateFromDateTime | ( | const DateTime & | date_time | ) |
| static

从日期时间创建PDF对象。

PDF定义了一种标准的日期格式，它严格遵循 国际标准ASN.1（抽象语法记号法一），定义于ISO/ IEC 8824（请参阅参考文献）。日期被定义为以下形式的ASCII字符串 (D:YYYYMMDDHHmmSSOHH'mm')。 如果创建的对象尚未添加/设置到PDF文档或其他PDF对象中且不会再使用， 请调用函数PDFObject::Release来释放该对象。

参数

  [in] | date_time | 一个日期和时间对象。

返回
  一个新的PDFObject对象，其对象类型为PDFObject::e_String。 如果有任何错误，此函数将返回NULL。

## ◆ CreateFromFloat()

static PDFObject* foxit::pdf::objects::PDFObject::CreateFromFloat | ( | float | float_value | ) |
| static

从浮点数创建PDF对象。

如果创建的对象尚未添加/设置到PDF文档或其他PDF对象中且不会再使用， 请调用函数PDFObject::Release来释放该对象。

参数

  [in] | float_value | 一个浮点值。

返回
  一个新的PDFObject对象，其对象类型为PDFObject::e_Number。 如果有任何错误，此函数将返回NULL。

## ◆ CreateFromInteger()

static PDFObject* foxit::pdf::objects::PDFObject::CreateFromInteger | ( | int | integer_value | ) |
| static

Create a PDF object from a integer number.

如果创建的对象尚未添加/设置到PDF文档或其他PDF对象中且不会再使用， 请调用函数PDFObject::Release来释放该对象。

参数

  [in] | integer_value | 一个整数值。

返回
  一个新的PDFObject对象，其对象类型为PDFObject::e_Number。 如果有任何错误，此函数将返回NULL。

## ◆ CreateFromName()

static PDFObject* foxit::pdf::objects::PDFObject::CreateFromName | ( | const char * | name | ) |
| static

从表示名称的字符串创建PDF对象。

如果创建的对象尚未添加/设置到PDF文档或其他PDF对象中且不会再使用， 请调用函数PDFObject::Release来释放该对象。

参数

  [in] | name | 一个字符串。不应为空字符串。

返回
  一个新的PDFObject对象，其对象类型为PDFObject::e_Name。 如果有任何错误，此函数将返回NULL。

## ◆ CreateFromNameW()

static PDFObject* foxit::pdf::objects::PDFObject::CreateFromNameW | ( | const wchar_t * | name | ) |
| static

从表示名称的字符串创建PDF对象。

参数

  [in] | name | 一个字符串。不应为空字符串。

返回
  一个新的PDFObject对象，其对象类型为PDFObject::e_Name。 如果创建的对象尚未添加/设置到PDF文档或其他PDF对象中且不会再使用， 请调用函数PDFObject::Release来释放该对象。

## ◆ CreateFromString() [1/2]

static PDFObject* foxit::pdf::objects::PDFObject::CreateFromString | ( | const wchar_t * | string_value | ) |
| static

从字符串创建PDF对象。

如果创建的对象尚未添加/设置到PDF文档或其他PDF对象中且不会再使用， 请调用函数PDFObject::Release来释放该对象。

参数

  [in] | string_value | 一个字符串。不应为空字符串。

返回
  一个PDFObject对象，其对象类型为PDFObject::e_String。 如果有任何错误，此函数将返回NULL。

## ◆ CreateFromString() [2/2]

static PDFObject* foxit::pdf::objects::PDFObject::CreateFromString | ( | const wchar_t * | string_value,
|  | int | length
| ) |  |
| static

从字符串创建PDF对象。

如果创建的对象尚未添加/设置到PDF文档或其他PDF对象中且不会再使用， 请调用函数PDFObject::Release来释放该对象。

参数

  [in] | string_value | 一个字符串。不应为空字符串。
  [in] | length | 宽字符串的长度。长度应该是正值或-1。 值-1表示以零结尾的宽字符串。

返回
  一个PDFObject对象，其对象类型为PDFObject::e_String。 如果有任何错误，此函数将返回NULL。

## ◆ CreateReference()

static PDFObject* foxit::pdf::objects::PDFObject::CreateReference | ( | PDFDoc | document,
|  | uint32 | object_number
| ) |  |
| static

为间接对象创建引用。

可以通过以下方法获取间接对象：

- 由函数pdf::PDFDoc::GetIndirectObject返回。
- 由函数pdf::PDFDoc::AddIndirectObject返回，当尝试将直接PDF对象 添加到PDF文档并使其成为间接对象时。

如果创建的对象尚未添加/设置到PDF文档或其他PDF对象中且不会再使用， 请调用函数PDFObject::Release来释放该对象。

参数

  [in] | document | 一个有效的PDF文档对象。
  [in] | object_number | 间接PDF对象的间接对象编号。该值应大于0。

返回
  一个新的PDFObject对象，其对象类型为PDFObject::e_Reference。 如果有任何错误，此函数将返回NULL。

## ◆ DeepCloneObject()

PDFObject* foxit::pdf::objects::PDFObject::DeepCloneObject | ( |  | ) | const

克隆当前PDF对象并获取克隆的PDF对象。

此函数是完全的直接复制，内部没有任何引用对象， 因此复制的对象可以被复制到另一个文档。 如枟新对象尚未添加/设置到PDF文档或其他PDF对象中且不会再使用， 请调用PDFObject::Release来释放该对象。

返回
  一个新的PDFObject对象作为克隆结果。 如果有任何错误，此函数将返回NULL。

## ◆ GetArray()

PDFArray* foxit::pdf::objects::PDFObject::GetArray | ( |  | ) |

获取当前PDF对象的PDF数组对象。

如果当前PDF对象的类型是PDFObject::e_Reference， 此函数将检查当前PDF对象的直接PDF对象。

返回
  一个PDF数组对象。如果当前PDF对象或直接PDF对象不是PDF数组， 将返回NULL。

## ◆ GetBoolean()

bool foxit::pdf::objects::PDFObject::GetBoolean | ( |  | ) | const

获取当前PDF对象的布尔值。

仅当当前PDF对象的类型为PDFObject::e_Boolean时有用。

返回
  布尔值。对于其他类型的PDF对象，将返回false。

## ◆ GetDateTime()

DateTime foxit::pdf::objects::PDFObject::GetDateTime | ( |  | ) | const

获取当前PDF对象的日期时间值。

仅当当前PDF对象的类型为PDFObject::e_String 且其内容为PDF标准日期格式时有用。

返回
  日期时间信息。如果有任何错误或当前对象为其他类型， 将返回一个空的日期和时间对象。

## ◆ GetDict()

PDFDictionary* foxit::pdf::objects::PDFObject::GetDict | ( |  | ) |

获取当前PDF对象的PDF字典对象。

如果当前PDF对象的类型是PDFObject::e_Reference， 此函数将检查当前PDF对象的直接PDF对象。

返回
  一个PDF字典对象。如果当前PDF对象或直接PDF对象不是PDF字典， 将返回NULL。

## ◆ GetDirectObject()

PDFObject* foxit::pdf::objects::PDFObject::GetDirectObject | ( |  | ) | const

获取当前PDF对象的直接对象。

如果当前PDF对象的类型是PDFObject::e_Reference， 将返回直接对象。

返回
  直接PDF对象。对于其他类型的PDF对象，此函数将返回当前PDF对象本身。 如果有任何错误，此函数将返回NULL。

## ◆ GetFloat()

float foxit::pdf::objects::PDFObject::GetFloat | ( |  | ) | const

获取当前PDF对象的浮点数值。

仅当当前PDF对象的类型为PDFObject::e_Number时有用。

返回
  浮点数值。对于其他类型的PDF对象，将返回0.0f。

## ◆ GetInteger()

int foxit::pdf::objects::PDFObject::GetInteger | ( |  | ) | const

获取当前PDF对象的整数值。

仅当当前PDF对象的类型为PDFObject::e_Number时有用。

返回
  整数值。对于其他类型的PDF对象，将返回0。

## ◆ GetMatrix()

Matrix foxit::pdf::objects::PDFObject::GetMatrix | ( |  | ) | const

获取当前PDF对象的矩阵值。

仅对类型为PDFObject::e_Array且 包含6个数字对象作为元素的PDF对象有用。

返回
  一个矩阵。如果有任何错误或当前对象为其他类型， 将返回值为[0 0 0 0 0 0]的矩阵。

## ◆ GetName()

String foxit::pdf::objects::PDFObject::GetName | ( |  | ) | const

获取当前PDF对象的名称值。

仅当当前PDF对象的类型为 PDFObject::e_Name或PDFObject::e_String时有用。

返回
  表示该值的字符串。如果有任何错误或当前对象为其他类型， 将返回空字符串。

## ◆ GetObjNum()

uint32 foxit::pdf::objects::PDFObject::GetObjNum | ( |  | ) | const

获取当前PDF对象的间接对象编号。

返回
  间接对象编号。它可能是：
  - 0，如果当前PDF对象是直接对象。
  - 大于0，如果当前PDF对象是间接对象。
  - -1表示有任何错误。

## ◆ GetRect()

RectF foxit::pdf::objects::PDFObject::GetRect | ( |  | ) | const

获取当前PDF对象的矩形值。

仅对类型为PDFObject::e_Array且 包含4个数字对象作为元素的PDF对象有用。

返回
  一个矩形。如果有任何错误或当前对象为其他类型， 将返回值为[0 0 0 0]的矩形。

## ◆ GetStream()

PDFStream* foxit::pdf::objects::PDFObject::GetStream | ( |  | ) |

获取当前PDF对象的PDF流对象。

如果当前PDF对象的类型是PDFObject::e_Reference， 此函数将检查当前PDF对象的直接PDF对象。

返回
  一个PDF流对象。如果当前PDF对象或直接PDF对象不是PDF流， 将返回NULL。

## ◆ GetString()

String foxit::pdf::objects::PDFObject::GetString | ( |  | ) | const

获取当前PDF对象的字符串值。

此函数将获取当前PDF对象实际值的字符串格式：

- 如果对象类型为PDFObject::e_Boolean， 将返回"true"或"false"字符串值，具体取决于其实际值。
- 如枟对象类型为PDFObject::e_Number， 该值将被表示为字符串。例如，值1.5将表示为"1.5"字符串。
- 如果对象类型为PDFObject::e_String，将 直接检索字符串值。

如果当前PDF对象的值无法转换为有效的字符串，将返回空字符串。

返回
  一个字符串。

## ◆ GetType()

Type foxit::pdf::objects::PDFObject::GetType | ( |  | ) | const

获取当前PDF对象的类型。

返回
  PDF对象类型。请参考从PDFObject::e_Boolean开始的值， 此值将是这些值之一。

## ◆ GetWideString()

WString foxit::pdf::objects::PDFObject::GetWideString | ( |  | ) | const

获取当前PDF对象的宽字符串值。

此函数将获取当前PDF对象实际值的字符串格式：

- 如果对象类型为PDFObject::e_Boolean， 将返回"true"或"false"字符串值，具体取决于其实际值。
- 如果对象类型为PDFObject::e_Number， 该值将被表示为字符串。例如，值1.5将表示为"1.5"字符串。
- 如果对象类型为PDFObject::e_String，将 直接检索字符串值。

如果当前PDF对象的值无法转换为有效的字符串，将返回空字符串。

返回
  一个字符串。

## ◆ IsIdentical()

bool foxit::pdf::objects::PDFObject::IsIdentical | ( | PDFObject * | pdf_obj | ) | const

检查输入的PDF对象是否与当前PDF对象相同。

参数

  [in] | pdf_obj | 另一个PDF对象，将与当前PDF对象进行比较。

返回
  true表示输入的PDF对象与当前PDF对象相同， 而false表示输入的PDF对象与当前PDF对象不相同。

## ◆ Release()

void foxit::pdf::objects::PDFObject::Release | ( |  | ) |

释放新创建的PDF对象或克隆PDF对象， 该对象与PDF文档或其他PDF对象无关且不会再使用。

此函数应仅用于新创建的PDF对象或克隆的PDF对象， 该对象尚未被添加或设置到其他PDF对象或与PDF文档相关联， 且不会再使用。请勿在其他情况下使用此函数， 否则可能会发生未知错误。

返回
  无。