Foxit PDF SDK
foxit.pdf.ReflowPage类 参考
类 foxit.pdf.ReflowPage 继承关系图:
foxit.common.Base

Public 类型

enum  Flags { Flags.e_Normal = 0x0, Flags.e_WithImage = 0x1, Flags.e_NoTruncate = 0x2 }
 用于重排页面的解析标志枚举。 更多...
 

Public 成员函数

 ReflowPage (PDFPage page)
 从已解析的PDF页面构造的构造函数。 更多...
 
 ReflowPage (ReflowPage other)
 使用另一个重排页面对象的构造函数。 更多...
 
float GetContentHeight ()
 在当前重排页面对象解析完成后获取内容高度。 更多...
 
float GetContentWidth ()
 在当前重排页面对象解析完成后获取内容宽度。 更多...
 
Matrix2D GetDisplayMatrix (float offset_x, float offset_y, int width, int height, Rotation rotate)
 根据当前重排页面和屏幕之间顶边的偏移量获取显示矩阵。 更多...
 
string GetFocusData (Matrix2D matrix, PointF point)
 获取设备坐标系中给定位置对应的焦点数据。 更多...
 
PointF GetFocusPosition (Matrix2D matrix, string focus_data)
 获取设备坐标系中给定焦点数据对应的位置。 更多...
 
bool IsEmpty ()
 检查当前对象是否为空。 更多...
 
bool IsParsed ()
 检查当前重排页面是否已被解析。 更多...
 
void SetImageScale (float image_scale)
 设置图像缩放。可以在调用函数 ReflowPage.StartParse 之前调用此函数。 更多...
 
void SetLineSpace (float line_space)
 设置行间距。可以在调用函数 ReflowPage.StartParse 之前调用此函数。 更多...
 
void SetParseFlags (int flags)
 设置解析标志。可以在调用函数 ReflowPage.StartParse 之前调用此函数。 更多...
 
void SetScreenMargin (int left, int top, int right, int bottom)
 设置边距。可以在调用函数 ReflowPage.StartParse 之前调用此函数。 更多...
 
void SetScreenSize (float width, float height)
 设置屏幕尺寸。在调用函数 ReflowPage.StartParse ReflowPage.SetLineSpace 之前应该调用此函数。 更多...
 
void SetTopSpace (float top_space)
 设置顶部空间。可以在调用函数 ReflowPage.StartParse 之前调用此函数。 更多...
 
void SetZoom (int zoom)
 设置缩放因子。可以在调用函数 ReflowPage.StartParse 之前调用此函数。 更多...
 
Progressive StartParse (PauseCallback pause)
 开始解析当前重排页面。 更多...
 

详细描述

为了在小屏幕设备上显示页面内容,Foxit PDF SDK 引入了"重排页面"的概念。 在重排页面中,原始PDF页面内容将被重新排列以适应指定的屏幕尺寸。
对于PDF页面,当用户在此PDF页面及其相关重排页面之间切换时,或在不同尺寸的 相关重排页面之间切换时,用户可能希望在重排页面中保持聚焦在某个位置。 为了跟踪焦点位置,Foxit PDF SDK 使用"焦点数据"来表示焦点位置。 焦点数据类似于PDF中的书签或目的地,但更简单。用户可以存储焦点数据 (或将数据保存到文件),以便用户稍后可以通过焦点数据再次检索焦点位置,即使 重排页面的尺寸发生了变化。
重排页面对象应该从已解析的PDF页面构造。此类提供以下功能:

要渲染重排页面,请使用函数 common.Renderer.StartRenderReflowPage

参见
PDFPage
foxit.common.Renderer

成员枚举类型说明

◆ Flags

用于重排页面的解析标志枚举。

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

枚举值
e_Normal 

正常模式的解析标志,不包含图像。

e_WithImage 

图像模式的解析标志。

e_NoTruncate 

解析标志,用于决定是否允许在指定屏幕尺寸内截断第一个/最后一个图像或文本行。

最终解析的重排页面高度可能大于实际屏幕高度。在这种情况下, 重排页面的内容将在应用程序中显示在多个屏幕上。
应用程序可以使用以下模式来显示这样的重排页面:

  • 一次只在屏幕上显示重排页面内容的一部分。当用户点击或触摸时, 显示内容的前一部分或后一部分。这就像在真实书籍中翻页一样。 这里,称这种模式为"单屏模式"。

  • 连续显示重排页面——这意味着用户可以滚动屏幕查看 此重排页面中内容的任何部分。这里,称这种模式为"滚动屏幕模式"。

如果使用"单屏模式"显示重排页面,可能会出现截断问题:第一行文本 或图像在屏幕顶部只显示下半部分,或最后一行文本或图像在屏幕底部只显示 上半部分。可以设置此标志来避免这种问题。
如果使用"滚动屏幕模式",则不需要使用此标志。

构造及析构函数说明

◆ ReflowPage() [1/2]

foxit.pdf.ReflowPage.ReflowPage ( PDFPage  page)
inline

从已解析的PDF页面构造的构造函数。

参数
[in]page已解析的有效PDF页面对象。

◆ ReflowPage() [2/2]

foxit.pdf.ReflowPage.ReflowPage ( ReflowPage  other)
inline

使用另一个重排页面对象的构造函数。

参数
[in]other另一个重排页面对象。

成员函数说明

◆ GetContentHeight()

float foxit.pdf.ReflowPage.GetContentHeight ( )
inline

在当前重排页面对象解析完成后获取内容高度。

返回
内容高度。

◆ GetContentWidth()

float foxit.pdf.ReflowPage.GetContentWidth ( )
inline

在当前重排页面对象解析完成后获取内容宽度。

返回
内容宽度。

◆ GetDisplayMatrix()

Matrix2D foxit.pdf.ReflowPage.GetDisplayMatrix ( float  offset_x,
float  offset_y,
int  width,
int  height,
Rotation  rotate 
)
inline

根据当前重排页面和屏幕之间顶边的偏移量获取显示矩阵。

此函数只能在重排页面解析完成后使用。

参数
[in]offset_x偏移值,表示从当前重排页面顶边 到屏幕顶边的偏移量。
[in]offset_y偏移值,表示从当前重排页面左边 到屏幕左边的偏移量。
[in]width屏幕中变换区域的宽度,通常以像素为单位。
[in]height屏幕中变换区域的高度,通常以像素为单位。
[in]rotate旋转值。请参考从 foxit.common.Rotation.e_Rotation0 开始的值, 应该是这些值中的一个。
返回
显示矩阵。

◆ GetFocusData()

string foxit.pdf.ReflowPage.GetFocusData ( Matrix2D  matrix,
PointF  point 
)
inline

获取设备坐标系中给定位置对应的焦点数据。

此函数只能在重排页面解析完成后使用。
焦点数据类似于PDF中的书签或目的地,用于定位 重排页面中指定内容的位置。对于PDF页面,指定内容的位置是固定的, 即使相关重排页面的大小发生变化也不会改变。因此焦点数据可以用于 在相关的不同大小但相同重排内容的重排页面中定位PDF页面的相同内容。
通常,用户可以调用函数 ReflowPage.GetFocusData 来获取 指定位置的焦点数据,并存储焦点数据。当重排页面大小改变时, 用户可以在函数 ReflowPage.GetFocusPosition 中使用存储的焦点数据 来获取新位置,然后仍然聚焦在相同的内容上或附近。

参数
[in]matrix由函数 ReflowPage.GetDisplayMatrix 返回的矩阵。
[in]point设备坐标系中指定位置的点。
返回
焦点数据。

◆ GetFocusPosition()

PointF foxit.pdf.ReflowPage.GetFocusPosition ( Matrix2D  matrix,
string  focus_data 
)
inline

获取设备坐标系中给定焦点数据对应的位置。

此函数只能在重排页面解析完成后使用。
焦点数据类似于PDF中的书签或目的地,用于定位 重排页面中指定内容的位置。对于PDF页面,指定内容的位置是固定的, 即使相关重排页面的大小发生变化也不会改变。因此焦点数据可以用于 在相关的不同大小但相同重排内容的重排页面中定位PDF页面的相同内容。
通常,用户可以调用函数 ReflowPage.GetFocusData 来获取 指定位置的焦点数据,并存储焦点数据。当重排页面大小改变时, 用户可以在函数 ReflowPage.GetFocusPosition 中使用存储的焦点数据 来获取新位置,然后仍然聚焦在相同的内容上或附近。

参数
[in]matrix由函数 ReflowPage.GetDisplayMatrix 返回的矩阵。
[in]focus_data用于获取其在设备坐标系中对应位置的焦点数据, 使用指定的矩阵。 这是通过之前调用函数 ReflowPage.GetFocusData 获取的。
返回
设备坐标系中的位置。

◆ IsEmpty()

bool foxit.pdf.ReflowPage.IsEmpty ( )
inline

检查当前对象是否为空。

当前对象为空时,意味着当前对象无用。

返回
true 表示当前对象为空,false 表示不为空。

◆ IsParsed()

bool foxit.pdf.ReflowPage.IsParsed ( )
inline

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

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

◆ SetImageScale()

void foxit.pdf.ReflowPage.SetImageScale ( float  image_scale)
inline

设置图像缩放。可以在调用函数 ReflowPage.StartParse 之前调用此函数。

参数
[in]image_scale图像缩放。此值应为正数。
如果未设置图像缩放,默认使用值 1.0f。
返回
无。

◆ SetLineSpace()

void foxit.pdf.ReflowPage.SetLineSpace ( float  line_space)
inline

设置行间距。可以在调用函数 ReflowPage.StartParse 之前调用此函数。

参数
[in]line_space行间距。此值应在 -25 到 (屏幕高度/2) 之间,屏幕高度 由 函数 ReflowPage.SetScreenSize 设置。如果未设置行间距,默认使用值 0。
返回
无。

◆ SetParseFlags()

void foxit.pdf.ReflowPage.SetParseFlags ( int  flags)
inline

设置解析标志。可以在调用函数 ReflowPage.StartParse 之前调用此函数。

参数
[in]flags解析标志。请参考从 foxit.pdf.ReflowPage.Flags.e_Normal 开始的值, 应该是这些值中的一个或组合。 如果未设置解析标志,默认使用值 foxit.pdf.ReflowPage.Flags.e_Normal
返回
无。

◆ SetScreenMargin()

void foxit.pdf.ReflowPage.SetScreenMargin ( int  left,
int  top,
int  right,
int  bottom 
)
inline

设置边距。可以在调用函数 ReflowPage.StartParse 之前调用此函数。

如果从未为当前重排页面设置边距,Foxit PDF SDK 将使用值 (0, 0, 0, 0) 作为默认边距。
如果设置了新边距,新边距将一直有效,直到当前重排页面被 重新解析和渲染。

参数
[in]left左边距。此值应在 0 和 (屏幕宽度 / 3) 之间,屏幕宽度 由 函数 ReflowPage.SetScreenSize 设置。
[in]top顶边距。此值应在 0 和 (屏幕高度 / 3) 之间,屏幕高度 由 函数 ReflowPage.SetScreenSize 设置。
[in]right右边距。此值应在 0 和 (屏幕宽度 / 3) 之间,屏幕宽度 由 函数 ReflowPage.SetScreenSize 设置。
[in]bottom底边距。此值应在 0 和 (屏幕高度 / 3) 之间,屏幕高度 由 函数 ReflowPage.SetScreenSize 设置。
返回
无。

◆ SetScreenSize()

void foxit.pdf.ReflowPage.SetScreenSize ( float  width,
float  height 
)
inline

设置屏幕尺寸。在调用函数 ReflowPage.StartParse ReflowPage.SetLineSpace 之前应该调用此函数。

在解析重排页面和设置行间距之前,用户应该调用此函数来设置 解析重排页面的屏幕尺寸。

参数
[in]width屏幕宽度。
[in]height屏幕高度。
返回
无。

◆ SetTopSpace()

void foxit.pdf.ReflowPage.SetTopSpace ( float  top_space)
inline

设置顶部空间。可以在调用函数 ReflowPage.StartParse 之前调用此函数。

此函数用于设置页面顶部和屏幕顶部之间的距离。此距离将在 解析重排页面时生效。

参数
[in]top_space顶部空间。此值应在 0 和 高度 之间。
如果未设置顶部空间,默认使用值 0。
返回
无。

◆ SetZoom()

void foxit.pdf.ReflowPage.SetZoom ( int  zoom)
inline

设置缩放因子。可以在调用函数 ReflowPage.StartParse 之前调用此函数。

如果从未为当前重排页面设置缩放因子,Foxit PDF SDK 将使用值 100 作为默认缩放因子,表示 100。
如果设置了新的缩放因子,新的缩放因子将一直有效,直到当前重排页面被 重新解析和渲染。

参数
[in]zoom缩放因子。该值表示百分比值,例如 100 表示 100。 此值应在 25 和 1000 之间。
如果未设置缩放因子,默认使用值 100。
返回
无。

◆ StartParse()

Progressive foxit.pdf.ReflowPage.StartParse ( PauseCallback  pause)
inline

开始解析当前重排页面。

解析重排页面可能需要很长时间,因此 Foxit PDF SDK 使用渐进过程来完成此操作。 重排页面解析完成后,将加载有关重排页面的所有资源。
在使用当前重排页面对象的任何获取函数之前,应该调用此函数。 如果当前页面中有小部件注释,目前不支持此函数。

参数
[in]pause暂停回调对象,决定解析过程是否需要暂停。 这可以是 null,表示在解析过程中不暂停。 如果不是 null,应该是用户实现的有效暂停对象。 默认值:null
返回
一个渐进对象。请通过函数 common.Progressive.GetRateOfProgress 检查当前进度的速率。如果速率还不是 100,调用函数 common.Progressive.Continue 继续进度,直到进度完成。