7.1.1 详细描述
所有PoDoFo的类、函数、类型和枚举都是这些名称空间的成员。如果你使用PoDoFo,你可能想要添加这一行: using namespace PoDoFo; 到你的应用程序中。PODOFO_USE_UNORDERED_MAP
如果你设置了这个定义,PoDoFo 在PdfDictionary 中将用std::tr1::unordered_map 代替std::map 。
一些基准测试使用反复的简单调用来演示unordered_map对于写和AddKey是更快的,当然对GetKey和HasKey来说就慢了。PdfDictionaries对GetKey来说通常是非常小的差异,而对HasKey的差异也不是很大,因此应该是很少值得注意的。
默认这个定义是没有设置的,而std::map将被使用。
7.1.2 Typedef文档
7.1.2.1 typedef std::vector
这个类表示一个PdfArray。它用到于写入到PDF文件的所有数组。
一个PdfArray 能够容纳任何的PdfVariant.
另请参见
PdfVariant
7.1.3 枚举类型文档
7.1.3.1 enumPoDoFo::ELogSeverity
用在PdfError::LogMessage 以指定日志级别。
另请参见
PdfError::LogMessage
枚举符:
eLogSeverity_Critical 关键的意外错误
eLogSeverity_Error 错误
eLogSeverity_Warning 警告
eLogSeverity_Information 消息信息
eLogSeverity_Debug 调试信息
eLogSeverity_None 没有指定级别
eLogSeverity_Unknown 未知日志级别
7.1.3.2 enumPoDoFo::EPdfAction
动作的类型。PDF支持不同的动作类型,它们每一个都有不同的键和属性。
并不是所有在这儿列出的动作类型都被支持。
也请确保你所使用的动作类型是你用的PDF版本所支持的。
7.1.3.3 enumPoDoFo::EPdfAlignment
枚举文本的对齐方式
7.1.3.4 enumPoDoFo::EPdfAnnotation
注释的类型。PDF支持不同的注释类型,它们每一个都有不同的键和属性。
并不是所有在这儿列出的注释类型都被支持。
也请确保你所使用的注释类型是你用的PDF版本所支持的。
7.1.3.5 enumPoDoFo::EPdfAnnotationFlags
控制PdfAnnotation外观的标识。你可以OR它们在一起然后传给PdfAnnotation::SetFlags。
7.1.3.6 enumPoDoFo::EPdfColorSpace
枚举PDF支持的色彩空间
枚举符:
ePdfColorSpace_DeviceGray Gray
ePdfColorSpace_DeviceRGB RGB
ePdfColorSpace_DeviceCMYK CMYK
ePdfColorSpace_Separation Separation
ePdfColorSpace_CieLab CIE-Lab
7.1.3.7 enumPoDoFo::EPdfContentsType
一个描述读取令牌类型的枚举
枚举符:
ePdfContentsType_Keyword 令牌是一个PDF关键字。
ePdfContentsType_Variant 令牌是一个PDF变量。一个变量通常是一个关键字的参数。
ePdfContentsType_ImageData "令牌"是在ID和EI标签之间发现的原始的内联图像数据(见PDF参考4.8.6节)
7.1.3.8 enumPoDoFo::EPdfDataType
每一个能够出现在PDF文件中的PDF数据类型都是一个自己的枚举引用(例如 Bool 或 String)。
另请参见
PdfVariant
当在这儿添加成员的时候记得更新PdfVariant::GetDataTypeString()。
枚举符:
ePdfDataType_Bool 布尔数据类型:接受值"true"和 "false"
ePdfDataType_Number 整型值的数据类型
ePdfDataType_Real 浮点数的实数类型
ePdfDataType_String PDF文件中的字符类型。PDF文件中字符串有像(HalloWorld!)的形式。
另请参见
PdfString
ePdfDataType_HexString PDF文件中的十六进制字符串类型。在PDF文件中十六进制编码的字符串有像
另请参见
PdfString
ePdfDataType_Name 名称数据类型。名称用作字典中键引用值。
另请参见
PdfName
ePdfDataType_Array 其它PDF数据类型的一个数组
ePdfDataType_Dictionary 一个关联键与值的字典。一个键可以有其他的字典作为其值。
ePdfDataType_Null 空数据类型总是空的。
ePdfDataType_Reference 引用数据类型包含PDF文件中有4 0 R形式的对象的引用。
另请参见
PdfObject
ePdfDataType_RawData 原始PDF数据
ePdfDataType_Unknown 数据类型未知
7.1.3.9 enumPoDoFo::EPdfDestinationType
目的类型,按照Pdf规范12.3.2.2。 (参见pdf规范中的表151)
7.1.3.10 enumPoDoFo::EPdfError
在PdfError 中用来描述错误的错误码定义。
如果你在这个枚举中添加了一个错误码,也请将它添加到PdfError::ErrorName 和PdfError::ErrorMessage中。
另请参见
PdfError
枚举符:
ePdfError_ErrOk 默认值,表明没有错误。
ePdfError_TestFailed 用于PoDoFo 测试,表明因为某些原因测试失败。
ePdfError_InvalidHandle 空指针被传递了,但是空指针是不允许的。
ePdfError_FileNotFound 一个文件没有被发现或不能打开。
ePdfError_InvalidDeviceOperation 试着做一些一个I/O设备不支持的事情,像搜索一个不可搜索的输入设备。
ePdfError_UnexpectedEOF 文件结尾可达但数据不是所期望的。
ePdfError_OutOfMemory 没有足够的内存类完成一个操作。
ePdfError_ValueOutOfRange 指定的内存超出了允许的范围。
ePdfError_InternalLogic 一个内部完整性检查或断言失败。
ePdfError_InvalidEnumValue 一个无效的枚举值被指定。
ePdfError_PageNotFound 请求的页面在PDF中找不到。
ePdfError_NoPdfFile 文件不是PDF文件。
ePdfError_NoXRef PDF文件没有或者有一个无效的XRef表。
ePdfError_NoTrailer PDF文件没有或有一个无效的尾部。
ePdfError_NoNumber 在PDF中期望一个数据,但所读字符串没有数据。
ePdfError_NoObject 一个被期待的数据没有发现。
ePdfError_NoEOFToken PDF文件没有或有一个无效的EOF标记。
ePdfError_InvalidTrailerSize 尾部大小无效
ePdfError_InvalidLinearization 一个Web优化的PDF文件的 线性目录无效。
ePdfError_InvalidDataType 传递的数据类型无效或者不能被识别。
ePdfError_InvalidXRef XRef表无效
ePdfError_InvalidXRefStream XRef steam无效
ePdfError_InvalidXRefType XRef 类型无效或不能找到
ePdfError_InvalidPredictor 无效或未实现的预测子
ePdfError_InvalidStrokeStyle 绘图期间无效的存储样式
ePdfError_InvalidHexString 无效的十六进制字符串
ePdfError_InvalidStream 流无效
ePdfError_InvalidStreamLength 流长度无效
ePdfError_InvalidKey 指定的键无效
ePdfError_InvalidName 指定的名称在上下文中无效
ePdfError_InvalidEncryptionDict 加密字典无效或是丢失了一个必须的键
ePdfError_InvalidPassword 用来打开PDF文件的密码无效
ePdfError_InvalidFontFile 字体文件无效
ePdfError_InvalidContentStream 内容流因为不匹配上下文配对或其他问题而无效
ePdfError_UnsupportedFilter 请求的过滤器还没实现
ePdfError_UnsupportedFontFormat 这个字体格式不被PoDoFo支持
ePdfError_ActionAlreadyPresent 当试着添加一个目标的时候该动作已经存在
ePdfError_WrongDestinationType 请求的域对于给定的目标类型是无效的
ePdfError_MissingEndStream 请求的令牌结束流没有找到
ePdfError_Date 日期/时间错误
ePdfError_Flate zlib错误
ePdfError_FreeType FreeType 错误
ePdfError_SignatureError signature错误
ePdfError_MutexError 一个互斥操作期间的错误
ePdfError_UnsupportedImageFormat 这个图像格式不被PoDoFo所支持
ePdfError_CannotConvertColor 这个色彩格式不能被转换
ePdfError_NotImplemented 这个特性目前未实现
ePdfError_DestinationAlreadyPresent 当试着添加一个动作的时候目标已经存在
ePdfError_ChangeOnImmutable 更改不可改变的对象的值是不允许的
ePdfError_Unknown 未知错误
7.1.3.11 enumPoDoFo::EPdfField
PDF域类型
7.1.3.12 enumPoDoFo::EPdfFilter
在PDF中每一个可以用来编码流的过滤器都是它自己枚举值的引用。常见的过滤器是ePdfFilter_FlateDecode (即Zip) 或ePdfFilter_ASCIIHexDecode。
枚举符:
ePdfFilter_ASCIIHexDecode 在十六进制间转换数据。按照2! 系数增加数据大小。
另请参见
PdfHexFilter
ePdfFilter_ASCII85Decode 在Ascii85 编码间转换。
另可参见
PdfAscii85Filter
ePdfFilter_FlateDecode 用Zlib的Flate算法压缩数据。这个过滤器被建议总是使用。
另可参见
PdfFlateFilter
ePdfFilter_RunLengthDecode 解码数据运行长度
另可参见
PdfRLEFilter
7.1.3.13 enumPoDoFo::EPdfFontType
枚举PoDoFo 支持的不同的数据格式
7.1.3.14 enumPoDoFo::EPdfFunctionType
在一个PDF文件中一个数学函数的函数类型
枚举符:
ePdfFunctionType_Sampled 一个抽样的函数 (Type1).
ePdfFunctionType_Exponential 一个指数插值函数(Type2).
ePdfFunctionType_Stitching 一个拼接函数 (Type3).
ePdfFunctionType_PostScript 一个 PostScript 计算器函数(Type4).
7.1.3.15 enum PoDoFo::EPdfHighlightingMode
PdfField可能的高亮模式。 即当鼠标按下时要使用的视觉效果。
默认值是ePdfHighlightingMode_Invert
Enumerator:
ePdfHighlightingMode_None 没有高亮.
ePdfHighlightingMode_Invert 反转PdfField。
ePdfHighlightingMode_InvertOutline 反转域边框。
ePdfHighlightingMode_Push 显示域下凹外表(需要设置额外的外表流)。
7.1.3.16 enumPoDoFo::EPdfLineCapStyle
枚举绘图时的线帽风格。
7.1.3.17 enumPoDoFo::EPdfLineJoinStyle
枚举绘图时的线连接样式。
7.1.3.18 enumPoDoFo::EPdfOutlineFormat
PDF 1.4以后的大纲条目的标题可以被显示为不同的格式风格。
Enumerator:
ePdfOutlineFormat_Default 默认格式
ePdfOutlineFormat_Italic 斜体
ePdfOutlineFormat_Bold 粗体
ePdfOutlineFormat_BoldItalic 粗斜
7.1.3.19 enumPoDoFo::EPdfPageLayout
枚举了"PageLayouts"所支持的类型,它定义了Acrobat怎样显示彼此联系的页面
另可参见
PdfDocument
7.1.3.20 enumPoDoFo::EPdfPageMode
枚举了"PageModes"所支持的类型,它定义了在Acrobat中当文档打开时哪一个(如果有的话)"panels" 被打开。
另请参见
PdfDocument
7.1.3.21 enumPoDoFo::EPdfPageSize
枚举PoDoFo所支持的页面尺寸。可以用来构造测量页对象的PdfRect结构。
另可参见
PdfPage
Enumerator:
ePdfPageSize_A0 DIN A0
ePdfPageSize_A1 DIN A1
ePdfPageSize_A2 DIN A2
ePdfPageSize_A3 DIN A3
ePdfPageSize_A4 DIN A4
ePdfPageSize_A5 DIN A5
ePdfPageSize_A6 DIN A6
ePdfPageSize_Letter Letter
ePdfPageSize_Legal Legal
ePdfPageSize_Tabloid Tabloid
7.1.3.22 enumPoDoFo::EPdfStrokeStyle
枚举在一个PDF文件中能够被设置的笔触样式(主要用于画线)。
7.1.3.23 enumPoDoFo::EPdfVersion
枚举标识PDF文件格式的不同版本
Enumerator:
ePdfVersion_1_0 PDF 1.0
ePdfVersion_1_1 PDF 1.1
ePdfVersion_1_2 PDF 1.2
ePdfVersion_1_3 PDF 1.3
ePdfVersion_1_4 PDF 1.4
ePdfVersion_1_5 PDF 1.5
ePdfVersion_1_6 PDF 1.6
ePdfVersion_1_7 PDF 1.7
7.1.3.24 enum PoDoFo::EPdfVerticalAlignment
枚举垂直文本的对齐方式
7.1.3.25 enumPoDoFo::EPdfWriteMode
指定写PDF的额外选项。
枚举符:
ePdfWriteMode_Compact 试着尽可能紧凑地写PDF(默认)。
ePdfWriteMode_Clean 创建一个在文本编辑器中可读的PDF,即在标记中插入空格和换行符。
7.1.4 函数文档
7.1.4.1 template
PDF_MAX(x,y)
返回
x和y中的较大者
7.1.4.2 template
PDF_MIN(x,y)
返回
x和y中的较小者
7.1.4.3 voidPODOFO_API PoDoFo::PdfLocaleImbue ( std::ios_base & )
用一个低级PDF格式所支持的可以安全执行的I/O的语言环境来填充传递的流。
PDF 文档结构I/O是用C++标准库IOStream代码来完成的。默认情况下,这将适应当前的语言环境。当执行一个遵循POSIX/英语语言环境约定而不顾运行时语言环境的PDF数据结构的I/O时,那是不妙的。确保在你打算使用PDF I/O的任何流上调用这个函数。避免为任何事物使用这个应该在区域设置中完成的流。
警告
如果你的STL不支持PdfIOLocale里的语言环境字符串的话,那么这个方法可能会抛出 ePdfError_InvalidDeviceOperation 错误。
如果你在一个你为PDF I/O而使用的流上调用这个失败,你将会遇到问题就像德国和欧洲用户获得的如"10110,4" 或者甚至是用"10.110,4"而不是"10110.4"的格式的数字。
7.1.4.4 PODOFO_APIvoid PoDoFo::podofo_free ( void ∗ buffer )
PoDoFo使用的封装了C库的free。
使用这个来释放在PoDoFo里面用podofo_malloc 分配的内存。
7.1.4.5 boolPoDoFo::podofo_is_little_endian ( )
在运行时检查当前体系结构是用的是大端模式还是小端模式。
返回
true 如果体系结构是小端模式
7.1.4.6 PODOFO_APIvoid ∗ PoDoFo::podofo_malloc ( size_t size )
PoDoFo使用的封装了C库的malloc。
用来在PoDoFo里面分配缓冲区。
7.1.4.7 PODOFO_APIvoid ∗ PoDoFo::podofo_realloc ( void ∗buffer, size_tsize )
PoDoFo使用的封装了C库的realloc。
7.1.5 变量文档
7.1.5.1 constEPdfVersion PoDoFo::ePdfVersion_Default = ePdfVersion_1_3
PoDoFo中新文档所使用的默认的PDF版本。