Foxit PDF SDK
foxit::pdf::objects::PDFStream类 参考
类 foxit::pdf::objects::PDFStream 继承关系图:
foxit::pdf::objects::PDFObject

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::ReaderCallbackExportData (bool is_raw_data)
 导出流数据。 更多...
 
bool GetData (bool is_raw_data, size_t size, void *out_buffer)
 获取流数据。 更多...
 
uint64 GetDataSize (bool is_raw_data)
 获取流数据的大小,以字节为单位。 更多...
 
PDFDictionaryGetDictionary ()
 获取与当前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
PDFObjectCloneObject () const
 克隆当前PDF对象并获取克隆的PDF对象。 更多...
 
PDFObjectDeepCloneObject () const
 克隆当前PDF对象并获取克隆的PDF对象。 更多...
 
PDFArrayGetArray ()
 获取当前PDF对象的PDF数组对象。 更多...
 
bool GetBoolean () const
 获取当前PDF对象的布尔值。 更多...
 
DateTime GetDateTime () const
 获取当前PDF对象的日期时间值。 更多...
 
PDFDictionaryGetDict ()
 获取当前PDF对象的PDF字典对象。 更多...
 
PDFObjectGetDirectObject () 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对象的矩形值。 更多...
 
PDFStreamGetStream ()
 获取当前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 PDFStreamCreate (PDFDictionary *dictionary)
 基于字典创建新的流对象。 更多...
 
- 静态 Public 成员函数 继承自 foxit::pdf::objects::PDFObject
static PDFObjectCreateFromBoolean (bool boolean_value)
 从布尔值创建PDF对象。 更多...
 
static PDFObjectCreateFromDateTime (const DateTime &date_time)
 从日期时间创建PDF对象。 更多...
 
static PDFObjectCreateFromFloat (float float_value)
 从浮点数创建PDF对象。 更多...
 
static PDFObjectCreateFromInteger (int integer_value)
 Create a PDF object from a integer number. 更多...
 
static PDFObjectCreateFromName (const char *name)
 从表示名称的字符串创建PDF对象。 更多...
 
static PDFObjectCreateFromNameW (const wchar_t *name)
 从表示名称的字符串创建PDF对象。 更多...
 
static PDFObjectCreateFromString (const wchar_t *string_value)
 从字符串创建PDF对象。 更多...
 
static PDFObjectCreateFromString (const wchar_t *string_value, int length)
 从字符串创建PDF对象。 更多...
 
static PDFObjectCreateReference (PDFDoc document, uint32 object_number)
 为间接对象创建引用。 更多...
 

详细描述

PDF流对象由一个直接字典对象和流数据组成。 有关更多详细信息,请参阅<PDF Reference 1.7>中的第3.2.7节“流对象”。
objects::PDFStream派生自PDFObject,并提供函数来创建新的PDF流对象以及 获取/设置流数据。

参见
PDFObject

成员枚举类型说明

◆ 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的大小,以字节为单位。
返回
无。