Foxit PDF SDK
FoxitPDFSDKPython3.ReflowPage Class Reference
Inheritance diagram for FoxitPDFSDKPython3.ReflowPage:
FoxitPDFSDKPython3.Base

Public Member Functions

def ReflowPage (other)
 Constructor, with another reflow page object.
More...
 
def ReflowPage (page)
 Constructor, from a parsed PDF page.
More...
 
def GetContentHeight ()
 Get content height after current reflow page object has been parsed.
More...
 
def GetContentWidth ()
 Get content width after current reflow page object has been parsed.
More...
 
def GetDisplayMatrix (offset_x, offset_y, width, height, rotate)
 Get the display matrix, according to the offset of top side between current reflow page and screen.
More...
 
def GetFocusData (matrix, point)
 Get focus data corresponding to a given position in device coordinate system.
More...
 
def GetFocusPosition (matrix, focus_data)
 Get the position in device coordinate system corresponding to a given focus data.
More...
 
def IsEmpty ()
 Check whether current object is empty or not.
More...
 
def IsParsed ()
 Check if current reflow page has been parsed or not.
More...
 
def SetImageScale (image_scale)
 Set image scale. This can be called before calling function FoxitPDFSDKPython3.ReflowPage.StartParse .
More...
 
def SetLineSpace (line_space)
 Set line space. This can be called before calling function FoxitPDFSDKPython3.ReflowPage.StartParse .
More...
 
def SetParseFlags (flags)
 Set the parsing flag. This can be called before calling function FoxitPDFSDKPython3.ReflowPage.StartParse .
More...
 
def SetScreenMargin (left, top, right, bottom)
 Set margin. This can be called before calling function FoxitPDFSDKPython3.ReflowPage.StartParse .
More...
 
def SetScreenSize (width, height)
 Set screen size. This should be called before calling functions FoxitPDFSDKPython3.ReflowPage.StartParse and FoxitPDFSDKPython3.ReflowPage.SetLineSpace .
More...
 
def SetTopSpace (top_space)
 Set the top space. This can be called before calling function FoxitPDFSDKPython3.ReflowPage.StartParse .
More...
 
def SetZoom (zoom)
 Set zoom factor. This can be called before calling function FoxitPDFSDKPython3.ReflowPage.StartParse .
More...
 
def StartParse (pause)
 Start to parse current reflow page.
More...
 

Static Public Attributes

 e_NoTruncate = _fsdk.ReflowPage_e_NoTruncate
 Parsing flag to decide whether to allow to truncate the first/last image or line of text within the specified screen size or not.
More...
 
 e_WithImage = _fsdk.ReflowPage_e_WithImage
 Parsing flag for image mode.

 

Detailed Description

In order to display page contents in a small screen device, Foxit PDF SDK introduces the concept of "reflow page". In the reflow page, original PDF page contents will be laid out to fit the specified screen size.
For a PDF page, user may wants to keep focusing on a location in the reflow page when user switches between this PDF page and its related reflow page, or switch among these related reflow pages which are in different size. In order to track the focus location, Foxit PDF SDK uses "focus data" to represent the focus location. Focus data is similar to bookmark or destination in PDF, but it is simpler. User can store the focus data (or save the data to file) so that user can retrieve the focus location again by the focus data later, even if the size of reflow page is changed.
A reflow page object should be constructed from a parsed PDF page. This class offers functions to:

To render the reflow page, please use function FoxitPDFSDKPython3.Renderer.StartRenderReflowPage .

See also
PDFPage
FoxitPDFSDKPython3.Renderer

Constructor & Destructor Documentation

◆ ReflowPage() [1/2]

def FoxitPDFSDKPython3.ReflowPage.ReflowPage (   page)

Constructor, from a parsed PDF page.

Parameters
[in]pageA valid PDF page object which has been parsed.

◆ ReflowPage() [2/2]

def FoxitPDFSDKPython3.ReflowPage.ReflowPage (   other)

Constructor, with another reflow page object.

Parameters
[in]otherAnother reflow page object.

Member Function Documentation

◆ GetContentHeight()

def FoxitPDFSDKPython3.ReflowPage.GetContentHeight ( )

Get content height after current reflow page object has been parsed.

Returns
Content height.

◆ GetContentWidth()

def FoxitPDFSDKPython3.ReflowPage.GetContentWidth ( )

Get content width after current reflow page object has been parsed.

Returns
Content width.

◆ GetDisplayMatrix()

def FoxitPDFSDKPython3.ReflowPage.GetDisplayMatrix (   offset_x,
  offset_y,
  width,
  height,
  rotate 
)

Get the display matrix, according to the offset of top side between current reflow page and screen.

This function can only be used when reflow page has been parsed.

Parameters
[in]offset_xOffset value, which means the offset from top side of current reflow page to the top side of screen.
[in]offset_yOffset value, which means the offset from left side of current reflow page to the left side of screen.
[in]widthWidth of the transformation area in screen, commonly in pixels.
[in]heightHeight of the transformation area in screen, commonly in pixels.
[in]rotateRotation value. Please refer to values starting from FoxitPDFSDKPython3.e_Rotation0 and this should be one of these values.
Returns
The display matrix.

◆ GetFocusData()

def FoxitPDFSDKPython3.ReflowPage.GetFocusData (   matrix,
  point 
)

Get focus data corresponding to a given position in device coordinate system.

This function can only be used when reflow page has been parsed.
Focus data, similar to bookmark or destination in PDF, is used to locate the position of a specified content in reflow page. For a PDF page, position of a specified content is fixed and will not be changed even if the size of related reflow page is changed. So focus data can be used to locate the same content from a PDF page in its related reflow pages with different sizes but same reflow content.
Usually, user can call function FoxitPDFSDKPython3.ReflowPage.GetFocusData to get focus data for a specified location, and store the focus data. When the reflow page's size is changed, user can use the stored focus data in function FoxitPDFSDKPython3.ReflowPage.GetFocusPosition to get the new position and then still focus on or near the same content.

Parameters
[in]matrixA matrix returned by function FoxitPDFSDKPython3.ReflowPage.GetDisplayMatrix .
[in]pointThe point of a specified position, in device coordinate system.
Returns
The focus data.

◆ GetFocusPosition()

def FoxitPDFSDKPython3.ReflowPage.GetFocusPosition (   matrix,
  focus_data 
)

Get the position in device coordinate system corresponding to a given focus data.

This function can only be used when reflow page has been parsed.
Focus data, similar to bookmark or destination in PDF, is used to locate the position of a specified content in reflow page. For a PDF page, position of a specified content is fixed and will not be changed even if the size of related reflow page is changed. So focus data can be used to locate the same content from a PDF page in its related reflow pages with different sizes but same reflow content.
Usually, user can call function FoxitPDFSDKPython3.ReflowPage.GetFocusData to get focus data for a specified location, and store the focus data. When the reflow page's size is changed, user can use the stored focus data in function FoxitPDFSDKPython3.ReflowPage.GetFocusPosition to get the new position and then still focus on or near the same content.

Parameters
[in]matrixA matrix returned by function FoxitPDFSDKPython3.ReflowPage.GetDisplayMatrix .
[in]focus_dataFocus data used to get its corresponding position in device coordinate system, with specified matrix. This is retrieved by previous calling of function FoxitPDFSDKPython3.ReflowPage.GetFocusData .
Returns
The position in device coordinate system.

◆ IsEmpty()

def FoxitPDFSDKPython3.ReflowPage.IsEmpty ( )

Check whether current object is empty or not.

When the current object is empty, that means current object is useless.

Returns
true means current object is empty, while false means not.

◆ IsParsed()

def FoxitPDFSDKPython3.ReflowPage.IsParsed ( )

Check if current reflow page has been parsed or not.

Returns
true means current reflow page has been parsed, while false means current page has not been parsed yet.

◆ SetImageScale()

def FoxitPDFSDKPython3.ReflowPage.SetImageScale (   image_scale)

Set image scale. This can be called before calling function FoxitPDFSDKPython3.ReflowPage.StartParse .

Parameters
[in]image_scaleThe image scale. This value should be positive number.
If no image scale is set, value 1.0f will be used by default.
Returns
None.

◆ SetLineSpace()

def FoxitPDFSDKPython3.ReflowPage.SetLineSpace (   line_space)

Set line space. This can be called before calling function FoxitPDFSDKPython3.ReflowPage.StartParse .

Parameters
[in]line_spaceThe line space. This value should between -25 to (screen height/2), screen height set by the function FoxitPDFSDKPython3.ReflowPage.SetScreenSize . If no line space is set, value 0 will be used by default.
Returns
None.

◆ SetParseFlags()

def FoxitPDFSDKPython3.ReflowPage.SetParseFlags (   flags)

Set the parsing flag. This can be called before calling function FoxitPDFSDKPython3.ReflowPage.StartParse .

Parameters
[in]flagsParsing flags. Please refer to values starting from FoxitPDFSDKPython3.ReflowPage.e_Normal and this should be one or a combination of these values. If no parsing flag is set, value FoxitPDFSDKPython3.ReflowPage.e_Normal will be used by default.
Returns
None.

◆ SetScreenMargin()

def FoxitPDFSDKPython3.ReflowPage.SetScreenMargin (   left,
  top,
  right,
  bottom 
)

Set margin. This can be called before calling function FoxitPDFSDKPython3.ReflowPage.StartParse .

If no margin has ever been set to current reflow page, Foxit PDF SDK will use value (0, 0, 0, 0) as default margin.
If new margin is set, the new margin will take effect until current reflow page has been re-parsed and rendered again.

Parameters
[in]leftThe left margin. This value should between 0 and (screen width / 3), screen width set by the function FoxitPDFSDKPython3.ReflowPage.SetScreenSize .
[in]topThe top margin. This value should between 0 and (screen height/ 3), screen height set by the function FoxitPDFSDKPython3.ReflowPage.SetScreenSize .
[in]rightThe right margin. This value should between 0 and (screen width / 3), screen width set by the function FoxitPDFSDKPython3.ReflowPage.SetScreenSize .
[in]bottomThe bottom margin. This value should between 0 and (screen height / 3), screen height set by the function FoxitPDFSDKPython3.ReflowPage.SetScreenSize .
Returns
None.

◆ SetScreenSize()

def FoxitPDFSDKPython3.ReflowPage.SetScreenSize (   width,
  height 
)

Set screen size. This should be called before calling functions FoxitPDFSDKPython3.ReflowPage.StartParse and FoxitPDFSDKPython3.ReflowPage.SetLineSpace .

Before parsing a reflow page and setting line space, user should call this function to set the screen size for parsing the reflow page.

Parameters
[in]widthThe screen width.
[in]heightThe screen height.
Returns
None.

◆ SetTopSpace()

def FoxitPDFSDKPython3.ReflowPage.SetTopSpace (   top_space)

Set the top space. This can be called before calling function FoxitPDFSDKPython3.ReflowPage.StartParse .

This function is used to set the distance between the page's top and the screen's top. The distance will take effect when parsing a reflow page.

Parameters
[in]top_spaceThe top space. This value should between 0 and height.
If no top space is set, value 0 will be used by default.
Returns
None.

◆ SetZoom()

def FoxitPDFSDKPython3.ReflowPage.SetZoom (   zoom)

Set zoom factor. This can be called before calling function FoxitPDFSDKPython3.ReflowPage.StartParse .

If no zoom factor has ever been set to current reflow page, Foxit PDF SDK will use value 100 as default zoom factor, which means 100%.
If new zoom factor is set, the new zoom factor will take effect until current reflow page has been re-parsed and rendered again.

Parameters
[in]zoomZoom factor. The value represents the percent value, for example, 100 means 100%. This value should between 25 and 1000.
If no zoom factor is set, value 100 will be used by default.
Returns
None.

◆ StartParse()

def FoxitPDFSDKPython3.ReflowPage.StartParse (   pause)

Start to parse current reflow page.

It may take a long time to parsing a reflow page, so Foxit PDF SDK uses a progressive process to do this. All the resources about reflow page will be loaded after the reflow page is parsed.
This function should be called before any getting function of current reflow page object can be used. Currently this function can not be supported if there are widget annotations in current page.

Parameters
[in]pausePause callback object which decides if the parsing process needs to be paused. This can be null which means not to pause during the parsing process. If this is not null, it should be a valid pause object implemented by user.
Returns
A progressive object. Please check the rate of current progress by function FoxitPDFSDKPython3.Progressive.GetRateOfProgress . If the rate is not 100 yet, call function FoxitPDFSDKPython3.Progressive.Continue to continue the progress until the progress is finished.

Member Data Documentation

◆ e_NoTruncate

FoxitPDFSDKPython3.ReflowPage.e_NoTruncate = _fsdk.ReflowPage_e_NoTruncate
static

Parsing flag to decide whether to allow to truncate the first/last image or line of text within the specified screen size or not.

The height of final parsed reflow page may be larger than the actual screen height. In this case, the content of a reflow page would be shown in more than one screen in application.
Application may use following modes to show such reflow page:

  • Show only part of content of the reflow page in the screen in one time. When user clicks or taps, show the previous or next part of content. This is like to turn to a page in a real book. Here, call this mode as "single screen mode".
  • Show the reflow page continuously – that means user can scroll the screen to see any part of content in this reflow page. Here, call this mode as "scroll screen mode".

If use "single screen mode" to show a reflow page, a truncate problem may occurs: the first line of text or image just shows the bottom half in the top of the screen, or the last line of text of image just shows the top half in the bottom of the screen. This flag can be set to avoid such problem.
If use "scroll screen mode", no need to use this flag.