Foxit PDF SDK

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

## Public 类型
enum | Filter { e_Unknown = -1, e_NoneDecode = 0, e_ASCIIHexDecode = 1, e_ASCII85Decode = 2, e_LZWDecode = 3, e_FlateDecode = 4, e_RunLengthDecode = 5, e_CCITTFaxDecode = 6, e_JBIG2Decode = 7, e_DCTDecode = 8, e_JPXDecode = 9, e_Crypt = 10 }
| 流过滤器类型的枚举。 更多...
Public 类型 继承自 foxit::pdf::objects::PDFObject
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 成员函数
common::file::ReaderCallback * | ExportData (bool is_raw_data)
| 导出流数据。 更多...
bool | GetData (bool is_raw_data, size_t size, void *out_buffer)
| 获取流数据。 更多...
uint64 | GetDataSize (bool is_raw_data)
| 获取流数据的大小，以字节为单位。 更多...
PDFDictionary * | GetDictionary ()
| 获取与当前PDF流对象关联的PDF字典对象。 更多...
Filter | GetStreamFilter ()
| 获取流过滤器的类型，该类型指示在使用数据之前必须如何解码流数据。 更多...
void | ImportData (common::file::ReaderCallback *file_read, Filter stream_filter)
| 导入流数据。 更多...
void | SetData (const void *buffer, size_t size)
| 设置流数据。 更多...
Public 成员函数 继承自 foxit::pdf::objects::PDFObject
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 PDFStream * | Create (PDFDictionary *dictionary)
| 基于字典创建新的流对象。 更多...
静态 Public 成员函数 继承自 foxit::pdf::objects::PDFObject
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 Reference 1.7>中的第3.2.7节“流对象”。
类objects::PDFStream派生自PDFObject，并提供函数来创建新的PDF流对象以及 获取/设置流数据。

参见
  PDFObject

## 成员枚举类型说明

## ◆ Filter

enum foxit::pdf::objects::PDFStream::Filter

流过滤器类型的枚举。

此枚举的值应单独使用。 流过滤器指示必须如何解码PDF流中的数据 以便使用该数据。

枚举值
e_Unknown | 未知过滤器类型。
e_NoneDecode | 无需解码流数据。
e_ASCIIHexDecode | 过滤器类型：ASCIIHexDecode，表示解码以ASCII十六进制表示编码的数据， 重现原始二进制数据。
e_ASCII85Decode | 过滤器类型：ASCII85Decode，表示解码以ASCII base-85表示编码的数据， 重现原始二进制数据。
e_LZWDecode | 过滤器类型：LZWDecode，表示解压使用LZW(Lempel-Ziv-Welch) 自适应压缩方法编码的数据，重现原始文本或二进制数据。
e_FlateDecode | 过滤器类型：FlateDecode，表示解压使用zlib/deflate压缩方法编码的数据， 重现原始文本或二进制数据。
e_RunLengthDecode | 过滤器类型：RunLengthDecode，表示解压 使用面向字节的游程长度编码算法编码的数据， 重现原始文本或二进制数据（通常是单色图像数据， 或任何包含频繁长连续单个字节值的数据）。
e_CCITTFaxDecode | 过滤器类型：CCITTFaxDecode，表示解压使用CCITT传真标准编码的数据， 重现原始数据（通常是每像素为1比特的单色图像数据）。
e_JBIG2Decode | 过滤器类型：JBIG2Decode，表示解压使用JBIG2标准编码的数据， 重现原始单色（每像素为1比特）图像数据（或该数据的近似值）。
e_DCTDecode | 过滤器类型：DCTDecode，表示解压使用基于JPEG标准的DCT（离散余弦变换） 技术编码的数据，重现接近原始数据的图像样本数据。
e_JPXDecode | 过滤器类型：JPXDecode，表示解压使用基于小波的 JPEG2000标准编码的数据，重现原始图像数据。
e_Crypt | 过滤器类型：Crypt，表示解密由安全处理程序加密的数据， 重现加密前的原始数据。

## 成员函数说明

## ◆ Create()

static PDFStream* foxit::pdf::objects::PDFStream::Create | ( | PDFDictionary * | dictionary | ) |
| static

基于字典创建新的流对象。

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

参数

  [in] | dictionary | 一个PDF字典对象： 如果为NULL，将基于 空的PDF字典创建PDF流对象。 如果不是NULL，在成功创建PDF流对象后， 请勿对此PDF字典对象调用PDFObject::Release。

返回
  一个新的PDFStream对象。如果有任何错误，此函数将返回NULL。

## ◆ ExportData()

common::file::ReaderCallback* foxit::pdf::objects::PDFStream::ExportData | ( | bool | is_raw_data | ) |

导出流数据。

此函数提供了一种高效的方式来获取流数据，尤其是对于大型流数据。

参数

  [in] | is_raw_data | 一个布尔值，指示是否获取原始数据： true表示获取原始数据，false表示 获取解码后的数据（原始数据）。

返回
  一个common::file::ReaderCallback对象，可用于读取流数据。 请记得使用返回的common::file::ReaderCallback对象的Release()回调函数 来释放此common::file::ReaderCallback对象，当不再使用它时。

注解
  如果当前流对象被释放或相关PDF文档被关闭， 请勿再使用返回的common::file::ReaderCallback对象；否则，将发生意外错误或崩溃。

## ◆ GetData()

bool foxit::pdf::objects::PDFStream::GetData | ( | bool | is_raw_data,
|  | size_t | size,
|  | void * | out_buffer
| ) |  |

获取流数据。

调用此函数时，用户应传递一个具有足够大小的内存块来检索数据。 建议用户调用函数PDFStream::GetDataSize（使用相同的参数 is_raw_data）来获取预期大小，然后准备内存块，然后 调用此函数来获取数据。

参数

  [in] | is_raw_data | 一个布尔值，指示是否获取原始数据： true表示获取原始数据，false表示 获取解码后的数据（原始数据）。
  [in] | size | 参数out_buffer的大小，以字节为单位。 它应该等于或大于实际数据大小。
  [out] | out_buffer | 一个内存块（具有足够的大小）用作输出参数来接收流数据。 它不应为NULL。

返回
  true表示成功，而false表示失败。

## ◆ GetDataSize()

uint64 foxit::pdf::objects::PDFStream::GetDataSize | ( | bool | is_raw_data | ) |

获取流数据的大小，以字节为单位。

参数

  [in] | is_raw_data | 一个布尔值，指示是否获取原始数据： true表示获取原始数据，false表示 获取解码后的数据（原始数据）。

返回
  数据大小，以字节为单位。

## ◆ GetDictionary()

PDFDictionary* foxit::pdf::objects::PDFStream::GetDictionary | ( |  | ) |

获取与当前PDF流对象关联的PDF字典对象。

返回
  流字典。 如果有任何错误，此函数将返回NULL。

## ◆ GetStreamFilter()

Filter foxit::pdf::objects::PDFStream::GetStreamFilter | ( |  | ) |

获取流过滤器的类型，该类型指示在使用数据之前必须如何解码流数据。

返回
  流过滤器的类型。请参考从PDFStream::e_Unknown开始的值， 此值将是这些值之一。

## ◆ ImportData()

void foxit::pdf::objects::PDFStream::ImportData | ( | common::file::ReaderCallback * | file_read,
|  | Filter | stream_filter
| ) |  |

导入流数据。

参数

  [in] | file_read | 一个由用户实现的common::file::ReaderCallback对象。Foxit PDF SDK将使用它来 读取流数据并设置到当前PDF流对象。用户应保持 此回调有效，直到相关的PDF文档关闭或当前流对象 因无用而被释放。
  [in] | stream_filter | 流过滤器的类型，指定如何解码通过参数file_read读取的数据。 请参考从PDFStream::e_NoneDecode开始的值，此值应是这些值之一，但 PDFStream::e_Unknown除外。

返回
  无。

## ◆ SetData()

void foxit::pdf::objects::PDFStream::SetData | ( | const void * | buffer,
|  | size_t | size
| ) |  |

设置流数据。

参数

  [in] | buffer | 一个内存块，表示要设置的新流数据。
  [in] | size | 参数buffer的大小，以字节为单位。

返回
  无。