podofo文档——名称空间参考

时间:2022-03-31 17:04:34


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<PdfObject>  PoDoFo::PdfArrayBaseClass

这个类表示一个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文件中十六进制编码的字符串有像<AF00BE>的形式。

      另请参见

      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<typenameT > const T PoDoFo::PDF_MAX ( const T a, const T b )

PDF_MAX(x,y)

返回

      x和y中的较大者


7.1.4.2     template<typenameT > const T PoDoFo::PDF_MIN ( const T a, const T b )

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版本。