Foxit PDF SDK
foxit::pdf::PDFPage类 参考
类 foxit::pdf::PDFPage 继承关系图:
foxit::pdf::GraphicsObjects foxit::Base

Public 类型

enum  BoxType {
  e_MediaBox = 0, e_CropBox = 1, e_TrimBox = 2, e_ArtBox = 3,
  e_BleedBox = 4
}
 页面框类型枚举。 更多...
 
enum  CalcMarginMode { e_CalcContentsBox = 0, e_CalcDetection = 1 }
 计算边距模式枚举。 更多...
 
enum  FlattenOptions { e_FlattenAll = 0, e_FlattenNoAnnot = 0x0001, e_FlattenNoFormControl = 0x0002 }
 扁平化选项枚举。 更多...
 
enum  ParseFlags { e_ParsePageNormal = 0x0000, e_ParsePageTextOnly = 0x0001 }
 PDF页面解析标志枚举。 更多...
 
enum  Size {
  e_SizeLetter = 1, e_SizeLegal = 2, e_SizeA2 = 3, e_SizeA3 = 4,
  e_SizeA4 = 5, e_SizeA5 = 6, e_SizeA6 = 7, e_SizeB2 = 8,
  e_SizeB3 = 9, e_SizeB4 = 10, e_SizeB5 = 11, e_SizeB6 = 12
}
 页面尺寸类型枚举。 更多...
 
- Public 类型 继承自 foxit::pdf::GraphicsObjects
enum  TextMergeOption { e_TextMergeNone = 0, e_TextMergeTJY = 1, e_TextMergeBTET = 2 }
 文本合并枚举。 更多...
 

Public 成员函数

 PDFPage (const PDFDoc &document, objects::PDFDictionary *page_dict)
 构造函数,从表示PDF页面的PDF字典和包含该字典的PDF文档创建。 更多...
 
 PDFPage (const foxit::pdf::GraphicsObjects &other)
 构造函数,使用父类对象。 更多...
 
 ~PDFPage ()
 析构函数。
 
annots::Annot AddAnnot (annots::Annot::Type type, const RectF &rect)
 向当前PDF页面添加注释。 更多...
 
annots::Annot AddAnnot (objects::PDFDictionary *annot_dict)
 向当前PDF页面添加注释(通过有效的注释字典)。 更多...
 
bool AddImage (const common::Image &image, int frame_index, const PointF &position, float width, float height, bool auto_generate_content=true)
 添加图像到当前页面。 更多...
 
bool AddImageFromFilePath (const char *file_path, const PointF &position, float width, float height, bool auto_generate_content=true)
 从文件路径添加图像到当前页面。 更多...
 
bool AddImageFromFilePath (const wchar_t *file_path, const PointF &position, float width, float height, bool auto_generate_content=true)
 从文件路径添加图像到当前页面。 更多...
 
foxit::pdf::Signature AddSignature (const foxit::RectF &rect)
 向PDF页面添加普通签名。 更多...
 
foxit::pdf::Signature AddSignature (const foxit::RectF &rect, const foxit::WString &field_name)
 向PDF页面添加普通签名。 更多...
 
foxit::pdf::Signature AddSignature (const foxit::RectF &rect, const foxit::WString &field_name, foxit::pdf::Signature::SignatureType signature_type, bool to_check_permission=true)
 向PDF页面添加签名。 更多...
 
foxit::pdf::Signature AddSignatureWithExistedVDict (const foxit::RectF &rect, const foxit::WString &field_name, foxit::pdf::Signature::SignatureType signature_type, bool to_check_permission, const foxit::pdf::Signature &existed_signature)
 使用特定签名中已存在的"V"字典添加签名到 PDF 页面。 更多...
 
bool AddText (const wchar_t *text, const foxit::RectF &rect, const foxit::pdf::RichTextStyle &style, const Matrix &matrix=Matrix(), bool is_each_text=false, bool disable_embed_font=false)
 添加文本到当前页面。 更多...
 
RectF AddText (const wchar_t *text, const foxit::RectF &rect, const foxit::pdf::RichTextStyle &style, int rotation, common::RotationPointOptions rotate_point=common::e_RotationPointCenter, bool disable_embed_font=false)
 添加文本到当前页面。 更多...
 
RectF CalcContentBBox (CalcMarginMode mode)
 计算PDF页面的内容区域。 更多...
 
RectF CalculateNewRectForText (const wchar_t *text, const foxit::RectF &rect, const foxit::pdf::RichTextStyle &style, int rotation, common::RotationPointOptions rotate_point=common::e_RotationPointCenter, bool disable_embed_font=false)
 计算新文本矩形。 更多...
 
void ClearRenderCache ()
 清除渲染缓存。 更多...
 
bool Flatten (bool for_display, uint32 options=PDFPage::e_FlattenAll)
 拼合当前PDF页面:根据指定选项,注释或表单字段可能成为页面内容的一部分。 更多...
 
bool FlattenAnnot (annots::Annot annot)
 拼合注释:将注释合并到页面内容中,然后将其移除。 更多...
 
annots::Annot GetAnnot (int index)
 通过索引获取注释。 更多...
 
annots::Annot GetAnnotAtDevicePoint (const PointF &position, float tolerance, const Matrix *matrix=0)
 获取指定位置的注释,在设备坐标系统中。 更多...
 
annots::Annot GetAnnotAtPoint (const PointF &position, float tolerance)
 获取指定位置的注释,在PDF坐标系统中。 更多...
 
int GetAnnotCount ()
 获取注释的数量。 更多...
 
objects::PDFArrayGetAnnots () const
 获取"Annots"的 PDF 数组。 更多...
 
annots::AnnotArray GetAnnotsAtDevicePoint (const PointF &position, float tolerance, const Matrix *matrix=0)
 获取指定位置的所有注释,在设备坐标系统中。 更多...
 
annots::AnnotArray GetAnnotsAtPoint (const PointF &position, float tolerance)
 获取指定位置的所有注释,在PDF坐标系统中。 更多...
 
RectF GetBox (BoxType box_type)
 获取页面框。 更多...
 
objects::PDFObjectGetContents () const
 获取"Contents"的 PDF 对象。 更多...
 
objects::PDFDictionaryGetDict () const
 获取页面字典。 更多...
 
Matrix GetDisplayMatrix (int left, int top, int width, int height, common::Rotation rotate)
 获取PDF页面的显示矩阵,从PDF坐标系统到 目标设备坐标系统。 更多...
 
PDFDoc GetDocument () const
 获取当前PDF页面所属的PDF文档。 更多...
 
graphics::GraphicsObjectGetGraphicsObjectAtDevicePoint (const PointF &point, float tolerance, const Matrix *matrix, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const
 获取设备坐标系统中指定点的最顶层图形对象,使用指定的类型过滤器。 更多...
 
graphics::GraphicsObjectGetGraphicsObjectAtPoint (const PointF &point, float tolerance, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const
 获取指定点的最顶层图形对象,使用指定的类型过滤器。 更多...
 
graphics::GraphicsObjectGetGraphicsObjectAtRectangle (const RectF &rect, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const
 获取矩形与指定矩形相交的最顶层图形对象,使用指定的类型过滤器。 更多...
 
graphics::GraphicsObjectArray GetGraphicsObjectsAtDevicePoint (const PointF &point, float tolerance, const Matrix *matrix, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll)
 获取设备坐标系统中指定点的所有图形对象,使用指定的类型过滤器。 更多...
 
graphics::GraphicsObjectArray GetGraphicsObjectsAtPoint (const PointF &point, float tolerance, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll)
 获取指定点的所有图形对象,使用指定的类型过滤器。 更多...
 
graphics::GraphicsObjectArray GetGraphicsObjectsAtRectangle (const RectF &rect, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll)
 获取矩形与指定矩形相交的所有图形对象,使用指定的类型过滤器。 更多...
 
float GetHeight () const
 获取页面高度(单位是1/72英寸)。 更多...
 
int GetIndex () const
 获取页面索引。 更多...
 
objects::PDFObjectGetInheritedAttribute (const char *attruibute_name) const
 获取指定属性的 PDF 对象,该属性可能从页面树中的祖先节点继承。 更多...
 
objects::PDFDictionaryGetResources () const
 获取"Resources"的 PDF 字典。 更多...
 
common::Rotation GetRotation () const
 获取页面旋转。 更多...
 
RectF GetSuggestedRect (const common::Bitmap &render_result, const Matrix &render_matrix, const PointF &point) const
 基于渲染结果位图为点(位于 PDF坐标系)获取建议的矩形(位于 PDF坐标系)。 更多...
 
objects::PDFStreamGetThumb () const
 获取"Thumb"的 PDF 流。 更多...
 
float GetUserUnitSize () const
 获取用户单位。 更多...
 
float GetWidth () const
 获取页面宽度(单位是1/72英寸)。 更多...
 
bool HasTransparency ()
 检查当前PDF页面是否具有透明度。 更多...
 
bool HasWatermark ()
 检查当前页面是否有水印(不包括Foxit PDF SDK试用水印)。 更多...
 
bool IsParsed () const
 检查当前页面是否已被解析。 更多...
 
bool IsScanned ()
 检查当前PDF页面是否为扫描页面。 更多...
 
common::Bitmap LoadThumbnail ()
 加载缩略图位图。 更多...
 
void MoveAnnotToFirst (const annots::Annot &annot)
 将指定注释更改为所有注释中的第一个。 更多...
 
void MoveAnnotToLast (const annots::Annot &annot)
 将指定注释更改为所有注释中的最后一个。 更多...
 
void MoveAnnotToNext (const annots::Annot &annot)
 交换当前注释与其下一个注释的索引。 更多...
 
void MoveAnnotToPrev (const annots::Annot &annot)
 交换当前注释与其前一个注释的索引。 更多...
 
bool Normalize ()
 通过撤销任何旋转并移除到页面"CropBox"的偏移来转换当前PDF页面。 更多...
 
bool RemoveAllWatermarks ()
 移除所有水印。 更多...
 
bool RemoveAnnot (const annots::Annot &annot)
 移除注释。 更多...
 
bool SetAnnotGroup (const annots::MarkupArray &annot_array, int header_index)
 将所有输入的标记注释组合在一起。 更多...
 
void SetBox (BoxType box_type, const RectF &box)
 设置页面框。 更多...
 
void SetClipRect (const RectF &clip_rect)
 为当前PDF页面上的所有图形对象设置剪切矩形。 更多...
 
void SetRotation (common::Rotation rotate)
 设置页面旋转。 更多...
 
void SetSize (float width, float height)
 设置页面宽度和高度。 更多...
 
void SetSize (foxit::pdf::PDFPage::Size size)
 设置页面大小类型。 更多...
 
void SetThumbnail (const common::Bitmap &thumbnail)
 设置页面缩略图。 更多...
 
void SetUserUnitSize (float user_unit)
 设置用户单位。 更多...
 
graphics::TextObjectArray SplitTextsInRectangle (RectF rect, int split_step)
 分割文本对象,这些对象的矩形(在PDF坐标系统中)与指定的矩形 (在PDF坐标系统中)相交,并根据split_step进一步分割相交部分。 更多...
 
common::Progressive StartParse (uint32 flags=PDFPage::e_ParsePageNormal, common::PauseCallback *pause=0, bool is_reparse=false)
 开始解析当前页面。 更多...
 
bool Transform (const Matrix &matrix, bool need_transform_clip_path, bool need_transform_annotations=false)
 转换PDF页面,包括页面上的注释和表单字段。 更多...
 
void UpdateAnnotList ()
 更新注释列表。 更多...
 
- Public 成员函数 继承自 foxit::pdf::GraphicsObjects
 GraphicsObjects (const GraphicsObjects &other)
 构造函数,使用另一个 GraphicsObjects 对象。 更多...
 
virtual ~GraphicsObjects ()
 析构函数。
 
bool GenerateContent ()
 生成当前图形对象的内容。 更多...
 
bool GenerateContent (TextMergeOption text_merge_option)
 生成当前图形对象的内容。 更多...
 
POSITION GetFirstGraphicsObjectPosition (graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const
 获取图形对象列表中第一个图形对象的位置,基于类型过滤器。 更多...
 
graphics::GraphicsObjectGetGraphicsObject (POSITION position) const
 通过图形对象列表中的位置获取图形对象。 更多...
 
graphics::GraphicsObjectGetGraphicsObject (int index) const
 通过索引获取图形对象。 更多...
 
int GetGraphicsObjectCount () const
 获取图形对象列表中图形对象的数量。 更多...
 
int GetGraphicsObjectIndex (graphics::GraphicsObject *graphics_object) const
 获取指定图形对象在图形对象列表中的索引。 更多...
 
POSITION GetGraphicsObjectPosition (graphics::GraphicsObject *graphics_object)
 获取指定图形对象的位置。 更多...
 
POSITION GetLastGraphicsObjectPosition (graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const
 获取图形对象列表中最后一个图形对象的位置,基于类型过滤器。 更多...
 
POSITION GetNextGraphicsObjectPosition (POSITION position, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const
 获取图形对象列表中下一个图形对象的位置, 基于类型过滤器和指定的当前位置。 更多...
 
POSITION GetPrevGraphicsObjectPosition (POSITION position, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const
 获取图形对象列表中上一个图形对象的位置, 基于类型过滤器和指定的当前位置。 更多...
 
POSITION InsertGraphicsObject (POSITION position_insert_after, graphics::GraphicsObject *graphics_object)
 在指定位置后插入图形对象。 更多...
 
bool IsEmpty () const
 检查当前对象是否为空。 更多...
 
POSITION MoveGraphicsObjectByPosition (POSITION current_position, POSITION position_move_after)
 将图形对象从一个位置移动到另一个位置。 更多...
 
bool operator!= (const GraphicsObjects &other) const
 不等操作符。 更多...
 
GraphicsObjectsoperator= (const GraphicsObjects &other)
 赋值操作符。 更多...
 
bool operator== (const GraphicsObjects &other) const
 相等操作符。 更多...
 
bool RemoveGraphicsObject (graphics::GraphicsObject *graphics_object)
 删除图形对象。 更多...
 
bool RemoveGraphicsObjectByPosition (POSITION position)
 通过位置删除图形对象。 更多...
 
- Public 成员函数 继承自 foxit::Base
FS_HANDLE Handle () const
 获取当前对象的句柄。 更多...
 

详细描述

PDF页面在PDF坐标系统中定义,使用页面的左下角作为 原点(0, 0)。
通常,PDF页面对象通过函数PDFDoc::GetPage从PDF文档中获取。 对于大多数情况,PDF页面应该首先被解析然后才能使用。函数PDFPage::IsParsed可以 用于判断PDF页面是否已被解析。对于未解析的页面,请使用函数 PDFPage::StartParse来解析它。
此类提供获取/设置PDF页面数据的函数,如页面宽度/高度、页面旋转、 显示矩阵等。此外,此类还提供检索PDF注释的函数:

pdf::PDFPage派生自类pdf::GraphicsObjects,因此PDFPage类还提供检索PDF图形对象的函数: retrieve PDF graphics objects: 检索PDF图形对象:

This class object can also be used to construct objects of other classes in order to access specified information 此类对象也可用于构造其他类的对象,以便访问指定信息 in PDF page: 在PDF页面中:

  • To access text content in PDF page, please construct a TextPage with PDF page object.
  • 要访问PDF页面中的文本内容,请使用PDF页面对象构造TextPage
  • To do reflowing, please construct a ReflowPage with PDF page object.
  • 要进行重排,请使用PDF页面对象构造ReflowPage
  • To access additional actions, please construct an actions::AdditionalAction object with PDF page object.
  • 要访问附加动作,请使用PDF页面对象构造actions::AdditionalAction对象。
  • To manage the tab order of annotations in PDF page, please construct a TabOrderMgr with PDF page object.
  • 要管理PDF页面中注释的标签顺序,请使用PDF页面对象构造TabOrderMgr
参见
PDFDoc
GraphicsObjects
TextPage
ReflowPage
actions::AdditionalAction
TabOrderMgr

成员枚举类型说明

◆ BoxType

页面框类型枚举。

此枚举的值应该单独使用。

枚举值
e_MediaBox 

页面边界的媒体框。

页面要显示或打印的物理媒体的边界。

e_CropBox 

页面边界的裁剪框。

在显示或打印时页面内容要被裁剪(剪切)的区域。

e_TrimBox 

页面边界的修剪框。

在生产环境中输出时页面内容应该被裁剪的区域。

e_ArtBox 

页面边界的艺术框。

修剪后成品页面的预期尺寸。

e_BleedBox 

页面边界的出血框。

页面创建者意图的页面有意义内容(包括潜在空白)的范围。

◆ CalcMarginMode

计算边距模式枚举。

此枚举的值应该单独使用。

枚举值
e_CalcContentsBox 

根据所有内容的边界框计算边距。

e_CalcDetection 

通过检测路径或图像来计算边距。

◆ FlattenOptions

扁平化选项枚举。

此枚举的值可以单独使用或组合使用。

枚举值
e_FlattenAll 

扁平化PDF页面的所有内容。

e_FlattenNoAnnot 

扁平化PDF页面但不包括注释。

e_FlattenNoFormControl 

扁平化PDF页面但不包括表单控件。

◆ ParseFlags

PDF页面解析标志枚举。

此枚举的值可以单独使用或组合使用。

枚举值
e_ParsePageNormal 

普通模式解析标志,表示解析PDF页面中的所有内容。

e_ParsePageTextOnly 

纯文本模式解析标志。

◆ Size

页面尺寸类型枚举。

此枚举的值应该单独使用。

枚举值
e_SizeLetter 

页面尺寸:letter(信纸)。

e_SizeLegal 

页面尺寸:legal(法律用纸)。

e_SizeA2 

页面尺寸:A2。

e_SizeA3 

页面尺寸:A3。

e_SizeA4 

页面尺寸:A4。

e_SizeA5 

页面尺寸:A5。

e_SizeA6 

页面尺寸:A6。

e_SizeB2 

页面尺寸:B2。

e_SizeB3 

页面尺寸:B3。

e_SizeB4 

页面尺寸:B4。

e_SizeB5 

页面尺寸:B5。

e_SizeB6 

页面尺寸:B6。

构造及析构函数说明

◆ PDFPage() [1/2]

foxit::pdf::PDFPage::PDFPage ( const PDFDoc document,
objects::PDFDictionary page_dict 
)

构造函数,从表示PDF页面的PDF字典和包含该字典的PDF文档创建。

参数
[in]document有效的PDF文档。
[in]page_dictPDF页面的PDF字典。它应该属于参数document指定的PDF文档。

◆ PDFPage() [2/2]

foxit::pdf::PDFPage::PDFPage ( const foxit::pdf::GraphicsObjects other)
explicit

构造函数,使用父类对象。

参数
[in]other父类对象。

成员函数说明

◆ AddAnnot() [1/2]

annots::Annot foxit::pdf::PDFPage::AddAnnot ( annots::Annot::Type  type,
const RectF rect 
)

向当前PDF页面添加注释。

目前,此函数可以支持添加大多数注释类型,除了:
Widget、Sound、Movie、PrinterMark、TrapNet、Watermark、3D、PSInk、Redact。
注意:

  • 控件注释用于表示表单字段的外观, 包括签名字段:
    对于签名字段,可以调用函数 PDFPage::AddSignature 来 添加新的签名对象。
    对于其他类型的表单字段,可以调用函数 interform::Form::AddControl 来 添加新的表单字段(包含表单控件)。
  • PSInk注释应该通过函数 PSI::ConvertToPDFAnnot 从PSI对象转换而来。
  • 编辑注释应该通过函数 addon::Redaction::MarkRedactAnnot 添加来标记PDF页面中的区域。
  • 对于支持的注释类型,如果用户未设置新创建注释的任何属性 (除了必需属性)并且直接调用函数 annots::Annot::ResetAppearanceStream,将使用默认外观。请参考 具体注释类的注释以了解其默认外观的更多详细信息。
参数
[in]type要添加的注释类型。请参考从 annots::Annot::e_Note开始的值,应该是这些值中的一个, 除了annots::Annot::e_PSInkannots::Annot::e_Soundannots::Annot::e_Movieannots::Annot::e_Widgetannots::Annot::e_PrinterMarkannots::Annot::e_TrapNetannots::Annot::e_Watermarkannots::Annot::e_3D
[in]rect新注释的矩形区域。
返回
新创建的注释对象。

◆ AddAnnot() [2/2]

annots::Annot foxit::pdf::PDFPage::AddAnnot ( objects::PDFDictionary annot_dict)

向当前PDF页面添加注释(通过有效的注释字典)。

参数
[in]annot_dict要作为注释添加到当前PDF页面的有效注释字典。
返回
新创建的注释对象。

◆ AddImage()

bool foxit::pdf::PDFPage::AddImage ( const common::Image image,
int  frame_index,
const PointF position,
float  width,
float  height,
bool  auto_generate_content = true 
)

添加图像到当前页面。

如果图像类型是 common::Image::e_JPG,图像应该保持有效 直到相关文档关闭。

参数
[in]image图像。其中一个帧将被设置到当前页面。 此图像包含至少一个帧,图像类型不应为 common::Image::e_Unknown
[in]frame_index帧索引。有效范围:从 0 到 (count-1)。 count 由函数 common::Image::GetFrameCount 返回。
[in]position指定位置,为图像对象的左下角,位于 PDF坐标系 中。
[in]width用于将图像设置到页面中的宽度(单位为 1/72 英寸)。 此值应大于 0。
[in]height用于将图像设置到页面中的高度(单位为 1/72 英寸)。 此值应大于 0。
[in]auto_generate_contenttrue 表示内部生成内容。
当使用 false 时,用户应确保在添加图像后调用函数 GraphicsObjects::GenerateContent。 更多详情请参考函数 GraphicsObjects::GenerateContent。 默认值:true
返回
true 表示成功,false 表示失败。

◆ AddImageFromFilePath() [1/2]

bool foxit::pdf::PDFPage::AddImageFromFilePath ( const char *  file_path,
const PointF position,
float  width,
float  height,
bool  auto_generate_content = true 
)

从文件路径添加图像到当前页面。

如果输入图像(由文件路径指定)有多个帧,只有第一帧会被默认添加到 当前页面。

参数
[in]file_path现有图像文件的完整路径。不应为空字符串。
[in]position指定位置,为图像对象的左下角,位于 PDF坐标系 中。
[in]width用于将图像设置到页面中的宽度。 此值应大于 0。
[in]height用于将图像设置到页面中的高度。 此值应大于 0。
[in]auto_generate_contenttrue 表示内部生成内容。
当使用 false 时,用户应确保在添加图像后调用函数 GraphicsObjects::GenerateContent。 更多详情请参考函数 GraphicsObjects::GenerateContent。 默认值:true
返回
true 表示成功,false 表示失败。

◆ AddImageFromFilePath() [2/2]

bool foxit::pdf::PDFPage::AddImageFromFilePath ( const wchar_t *  file_path,
const PointF position,
float  width,
float  height,
bool  auto_generate_content = true 
)

从文件路径添加图像到当前页面。

如果输入图像(由文件路径指定)有多个帧,只有第一帧会被默认添加到 当前页面。

参数
[in]file_path现有图像文件的完整路径。不应为空字符串。
[in]position指定位置,为图像对象的左下角,位于 PDF坐标系 中。
[in]width用于将图像设置到页面中的宽度。 此值应大于 0。
[in]height用于将图像设置到页面中的高度。 此值应大于 0。
[in]auto_generate_contenttrue 表示内部生成内容。
当使用 false 时,用户应确保在添加图像后调用函数 GraphicsObjects::GenerateContent。 更多详情请参考函数 GraphicsObjects::GenerateContent。 默认值:true
返回
true 表示成功,false 表示失败。

◆ AddSignature() [1/3]

foxit::pdf::Signature foxit::pdf::PDFPage::AddSignature ( const foxit::RectF rect)

向PDF页面添加普通签名。

对于新的普通签名,其过滤器默认为"Adobe.PPKLite",子过滤器默认为"adbe.pkcs7.detached"。 有关签名过滤器和子过滤器的更多详细信息,请参考类 Signature
在对新签名进行签名之前,用户还可以调用类 Signature 的设置函数 来设置用于签名和签名外观的其他信息。

参数
[in]rect新签名的矩形位置,在 PDF坐标系统 中。 它应该是 PDF坐标系统 中的有效矩形。
返回
新添加的签名对象。

◆ AddSignature() [2/3]

foxit::pdf::Signature foxit::pdf::PDFPage::AddSignature ( const foxit::RectF rect,
const foxit::WString field_name 
)

向PDF页面添加普通签名。

对于新的普通签名,其过滤器默认为"Adobe.PPKLite",子过滤器默认为"adbe.pkcs7.detached"。 有关签名过滤器和子过滤器的更多详细信息,请参考类 Signature
在对新签名进行签名之前,用户还可以调用类 Signature 的设置函数 来设置用于签名和签名外观的其他信息。

参数
[in]rect新签名的矩形位置,在 PDF坐标系统 中。 它应该是 PDF坐标系统 中的有效矩形。
[in]field_name签名字段名称。这可以是空字符串。
返回
新添加的签名对象。

◆ AddSignature() [3/3]

foxit::pdf::Signature foxit::pdf::PDFPage::AddSignature ( const foxit::RectF rect,
const foxit::WString field_name,
foxit::pdf::Signature::SignatureType  signature_type,
bool  to_check_permission = true 
)

向PDF页面添加签名。

对于新的普通签名,其过滤器默认为"Adobe.PPKLite",子过滤器默认为"adbe.pkcs7.detached"。 对于新的时间戳签名,其过滤器默认为"Adobe.PPKLite",子过滤器默认为"ETSI.RFC3161"。 有关签名过滤器和子过滤器的更多详细信息,请参考类 Signature
在对新签名进行签名之前,用户还可以调用类 Signature 的设置函数 来设置用于签名和签名外观的其他信息。

参数
[in]rect新签名的矩形位置,在 PDF坐标系统 中。 如果参数 signature_typeSignature::e_SignatureTypeTimeStamp, 此矩形将被忽略;否则,这应该是 PDF坐标系统 中的有效矩形。
[in]field_name签名字段名称。可以是空字符串。
[in]signature_type签名类型。请参考从 Signature::e_SignatureTypeOrdinary 开始的值, 应该是这些值中的一个。
[in]to_check_permission一个布尔值,决定 Foxit PDF SDK 是否应在添加签名前检查 PDF 文档的权限: true 表示 Foxit PDF SDK 应检查文档权限以决定是否允许添加签名, false 表示 Foxit PDF SDK 不应在添加签名前检查文档权限。 当此参数为 false 时,用户应确保检查文档权限以检查是否允许添加签名。 默认值:true
返回
新添加的签名对象。

◆ AddSignatureWithExistedVDict()

foxit::pdf::Signature foxit::pdf::PDFPage::AddSignatureWithExistedVDict ( const foxit::RectF rect,
const foxit::WString field_name,
foxit::pdf::Signature::SignatureType  signature_type,
bool  to_check_permission,
const foxit::pdf::Signature existed_signature 
)

使用特定签名中已存在的"V"字典添加签名到 PDF 页面。

对于新的普通签名,其过滤器默认为"Adobe.PPKLite",子过滤器默认为"adbe.pkcs7.detached"。 对于新的时间戳签名,其过滤器默认为"Adobe.PPKLite",子过滤器默认为"ETSI.RFC3161"。 有关签名过滤器和子过滤器的更多详情,请参考类 Signature
在签署新签名之前,用户还可以调用类 Signature 的设置函数 来设置用于签署和签名外观的其他信息。 共享 V 字典后,对与 V 字典相关的条目的任何更改都将同时 影响所有共享 V 字典的签名的外观。

参数
[in]rect新签名的矩形位置,在 PDF坐标系统 中。 如果参数 signature_typeSignature::e_SignatureTypeTimeStamp, 此矩形将被忽略;否则,这应该是 PDF坐标系统 中的有效矩形。
[in]field_name签名字段名称。这可以是空字符串。
[in]signature_type签名类型。请参考从 Signature::e_SignatureTypeOrdinary 开始的值,这应该是这些值中的一个。
[in]to_check_permission一个布尔值,决定Foxit PDF SDK是否应在添加签名前检查PDF文档的权限: true 表示Foxit PDF SDK应检查文档权限以决定是否允许添加签名, false 表示Foxit PDF SDK不应在添加签名前检查文档权限。 当此参数为 false 时,用户应确保检查文档权限以确认是否允许添加签名。 默认值:true
[in]existed_signature其"V"字典将在新添加的签名中使用的签名。
返回
新添加的签名对象。

◆ AddText() [1/2]

bool foxit::pdf::PDFPage::AddText ( const wchar_t *  text,
const foxit::RectF rect,
const foxit::pdf::RichTextStyle style,
const Matrix matrix = Matrix(),
bool  is_each_text = false,
bool  disable_embed_font = false 
)

添加文本到当前页面。

如果文本太长无法适合矩形,文本会自动换行。

参数
[in]text新文本字符串的内容。不应为空字符串。
[in]rect框矩形,位于 PDF坐标系 中。
[in]style用于新文本字符串的样式数据。
[in]matrix用于添加文本块的变换矩阵。
[in]is_each_text一个布尔值,指示是否为文本块内的每个文本对象单独应用变换矩阵。 true 表示为每个文本对象使用单独的矩阵, false 表示为整个文本块使用相同的矩阵。
[in]disable_embed_font一个布尔值,表示是否禁用嵌入字体。 true 表示禁用嵌入字体,false 表示不禁用。
返回
true 表示成功,false 表示失败。
注解
此函数成功时,应调用函数 GraphicsObjects::GenerateContent。 更多详情请参考函数 GraphicsObjects::GenerateContent

◆ AddText() [2/2]

RectF foxit::pdf::PDFPage::AddText ( const wchar_t *  text,
const foxit::RectF rect,
const foxit::pdf::RichTextStyle style,
int  rotation,
common::RotationPointOptions  rotate_point = common::e_RotationPointCenter,
bool  disable_embed_font = false 
)

添加文本到当前页面。

如果文本太长无法适合矩形,文本会自动换行。

参数
[in]text新文本字符串的内容。不应为空字符串。
[in]rect框矩形,位于 PDF坐标系 中。
[in]style用于新文本字符串的样式数据。
[in]rotation新文本字符串的旋转值。
[in]rotate_point旋转参考点。请参考从 common::e_RotationPointCenter 开始的值, 应该是这些值中的一个。
[in]disable_embed_font一个布尔值,表示是否禁用嵌入字体。 true 表示禁用嵌入字体,false 表示不禁用。
返回
文本块内容的矩形。
注解
此函数成功时,应调用函数 GraphicsObjects::GenerateContent。 更多详情请参考函数 GraphicsObjects::GenerateContent

◆ CalcContentBBox()

RectF foxit::pdf::PDFPage::CalcContentBBox ( CalcMarginMode  mode)

计算PDF页面的内容区域。

在使用此函数之前,请确保当前页面已被解析。

参数
[in]mode计算模式。它应该是以下值之一:
返回
包含可见页面内容的最小矩形。

◆ CalculateNewRectForText()

RectF foxit::pdf::PDFPage::CalculateNewRectForText ( const wchar_t *  text,
const foxit::RectF rect,
const foxit::pdf::RichTextStyle style,
int  rotation,
common::RotationPointOptions  rotate_point = common::e_RotationPointCenter,
bool  disable_embed_font = false 
)

计算新文本矩形。

参数
[in]text新文本字符串的内容。不应为空字符串。
[in]rect框矩形,位于 PDF坐标系 中。
[in]style用于新文本字符串的样式数据。
[in]rotation新文本字符串的旋转值。
[in]rotate_point旋转参考点。请参考从 common::e_RotationPointCenter 开始的值, 应该是这些值中的一个。
[in]disable_embed_font一个布尔值,表示是否禁用嵌入字体。 true 表示禁用嵌入字体,false 表示不禁用。
返回
文本块内容的矩形。

◆ ClearRenderCache()

void foxit::pdf::PDFPage::ClearRenderCache ( )

清除渲染缓存。

返回
无。

◆ Flatten()

bool foxit::pdf::PDFPage::Flatten ( bool  for_display,
uint32  options = PDFPage::e_FlattenAll 
)

拼合当前PDF页面:根据指定选项,注释或表单字段可能成为页面内容的一部分。

注释标志可以决定注释是否可以显示或是否可以打印。 这也会影响拼合结果:

  • 如果拼合结果用于显示,只有可以显示的注释 才会被拼合成为页面内容的一部分。
  • 如果拼合结果用于打印,只有可以打印的注释 才会被拼合成为页面内容的一部分。

表单字段的外观由控件注释表示,控件注释是一种注释,在Foxit PDF SDK中 被视为表单控件。因此,当表单字段要被拼合时,注释标志也会影响表单字段。 有关注释标志的更多详细信息,请参考从 annots::Annot::e_FlagInvisible 开始的值 以及<PDF参考1.7>中的第8.4.2节"注释标志"。
注释或表单字段被拼合后,它将不再是注释或表单字段。 成功拼合当前页面后,用户应通过函数 PDFPage::StartParse 重新解析此页面。

参数
[in]for_display决定拼合结果的用途: true 表示拼合结果仅用于显示, false 表示拼合结果仅用于打印。
[in]options拼合选项。请参考从 PDFPage::e_FlattenAll 开始的值, 这应该是其中一个或它们的组合。
特别地,如果同时使用 PDFPage::e_FlattenNoAnnotPDFPage::e_FlattenNoFormControl, 这意味着没有任何内容要拼合到页面,此函数将 直接返回 true。 默认值:PDFPage::e_FlattenAll
返回
true 表示当前页面拼合成功,false 表示失败。

◆ FlattenAnnot()

bool foxit::pdf::PDFPage::FlattenAnnot ( annots::Annot  annot)

拼合注释:将注释合并到页面内容中,然后将其移除。

成功拼合注释后,用户应通过函数 PDFPage::StartParse 重新解析此页面。

参数
[in]annot要拼合和移除的注释。
返回
true 表示成功,false 表示失败。

◆ GetAnnot()

annots::Annot foxit::pdf::PDFPage::GetAnnot ( int  index)

通过索引获取注释。

参数
[in]index注释索引。有效范围:从0到(count-1)。 count由函数PDFPage::GetAnnotCount返回。
返回
注释对象。

◆ GetAnnotAtDevicePoint()

annots::Annot foxit::pdf::PDFPage::GetAnnotAtDevicePoint ( const PointF position,
float  tolerance,
const Matrix matrix = 0 
)

获取指定位置的注释,在设备坐标系统中。

如果在此指定位置有多个注释,此函数将始终返回 最顶层的注释。具有标志annots::Annot::e_FlagNoViewannots::Annot::e_FlagHiddenannots::Annot::e_FlagInvisible 的注释不会被此函数检索。如果返回的注释有标志 annots::Annot::e_FlagReadOnly,则无法修改。

参数
[in]position指定位置,在设备坐标系统中。
[in]tolerance容差值。有效范围:0.0f到30.0f。
[in]matrix变换矩阵。通常这由函数 PDFPage::GetDisplayMatrix返回。如果这是NULL,当前函数将 具有与函数PDFPage::GetAnnotAtPoint相同的功能。 默认值:NULL
返回
注释对象。如果返回注释对象的函数annots::Annot::IsEmpty 的返回值为true,表示找不到PDF注释。

◆ GetAnnotAtPoint()

annots::Annot foxit::pdf::PDFPage::GetAnnotAtPoint ( const PointF position,
float  tolerance 
)

获取指定位置的注释,在PDF坐标系统中。

如果在此指定位置有多个注释,此函数将始终返回 最顶层的注释。具有标志annots::Annot::e_FlagNoViewannots::Annot::e_FlagHiddenannots::Annot::e_FlagInvisible 的注释不会被此函数检索。如果返回的注释有标志 annots::Annot::e_FlagReadOnly,则无法修改。

参数
[in]position指定位置,在PDF坐标系统中。
[in]tolerance容差值。有效范围:0.0f到30.0f。
返回
注释对象。如果返回注释对象的函数annots::Annot::IsEmpty 的返回值为true,表示找不到PDF注释。

◆ GetAnnotCount()

int foxit::pdf::PDFPage::GetAnnotCount ( )

获取注释的数量。

返回
注释的数量。

◆ GetAnnots()

objects::PDFArray* foxit::pdf::PDFPage::GetAnnots ( ) const

获取"Annots"的 PDF 数组。

注解
更多详情请参考 <PDF Reference 1.7> P147 中的"TABLE 3.27 Entries in a page object"。
返回
"Annots"的 PDF 数组。 如果没有"Annots"条目或发生任何错误,此函数将返回 NULL

◆ GetAnnotsAtDevicePoint()

annots::AnnotArray foxit::pdf::PDFPage::GetAnnotsAtDevicePoint ( const PointF position,
float  tolerance,
const Matrix matrix = 0 
)

获取指定位置的所有注释,在设备坐标系统中。

在一个指定位置,可能存在多个注释。 此函数可用于检索指定位置的所有这些注释。 具有标志annots::Annot::e_FlagNoViewannots::Annot::e_FlagHiddenannots::Annot::e_FlagInvisible 的注释不会被此函数检索。
如果返回注释数组对象的函数annots::AnnotArray::GetAt的返回注释对象 有标志annots::Annot::e_FlagReadOnly,表示该注释 无法修改。

参数
[in]position指定位置,在设备坐标系统中。
[in]tolerance容差值。有效范围:0.0f到30.0f。
[in]matrix变换矩阵。通常这由函数 PDFPage::GetDisplayMatrix返回。如果这是NULL,当前函数将 具有与函数PDFPage::GetAnnotAtPoint相同的功能。 默认值:NULL
返回
注释数组。如果返回注释数组对象的函数annots::AnnotArray::GetSize 的返回值为0,表示找不到PDF注释。

◆ GetAnnotsAtPoint()

annots::AnnotArray foxit::pdf::PDFPage::GetAnnotsAtPoint ( const PointF position,
float  tolerance 
)

获取指定位置的所有注释,在PDF坐标系统中。

在一个指定位置,可能存在多个注释。 此函数可用于检索指定位置的所有这些注释。 具有标志annots::Annot::e_FlagNoViewannots::Annot::e_FlagHiddenannots::Annot::e_FlagInvisible 的注释不会被此函数检索。
如果返回注释数组对象的函数annots::AnnotArray::GetAt的返回注释对象 有标志annots::Annot::e_FlagReadOnly,表示该注释 无法修改。

参数
[in]position指定位置,在PDF坐标系统中。
[in]tolerance容差值。有效范围:0.0f到30.0f。
返回
注释数组。如果返回注释数组对象的函数annots::AnnotArray::GetSize 的返回值为0,表示找不到PDF注释。

◆ GetBox()

RectF foxit::pdf::PDFPage::GetBox ( BoxType  box_type)

获取页面框。

参数
[in]box_type页面框类型。请参考从 PDFPage::e_MediaBox 开始的值, 这应该是这些值中的一个。
返回
一个框矩形,在 PDF坐标系统 中。

◆ GetContents()

objects::PDFObject* foxit::pdf::PDFPage::GetContents ( ) const

获取"Contents"的 PDF 对象。

注解
"Contents"可以是 PDF 流或 PDF 数组。更多详情请参考 <PDF Reference 1.7> P146 中的 "TABLE 3.27 Entries in a page object"。
返回
"Contents"的 PDF 对象。 如果没有"Contents"条目或发生任何错误,此函数将返回 NULL

◆ GetDict()

objects::PDFDictionary* foxit::pdf::PDFPage::GetDict ( ) const

获取页面字典。

返回
页面字典对象。如果有任何错误,此函数将返回 NULL

◆ GetDisplayMatrix()

Matrix foxit::pdf::PDFPage::GetDisplayMatrix ( int  left,
int  top,
int  width,
int  height,
common::Rotation  rotate 
)

获取PDF页面的显示矩阵,从PDF坐标系统到 目标设备坐标系统。

参数
[in]left设备坐标系统中变换区域的左侧位置,通常以像素为单位。
[in]top设备坐标系统中变换区域的顶部位置,通常以像素为单位。
[in]width设备坐标系统中变换区域的宽度,通常以像素为单位。
[in]height设备坐标系统中变换区域的高度,通常以像素为单位。
[in]rotate旋转值。请参考从common::e_Rotation0开始的值, 这应该是这些值中的一个,除了common::e_RotationUnknown
返回
用于当前PDF页面的显示矩阵。

◆ GetDocument()

PDFDoc foxit::pdf::PDFPage::GetDocument ( ) const

获取当前PDF页面所属的PDF文档。

返回
一个PDF文档对象。

◆ GetGraphicsObjectAtDevicePoint()

graphics::GraphicsObject* foxit::pdf::PDFPage::GetGraphicsObjectAtDevicePoint ( const PointF point,
float  tolerance,
const Matrix matrix,
graphics::GraphicsObject::Type  filter = graphics::GraphicsObject::e_TypeAll 
) const

获取设备坐标系统中指定点的最顶层图形对象,使用指定的类型过滤器。

参数
[in]point指定位置,在设备坐标系统中。
[in]tolerance图形对象命中检测的容差值,以点为单位。它应该是正值。
[in]matrix转换矩阵。通常这是由函数 PDFPage::GetDisplayMatrix 返回的。 默认值:NULL
[in]filter指定要获取的图形对象类型的类型过滤器。 请参考从 graphics::GraphicsObject::e_TypeAll 开始的值, 这应该是这些值中的一个。 graphics::GraphicsObject::e_TypeAll 表示所有类型的图形对象。 默认值:graphics::GraphicsObject::e_TypeAll
返回
一个 graphics::GraphicsObject 对象。如果找不到图形对象,此函数将返回 NULL

◆ GetGraphicsObjectAtPoint()

graphics::GraphicsObject* foxit::pdf::PDFPage::GetGraphicsObjectAtPoint ( const PointF point,
float  tolerance,
graphics::GraphicsObject::Type  filter = graphics::GraphicsObject::e_TypeAll 
) const

获取指定点的最顶层图形对象,使用指定的类型过滤器。

参数
[in]point指定位置,在 PDF坐标系统 中。
[in]tolerance图形对象命中检测的容差值,以点为单位。它应该是正值。
[in]filter指定要获取的图形对象类型的类型过滤器。 请参考从 graphics::GraphicsObject::e_TypeAll 开始的值, 这应该是这些值中的一个。 graphics::GraphicsObject::e_TypeAll 表示所有类型的图形对象。 默认值:graphics::GraphicsObject::e_TypeAll
返回
一个 graphics::GraphicsObject 对象。如果找不到图形对象,此函数将返回 NULL

◆ GetGraphicsObjectAtRectangle()

graphics::GraphicsObject* foxit::pdf::PDFPage::GetGraphicsObjectAtRectangle ( const RectF rect,
graphics::GraphicsObject::Type  filter = graphics::GraphicsObject::e_TypeAll 
) const

获取矩形与指定矩形相交的最顶层图形对象,使用指定的类型过滤器。

参数
[in]rect指定的矩形,位于 PDF坐标系 中。
[in]filter类型过滤器,指定要获取哪种图形对象。 请参考从 graphics::GraphicsObject::e_TypeAll 开始的值, 应该是这些值中的一个。 graphics::GraphicsObject::e_TypeAll 表示所有类型的图形对象。 默认值:graphics::GraphicsObject::e_TypeAll
返回
矩形与指定矩形相交的图形对象。 如果找不到合适的图形对象,此函数将返回 NULL

◆ GetGraphicsObjectsAtDevicePoint()

graphics::GraphicsObjectArray foxit::pdf::PDFPage::GetGraphicsObjectsAtDevicePoint ( const PointF point,
float  tolerance,
const Matrix matrix,
graphics::GraphicsObject::Type  filter = graphics::GraphicsObject::e_TypeAll 
)

获取设备坐标系统中指定点的所有图形对象,使用指定的类型过滤器。

参数
[in]point指定位置,在设备坐标系统中。
[in]tolerance图形对象命中检测的容差值,以点为单位。它应该是正值。
[in]matrix转换矩阵。通常这是由函数 PDFPage::GetDisplayMatrix 返回的矩阵。 默认值:NULL
[in]filter类型过滤器,指定要获取哪种图形对象。 请参考从 graphics::GraphicsObject::e_TypeAll 开始的值, 应该是这些值中的一个。 graphics::GraphicsObject::e_TypeAll 表示所有类型的图形对象。 默认值:graphics::GraphicsObject::e_TypeAll
返回
graphics::GraphicsObject 对象数组。

◆ GetGraphicsObjectsAtPoint()

graphics::GraphicsObjectArray foxit::pdf::PDFPage::GetGraphicsObjectsAtPoint ( const PointF point,
float  tolerance,
graphics::GraphicsObject::Type  filter = graphics::GraphicsObject::e_TypeAll 
)

获取指定点的所有图形对象,使用指定的类型过滤器。

参数
[in]point指定位置,在 PDF坐标系统 中。
[in]tolerance图形对象命中检测的容差值,以点为单位。它应该是正值。
[in]filter指定要获取的图形对象类型的类型过滤器。 请参考从 graphics::GraphicsObject::e_TypeAll 开始的值, 这应该是这些值中的一个。 graphics::GraphicsObject::e_TypeAll 表示所有类型的图形对象。 默认值:graphics::GraphicsObject::e_TypeAll
返回
graphics::GraphicsObject 对象的数组。

◆ GetGraphicsObjectsAtRectangle()

graphics::GraphicsObjectArray foxit::pdf::PDFPage::GetGraphicsObjectsAtRectangle ( const RectF rect,
graphics::GraphicsObject::Type  filter = graphics::GraphicsObject::e_TypeAll 
)

获取矩形与指定矩形相交的所有图形对象,使用指定的类型过滤器。

参数
[in]rect指定的矩形,位于 PDF坐标系 中。
[in]filter类型过滤器,指定要获取哪种图形对象。 请参考从 graphics::GraphicsObject::e_TypeAll 开始的值, 应该是这些值中的一个。 graphics::GraphicsObject::e_TypeAll 表示所有类型的图形对象。 默认值:graphics::GraphicsObject::e_TypeAll
返回
矩形与指定矩形相交的图形对象数组。

◆ GetHeight()

float foxit::pdf::PDFPage::GetHeight ( ) const

获取页面高度(单位是1/72英寸)。

返回
页面高度。

◆ GetIndex()

int foxit::pdf::PDFPage::GetIndex ( ) const

获取页面索引。

返回
页面索引,从0开始,在相关PDF文档的页面数范围内。

◆ GetInheritedAttribute()

objects::PDFObject* foxit::pdf::PDFPage::GetInheritedAttribute ( const char *  attruibute_name) const

获取指定属性的 PDF 对象,该属性可能从页面树中的祖先节点继承。

某些页面属性被指定为可继承的,如"Resources"、"MediaBox"、"CropBox" 和"Rotate"。更多详情请参考 <PDF Reference 1.7> P145 中的"TABLE 3.27 Entries in a page object" 和 <PDF Reference 1.7> P149 中的"Inheritance of Page Attributes"。

参数
[in]attruibute_name要查找的属性名称。
返回
PDF 对象。如果未找到,此函数将返回 NULL

◆ GetResources()

objects::PDFDictionary* foxit::pdf::PDFPage::GetResources ( ) const

获取"Resources"的 PDF 字典。

注解
更多详情请参考 <PDF Reference 1.7> P145 中的"TABLE 3.27 Entries in a page object"。
返回
"Resources"的 PDF 字典。 如果没有"Resources"条目或发生任何错误,此函数将返回 NULL

◆ GetRotation()

common::Rotation foxit::pdf::PDFPage::GetRotation ( ) const

获取页面旋转。

返回
页面旋转值。请参考从common::e_Rotation0开始的值, 这将是这些值中的一个。

◆ GetSuggestedRect()

RectF foxit::pdf::PDFPage::GetSuggestedRect ( const common::Bitmap render_result,
const Matrix render_matrix,
const PointF point 
) const

基于渲染结果位图为点(位于 PDF坐标系)获取建议的矩形(位于 PDF坐标系)。

此函数可以帮助用户在指定点周围定位矩形区域(作为建议矩形)。当检索到有效的建议矩形时, 用户可以使用该矩形向 PDF 页面添加内容,例如新的注释、新的表单字段、新的签名等。
点的建议矩形是指包含指定点的矩形,并且可以在指定点周围的空白位置尽可能大地绘制。 但是,如果从该点向左/右/上/下任何方向直接到达输入位图边缘,则无法检索到建议矩形。
此函数不支持 Rbg565 位图。如果输入位图是 Rbg565 位图,此函数将直接返回空矩形。

参数
[in]render_result作为渲染当前 PDF 页面结果的位图。这应该是有效的位图对象。
[in]render_matrix用于渲染当前 PDF 页面并生成参数 render_result 作为渲染结果的变换矩阵。
[in]point要为其查找建议矩形的点(位于 PDF坐标系)。
返回
PDF坐标系 中的建议矩形。如果返回的矩形对象的函数 RectF::IsEmpty 返回值为 true,表示找不到合适的建议矩形。

◆ GetThumb()

objects::PDFStream* foxit::pdf::PDFPage::GetThumb ( ) const

获取"Thumb"的 PDF 流。

注解
更多详情请参考 <PDF Reference 1.7> P146 中的"TABLE 3.27 Entries in a page object"。
返回
"Thumb"的 PDF 流。 如果没有"Thumb"条目或发生任何错误,此函数将返回 NULL

◆ GetUserUnitSize()

float foxit::pdf::PDFPage::GetUserUnitSize ( ) const

获取用户单位。

一个正数,给出默认用户空间单位的大小,以1/72英寸的倍数表示。 支持值的范围取决于实现。

返回
用户单位。

◆ GetWidth()

float foxit::pdf::PDFPage::GetWidth ( ) const

获取页面宽度(单位是1/72英寸)。

返回
页面宽度。

◆ HasTransparency()

bool foxit::pdf::PDFPage::HasTransparency ( )

检查当前PDF页面是否具有透明度。

在使用此函数之前,请确保当前页面已被解析。

返回
true 表示当前页面具有透明度, false 表示当前页面不具有透明度。

◆ HasWatermark()

bool foxit::pdf::PDFPage::HasWatermark ( )

检查当前页面是否有水印(不包括Foxit PDF SDK试用水印)。

在使用此函数之前,请确保当前页面已被解析。

返回
true 表示当前页面有水印,false 表示 当前页面没有水印。

◆ IsParsed()

bool foxit::pdf::PDFPage::IsParsed ( ) const

检查当前页面是否已被解析。

返回
true 表示当前页面已被解析, false 表示当前页面尚未被解析。

◆ IsScanned()

bool foxit::pdf::PDFPage::IsScanned ( )

检查当前PDF页面是否为扫描页面。

在使用此函数之前,请确保当前页面已被解析。

返回
true 表示当前页面是扫描页面, false 表示当前页面不是扫描页面。

◆ LoadThumbnail()

common::Bitmap foxit::pdf::PDFPage::LoadThumbnail ( )

加载缩略图位图。

返回
当前页面的缩略图位图。如果返回位图对象的函数common::Bitmap::IsEmpty 的返回值为true,表示找不到缩略图。

◆ MoveAnnotToFirst()

void foxit::pdf::PDFPage::MoveAnnotToFirst ( const annots::Annot annot)

将指定注释更改为所有注释中的第一个。

在PDF页面中,所有注释都在注释列表中管理。在注释列表中, 具有较小索引(位于列表前部)的注释将首先绘制到页面上, 具有较大索引(位于列表后部)的注释将稍后绘制到页面上。 因此,在页面中,如果一个注释在z顺序中显示在其他注释之上,这意味着 它的索引比注释列表中的其他注释更大。
此函数用于将注释从当前索引位置移动到注释列表中的第一个位置, 以便在显示时将注释移动到z顺序的底部。

参数
[in]annot要移动到第一位的注释对象。它应该在当前PDF页面中。
返回
无。

◆ MoveAnnotToLast()

void foxit::pdf::PDFPage::MoveAnnotToLast ( const annots::Annot annot)

将指定注释更改为所有注释中的最后一个。

在PDF页面中,所有注释都在注释列表中管理。在注释列表中, 具有较小索引(位于列表前部)的注释将首先绘制到页面上, 具有较大索引(位于列表后部)的注释将稍后绘制到页面上。 因此,在页面中,如果一个注释在z顺序中显示在其他注释之上,这意味着 它的索引比注释列表中的其他注释更大。
此函数用于将注释从当前索引位置移动到注释列表中的最后位置, 以便在显示时将注释移动到z顺序的顶部。

参数
[in]annot要移动到最后位的注释对象。它应该在当前PDF页面中。
返回
无。

◆ MoveAnnotToNext()

void foxit::pdf::PDFPage::MoveAnnotToNext ( const annots::Annot annot)

交换当前注释与其下一个注释的索引。

在PDF页面中,所有注释都在注释列表中管理。在注释列表中, 具有较小索引(位于列表前部)的注释将首先绘制到页面上, 具有较大索引(位于列表后部)的注释将稍后绘制到页面上。 因此,在页面中,如果一个注释在z顺序中显示在其他注释之上,这意味着 它的索引比注释列表中的其他注释更大。
此函数用于交换当前注释与其下一个注释的索引位置 在注释列表中,以便在显示时将注释移动到z顺序中的较高级别。

参数
[in]annot要移动的注释对象。它应该在当前PDF页面中。
返回
无。

◆ MoveAnnotToPrev()

void foxit::pdf::PDFPage::MoveAnnotToPrev ( const annots::Annot annot)

交换当前注释与其前一个注释的索引。

在PDF页面中,所有注释都在注释列表中管理。在注释列表中, 具有较小索引(位于列表前部)的注释将首先绘制到页面上, 具有较大索引(位于列表后部)的注释将稍后绘制到页面上。 因此,在页面中,如果一个注释在z顺序中显示在其他注释之上,这意味着 它的索引比注释列表中的其他注释更大。
此函数用于交换当前注释与其前一个注释的索引位置 在注释列表中,以便在显示时将注释移动到z顺序中的较低级别。

参数
[in]annot要移动的注释对象。它应该在当前PDF页面中。
返回
无。

◆ Normalize()

bool foxit::pdf::PDFPage::Normalize ( )

通过撤销任何旋转并移除到页面"CropBox"的偏移来转换当前PDF页面。

返回
true 表示成功,false 表示失败。
注解
注释和表单字段也会被调整以保持在PDF页面上的相同相对位置。 这使得向PDF页面添加新项目变得更容易,因为坐标系统将相对于 可见页面的左下角。

◆ RemoveAllWatermarks()

bool foxit::pdf::PDFPage::RemoveAllWatermarks ( )

移除所有水印。

在使用此函数之前,请确保当前页面已被解析。

返回
true 表示成功,false 表示失败。

◆ RemoveAnnot()

bool foxit::pdf::PDFPage::RemoveAnnot ( const annots::Annot annot)

移除注释。

此函数可以移除任何通过获取函数或添加函数返回的注释。
但对于控件注释,此函数只能移除独立的控件注释。 如果控件注释与表单字段关联,此函数无法移除它并且 会抛出异常foxit::e_ErrUnsupported
对于与表单字段关联的控件注释,请调用函数 interform::Form::RemoveControl来移除它及其关联的表单控件。

参数
[in]annot要移除的注释对象。它应该在当前PDF页面中。
返回
true表示成功,false表示失败。

◆ SetAnnotGroup()

bool foxit::pdf::PDFPage::SetAnnotGroup ( const annots::MarkupArray annot_array,
int  header_index 
)

将所有输入的标记注释组合在一起。

标记注释可以被分组。组由一个主注释和一个或 多个从属注释组成。主注释中的某些条目被视为组属性, 应该适用于整个组;从属注释中相应的条目 应该被忽略。这些条目包括内容、最后修改时间、填充颜色/边框颜色、 标题、弹出注释、创建时间、主题和打开状态。因此用户应该 尊重组属性:当组中注释的属性被更改时, 同一组中的其他注释也应该被更改。
操作组中任何注释的操作,如移动、剪切和复制,应该被 查看器应用程序视为作用于整个组。

参数
[in]annot_array一个标记对象数组,指定要 组合在一起的标记注释。此数组应至少包含 2个标记注释,并且此数组中的所有标记注释应该 彼此不同。此数组中的所有标记注释应该 在当前页面中。
特别地,如果此数组中的标记注释已经在另一个组中, 该组将被设置为具有新标题的新组。
[in]header_index指定参数 annot_array 中标记注释的索引, 作为组的标题。有效范围:从 0 到 (annot_count -1)。
返回
true 表示成功将输入的标记注释组合在一起,false 表示失败。

◆ SetBox()

void foxit::pdf::PDFPage::SetBox ( BoxType  box_type,
const RectF box 
)

设置页面框。

参数
[in]box_type页面框类型。请参考从 PDFPage::e_MediaBox 开始的值, 这应该是这些值中的一个。
[in]box新的框矩形,在 PDF坐标系统 中。
返回
无。

◆ SetClipRect()

void foxit::pdf::PDFPage::SetClipRect ( const RectF clip_rect)

为当前PDF页面上的所有图形对象设置剪切矩形。

此函数成功完成后,请通过函数 PDFPage::StartParse 重新解析当前页面,参数 is_reparsetrue

参数
[in]clip_rect新的剪切矩形,在 PDF坐标系统 中。
返回
无。

◆ SetRotation()

void foxit::pdf::PDFPage::SetRotation ( common::Rotation  rotate)

设置页面旋转。

参数
[in]rotate新的页面旋转值。请参考从 common::e_Rotation0 开始的值, 这应该是这些值中的一个,除了 common::e_RotationUnknown
返回
无。

◆ SetSize() [1/2]

void foxit::pdf::PDFPage::SetSize ( float  width,
float  height 
)

设置页面宽度和高度。

当改变页面宽度/高度时,Foxit PDF SDK总是按以下方式操作:
首先,选择"页面旋转为0"作为基准页面状态,选择 页面的左下角(页面旋转为0时)作为基准点。 然后,总是改变顶部页面边界和右侧页面边界的位置 (页面旋转为0时)来改变页面大小。

参数
[in]width新的页面宽度。它应该是正值,单位是1/72英寸。
[in]height新的页面高度。它应该是正值,单位是1/72英寸。
返回
无。

◆ SetSize() [2/2]

void foxit::pdf::PDFPage::SetSize ( foxit::pdf::PDFPage::Size  size)

设置页面大小类型。

当改变页面大小时,Foxit PDF SDK总是按以下方式操作:
首先,选择"页面旋转为0"作为基准页面状态,选择 页面的左下角(页面旋转为0时)作为基准点。 然后,总是改变顶部页面边界和右侧页面边界的位置 (页面旋转为0时)来改变页面大小。

参数
[in]size指定当前页面新大小的大小类型。请参考从 PDFPage::e_SizeLetter 开始的值,这应该是这些值中的一个。
返回
无。

◆ SetThumbnail()

void foxit::pdf::PDFPage::SetThumbnail ( const common::Bitmap thumbnail)

设置页面缩略图。

缩略图位图不使用alpha通道。因此建议用户设置 没有alpha通道的位图作为新缩略图。如果设置了带有alpha通道的位图, 新缩略图默认将使用白色背景。 目前,此函数不支持格式为 Bitmap::e_DIBRgb565 的位图。

参数
[in]thumbnail新的页面缩略图。它应该是有效的位图。
返回
无。

◆ SetUserUnitSize()

void foxit::pdf::PDFPage::SetUserUnitSize ( float  user_unit)

设置用户单位。

一个正数,给出默认用户空间单位的大小,以1/72英寸的倍数表示。 支持值的范围取决于实现。如果未设置, Foxit PDF SDK将使用默认值1.0(用户单位为1/72英寸)。

参数
[in]user_unit一个正数,给出默认用户空间单位的大小,以1/72英寸的倍数表示。
返回
无。

◆ SplitTextsInRectangle()

graphics::TextObjectArray foxit::pdf::PDFPage::SplitTextsInRectangle ( RectF  rect,
int  split_step 
)

分割文本对象,这些对象的矩形(在PDF坐标系统中)与指定的矩形 (在PDF坐标系统中)相交,并根据split_step进一步分割相交部分。

此函数根据split_step分割与指定矩形相交的文本对象。 当文本对象与指定矩形相交时,相交部分将根据split_step被分为一个或多个 文本对象。同样,对于只部分与指定矩形相交的文本对象, 它们的非相交部分将被分离出来并作为单独的文本对象处理。如果split_step大于0, 与指定矩形相交的文本对象部分将被分割为几个文本对象。具体来说,每个新的 文本对象将对应指定矩形中的一个段,每个段中的单词数由 split_step定义。如果相交部分中剩余的单词数少于split_step,那些剩余的 单词将被组合成一个文本对象。如果 split_step 为 0,则与指定矩形相交的文本对象的 相交部分将不再进一步分割,将被组合成一个文本对象。

参数
[in]rect指定的矩形,位于 PDF坐标系 中。
[in]split_step用于分割与指定矩形相交的文本对象的单词数。 此值不能为负数。值为 0 表示与指定矩形相交的文本对象将不再 进一步分割,将被组合成一个文本对象。
返回
分割后与指定矩形相交的文本图形对象数组。
注解
矩形(在 PDF坐标系 中)与指定矩形(在 PDF坐标系 中)相交的文本对象将分别分割,不会合并在一起。 如果文本对象的矩形(在 PDF坐标系 中)与指定矩形相交 (在 PDF坐标系中),但其所有字符都位于指定矩形(在 PDF坐标系 中)外, 则这些文本对象不会被视为指定矩形(在 PDF坐标系 中)内的分割文本对象。

◆ StartParse()

common::Progressive foxit::pdf::PDFPage::StartParse ( uint32  flags = PDFPage::e_ParsePageNormal,
common::PauseCallback pause = 0,
bool  is_reparse = false 
)

开始解析当前页面。

解析PDF页面可能需要很长时间,因此Foxit PDF SDK使用渐进式过程来执行此操作。 页面内容的所有资源将在PDF页面解析后加载。
用户可以在不解析页面的情况下获取页面或注释的字典,但要执行 与页面内容相关的操作,请首先解析页面。

参数
[in]flags解析标志。请参考从PDFPage::e_ParsePageNormal开始的值, 这应该是这些值中的一个或这些值的组合。 默认值:PDFPage::e_ParsePageNormal
[in]pause暂停回调对象,决定解析过程是否需要暂停。 这可以是NULL,表示在解析过程中不暂停。 如果这不是NULL,它应该是用户实现的有效暂停对象。 默认值:NULL
[in]is_reparsetrue表示重新解析当前页面,false表示不 重新解析当前页面。默认值:false
返回
渐进式对象。请通过函数common::Progressive::GetRateOfProgress检查当前进度的比率。 如果比率还不是100,调用函数common::Progressive::Continue继续进度直到进度完成。
注解
当参数is_reparse设置为true时,表示重新解析当前PDF页面, 所有检索到的图形对象位置(作为POSITION对象)和图形对象(作为 graphics::GraphicsObject对象)将变为无效。
应用程序需要在重新解析PDF页面后重新获取图形对象。

◆ Transform()

bool foxit::pdf::PDFPage::Transform ( const Matrix matrix,
bool  need_transform_clip_path,
bool  need_transform_annotations = false 
)

转换PDF页面,包括页面上的注释和表单字段。

注解
此函数仅支持缩放和平移。执行此操作后,请通过函数 PDFPage::StartParse重新解析当前页面,参数is_reparsetrue, 以便显示预期的内容。
参数
[in]matrix转换矩阵。
[in]need_transform_clip_pathtrue表示转换页面时包含剪切矩形, false表示不包含。
[in]need_transform_annotationstrue表示转换页面时包含注释, false表示不包含。
返回
true表示成功,false表示失败。

◆ UpdateAnnotList()

void foxit::pdf::PDFPage::UpdateAnnotList ( )

更新注释列表。

如果通过直接更改"Annots"字典项来修改(添加/删除...)任何注释, 请在更改后调用此函数来更新注释列表。

返回
无。