Foxit PDF SDK
<FSActionCallback> Protocol Reference

Inherits <NSObject>.

Instance Methods

(BOOL) - addMenuItem:is_prepend:
 A callback function to adds a menu item to a menu. More...
 
(FSSearchIndexConfig *) - addSearchIndex:selected:
 A callback function to add a search index. More...
 
(BOOL) - addSubMenu:
 A callback function to add a menu item with a submenu to the application. More...
 
(BOOL) - addToolButton:
 A callback function to add a tool button. More...
 
(int) - alert:title:type:icon:
 A callback function used to pop up a dialog to show warnings or hints. More...
 
(BOOL) - beep:
 A callback function to cause the system to play a sound. More...
 
(NSString *) - browseFile
 A callback function to show a file selection dialog, and the selected file path should be returned. More...
 
(NSString *) - browseFile:file_format:file_filter:
 A callback function to show a file selection dialog. More...
 
(void) - closeDoc:is_prompt_to_save:
 A callback function to close document. More...
 
(FSPDFDoc *) - createBlankDoc
 A callback function to create a blank PDF document object. More...
 
(void) - enablePageLoop:
 A callback function to set the flag specifies whether the document will loop around to the beginning of the document in response to a page advance (whether generated by mouse click, keyboard, or timer) in full screen mode. More...
 
(BOOL) - executeNamedAction:named_action:
 A callback function to execute a named action. More...
 
(NSString *) - getAppInfo:
 A callback function to get application information. More...
 
(NSString *) - getAttachmentsFilePath:name:
 A callback function to get the file path of attachments file. More...
 
(FSPDFDoc *) - getCurrentDoc
 A callback function to receive current PDF document object. More...
 
(int) - getCurrentPage:
 A callback function used to receive current page index. More...
 
(BOOL) - getDocChangeMark:
 A callback function to receive the change mark which indicates whether the content of document is changed or not. More...
 
(NSString *) - getExtractedEmbeddedFilePath:name:
 A callback function to get the file path of extracted embedded file. More...
 
(NSString *) - getFilePath:
 A callback function to get the file path of current PDF document. More...
 
(BOOL) - getFullScreen
 A callback function to get whether the full screen mode is set. More...
 
(FSIdentityProperties *) - getIdentityProperties
 A callback function used to get identity properties of current user. More...
 
(FSActionCallbackLanguage- getLanguage
 A callback function to get the language of the running viewer application. More...
 
(FSActionCallbackLayoutMode- getLayoutMode
 A callback function to get the page layout of the current document. More...
 
(FSMenuListArray *) - getMenuItemNameList
 A callback function to get the menu item name list. More...
 
(FSPointF *) - getMousePosition
 A callback function to get current mouse position. More...
 
(FSPDFDoc *) - getOpenedDoc:
 A callback function to receive an opened PDF document object by index. More...
 
(int) - getOpenedDocCount
 A callback function to receive the count of opened documents. More...
 
(FSRotation- getPageRotation:page_index:
 A callback function used to receive current displaying rotation of a page on PDF viewer. More...
 
(float) - getPageScale
 A callback function to get current page zoom value. More...
 
(FSRectF *) - getPageWindowRect
 A callback function to get the rectangle for the page view window. The page view window is the area inside the inner document window in which the PDF content is displayed. More...
 
(FSDestinationZoomMode- getPageZoomMode
 A callback function to get the current page zoom mode. More...
 
(NSArray< NSString * > *) - getPrinterNameList
 A callback function to get the printer name list. More...
 
(NSArray< NSString * > *) - getSignatureAPStyleNameList
 A callback function to get the name list of signature appearance style. More...
 
(NSString *) - getTemporaryDirectory
 A callback function to get temporary directory. More...
 
(NSString *) - getTemporaryFileName:file_name:
 A callback function to get the temporary file path. The temporary file name combine the document name with the file suffix name. More...
 
(NSString *) - getUntitledBookmarkName
 A callback function to get the new name for an untitled bookmark. More...
 
(BOOL) - invalidateRect:page_index:pdf_rect:
 A callback function to invalidate the client area within the specified rectangle. More...
 
(BOOL) - isCurrentDocOpenedInBrowser
 A callback function to get the flag specifies whether current document is opened in browser. More...
 
(BOOL) - isLocalFile:
 A callback function to get whether the file is local file. More...
 
(BOOL) - isPageLoop
 A callback function to get the flag specifies whether the document will loop around to the beginning of the document in response to a page advance. More...
 
(BOOL) - launchURL:
 A callback function to launch to a specified URL. More...
 
(BOOL) - mailData:data_type:is_ui:to:subject:cc:bcc:message:
 A callback function to mail data or message, with or without user interaction. More...
 
(FSActionCallbackJsMailResult- mailDoc:to_address:cc_address:bcc_address:subject:message:is_ui:
 A callback function to mails a document as an attachment. More...
 
(void) - onFieldValueChanged:type:value_before_changed:value_after_changed:
 A callback function to notify the value change of the field. More...
 
(FSPDFDoc *) - openDoc:password:
 A callback function to open a PDF file. More...
 
(id< FSMediaPlayerCallback >) - openMediaPlayer:
 A callback function to open media player. More...
 
(NSString *) - popupMenu:is_selected_item:
 A callback function to pop up a menu window. More...
 
(FSMenuItemEx *) - popupMenuEx:is_selected_item:
 A callback function to pop up a menu window. More...
 
(void) - postMessageToHtml:
 A callback function to send message asynchronously to the message handler for the host container of the PDF document. More...
 
(BOOL) - print:is_ui:page_range:is_silent:is_shrunk_to_fit:is_printed_as_image:is_reversed:is_to_print_annots:
 A callback function to print pages within a specified index range. More...
 
(BOOL) - print:print_params:
 A callback function to print document with print parameters. More...
 
(void) - query:search_scope:search_option:di_path:
 a callback function to query the text keywords. More...
 
(bool) - removeSearchIndex:
 (Reserved, unsupported yet) A callback function to remove a search index. More...
 
(BOOL) - removeToolButtom:
 A callback function to remove a tool button added by the function ActionCallback::AddToolButton. More...
 
(NSString *) - response:title:default_value:label:is_password:
 A callback function to display a dialog box containing a question and an entry field for the user to reply to the question. More...
 
(void) - scroll:
 A callback function to scroll the specified point on the current page into the middle of the current view. More...
 
(void) - selectPageNthWord:start_offset:end_offset:is_show_selection:
 A callback function to change the current page number and selects the specified word on the page. More...
 
(void) - setCurrentPage:destination:
 A callback function used to set the current page by destination. More...
 
(void) - setCurrentPage:page_index:
 A callback function used to set the current page by index. More...
 
(void) - setDefaultPageTransitionMode:trans_di:
 A callback function to set the default page trastion mode for full screen mode. More...
 
(BOOL) - setDocChangeMark:change_mark:
 A callback function to set the change mark which indicates whether the content of document is changed or not. More...
 
(void) - setFullScreen:
 A callback function to set full screen mode. More...
 
(BOOL) - setIdentityProperties:
 A callback function used to set identity properties of current user. More...
 
(void) - setLayoutMode:is_cover_mode:
 A callback function to set the page layout of the current document. More...
 
(BOOL) - setPageRotation:page_index:rotation:
 A callback function used to set the rotation value of a page on PDF viewer. More...
 
(void) - setPageScale:dest:
 A callback function to set current page zoom value. More...
 
(BOOL) - showDialog:
 A callback function to show the dialog. More...
 
(FSSOAPResponseInfo *) - soapRequest:
 A callback function to initiates a remote procedure call (RPC) or sends an XML message to a SOAP HTTP endpoint. More...
 
(BOOL) - submitForm:form_data:url:file_format_type:
 A callback function to submit the form data to a specified URL. More...
 
(void) - updateLogicalLabel
 A callback function to update logical label. More...
 
(unsigned int) - verifySignature:pdf_signature:
 A callback function to verify specified signature. More...
 

Detailed Description

This class represents a callback object for performing PDF actions. All the pure virtual functions in this class are used as callback functions and should be implemented by user, to perform PDF actions, such as javascript actions.

Method Documentation

◆ addMenuItem:is_prepend:()

- (BOOL) addMenuItem: (FSMenuItemConfig *)  menu_item_config
is_prepend: (BOOL)  is_prepend 
required

A callback function to adds a menu item to a menu.

This callback function will be triggered by the javascript method "app.addMenuItem".

Parameters
[in]menu_item_configThe config of the menu item.
[in]is_prependDetermines the position of the new menu item relative to the position specified by MenuItemConfig::pos or MenuItemConfig::pos_str. The default value is false. If this parameter is true, the rules for insertion are as follows:
  • If MenuItemConfig::pos_str is used, the new item is placed before the named item.
  • If MenuItemConfig::pos is used, the new item is placed before the numbered item.
  • If the named item cannot be found or position is not between zero and the number of items in the list, inclusive, the new item is inserted as the first item in the menu (rather than at the end of the menu).

    parameter is useful when the named item is the first item in a group.

Returns
true means success, while false means failure.

◆ addSearchIndex:selected:()

- (FSSearchIndexConfig*) addSearchIndex: (NSString *)  di_path
selected: (bool)  is_selected 
required

A callback function to add a search index.

This callback function will be triggered by the javascript method "search.addIndex".This callback function is optional, so it can be implemented to do nothing.

Parameters
[in]di_pathA device-independent path to an index file on the user's hard drive.
[in]is_selectedSpecifies whether the index should be selected for searching. Default value: true.
Returns
A FSSearchIndexConfig.

◆ addSubMenu:()

- (BOOL) addSubMenu: (FSMenuItemConfig *)  menu_item_config
required

A callback function to add a menu item with a submenu to the application.

This callback function will be triggered by the javascript method "app.addSubMenu".

Parameters
[in]menu_item_configThe config of the menu item.
Returns
true means success, while false means failure.

◆ addToolButton:()

- (BOOL) addToolButton: (FSButtonItem *)  button_item
required

A callback function to add a tool button.

This callback function will be triggered by the javascript method "app.addToolButton".

Parameters
[in]button_itemThe ButtonItem object of the tool button.
Returns
true means success, while false means failure.

◆ alert:title:type:icon:()

- (int) alert: (NSString *)  msg
title: (NSString *)  title
type: (int)  type
icon: (int)  icon 
required

A callback function used to pop up a dialog to show warnings or hints.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]msgThe message string to be displayed in the dialog.
[in]titleThe title of the dialog.
[in]typeType of button group. It would be one of following values:
  • 0: OK;(default value.)
  • 1: OK, Cancel;
  • 2: Yes, NO;
  • 3: Yes, NO, Cancel.
[in]iconIcon type. It would be one of following values:
  • 0: Error;(default value.)
  • 1: Warning;
  • 2: Question;
  • 3: Status.
Returns
The return value should be one of following values:
  • 1: OK;
  • 2: Cancel;
  • 3: NO;
  • 4: Yes;

◆ beep:()

- (BOOL) beep: (int)  type
required

A callback function to cause the system to play a sound.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]typeSound type. The value would be on of following values:
  • 0: Error
  • 1: Warning
  • 2: Question
  • 3: Status
  • 4: Default (default value)
Returns
YES means success, while NO means failure.

◆ browseFile()

- (NSString*) browseFile
required

A callback function to show a file selection dialog, and the selected file path should be returned.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
The file path. It can be an empty string.

◆ browseFile:file_format:file_filter:()

- (NSString*) browseFile: (BOOL)  is_open_dialog
file_format: (NSString *)  file_format
file_filter: (NSString *)  file_filter 
required

A callback function to show a file selection dialog.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]is_open_dialogWhether is open or saving dialog, true means open dialog and false means saving dialog.
[in]file_formatThe file format string.
[in]file_filterThe file filter string.
Returns
The file path. It can be an empty string.

◆ closeDoc:is_prompt_to_save:()

- (void) closeDoc: (FSPDFDoc *)  document
is_prompt_to_save: (BOOL)  is_prompt_to_save 
required

A callback function to close document.

This callback function will be triggered by the javascript method "Doc.closeDoc". This callback function is optional, so it can be implemented to do nothing.

Parameters
[in]documentA PDF document object. It would be valid.
[in]is_prompt_to_savetrue means show save prompt, while false means not.
Returns
None.

◆ createBlankDoc()

- (FSPDFDoc*) createBlankDoc
required

A callback function to create a blank PDF document object.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
The newly created blank PDF document object.

◆ enablePageLoop:()

- (void) enablePageLoop: (BOOL)  is_loop
required

A callback function to set the flag specifies whether the document will loop around to the beginning of the document in response to a page advance (whether generated by mouse click, keyboard, or timer) in full screen mode.

This callback function will be triggered by the javascript property "app.fs.loop". This callback function is optional, so it can be implemented to do nothing.

Parameters
[in]is_looptrue means to loop around to the beginning of the document, while false means not.
Returns
None.

◆ executeNamedAction:named_action:()

- (BOOL) executeNamedAction: (FSPDFDoc *)  document
named_action: (NSString *)  named_action 
required

A callback function to execute a named action.

Please refer to description of "Named Actions" in Section 8.5.3 of <PDF Reference 1.7> for more details. This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]documentA PDF document object. It would be valid.
[in]named_actionA string to specify a named action.
Returns
YES means success, while NO means failure.

◆ getAppInfo:()

- (NSString*) getAppInfo: (FSActionCallbackAppInfoType type
required

A callback function to get application information.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.
For the digital information like FSActionCallbackAppInfoTypeViewerVersion, FSActionCallbackAppInfoTypeAppVersion and FSActionCallbackAppInfoTypeFormsVersion, please use string to represent it.

Parameters
[in]typeType of information. Please refer to values starting from FSActionCallbackAppInfoTypeFormsVersion and this would be one of these macros.
Returns
The application information.

◆ getAttachmentsFilePath:name:()

- (NSString*) getAttachmentsFilePath: (FSPDFDoc *)  pdf_doc
name: (NSString *)  name 
required

A callback function to get the file path of attachments file.

This callback function will be triggered by the javascript method "Doc.importDataObject". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]pdf_docA PDF document object. It will embed with a data object.
[in]nameThe name to associate with the data object. It's the parameter "cName" of the method "Doc.importDataObject".
Returns
The path of the file which will be embedded as a data object.

◆ getCurrentDoc()

- (FSPDFDoc*) getCurrentDoc
required

A callback function to receive current PDF document object.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
Current PDF document object.

◆ getCurrentPage:()

- (int) getCurrentPage: (FSPDFDoc *)  document
required

A callback function used to receive current page index.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]documentA PDF document object. It would be valid.
Returns
Current page index. The value should be stared from 0 and less than page count of the specified document.

◆ getDocChangeMark:()

- (BOOL) getDocChangeMark: (FSPDFDoc *)  document
required

A callback function to receive the change mark which indicates whether the content of document is changed or not.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]documentA PDF document object. It would be valid.
Returns
YES means the PDF document is changed, while NO means not.

◆ getExtractedEmbeddedFilePath:name:()

- (NSString*) getExtractedEmbeddedFilePath: (FSPDFDoc *)  pdf_doc
name: (NSString *)  name 
required

A callback function to get the file path of extracted embedded file.

This callback function will be triggered by the javascript method "Doc.exportDataObject". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]pdf_docA PDF document object. It will be embedded as a data object to the file .
[in]nameThe name of the data object to extract. It's the parameter "cName" of the method "Doc.exportDataObject".
Returns
The path of the file which will embed with a data object.

◆ getFilePath:()

- (NSString*) getFilePath: (FSPDFDoc *)  document
required

A callback function to get the file path of current PDF document.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]documentA PDF document object. It would be valid.
Returns
The file path.

◆ getFullScreen()

- (BOOL) getFullScreen
required

A callback function to get whether the full screen mode is set.

This callback function will be triggered by the javascript property "app.fullScreen" or "app.fs.isFullScreen".

Returns
true means the full screen mode is set, while false means not.

◆ getIdentityProperties()

- (FSIdentityProperties*) getIdentityProperties
required

A callback function used to get identity properties of current user.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
An IdentityProperties object that specifies the identity properties of current user.

◆ getLanguage()

- (FSActionCallbackLanguage) getLanguage
required

A callback function to get the language of the running viewer application.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
The language type. Please refer to values starting from FSActionCallbackLanguageUnknown and this should be one of these values.

◆ getLayoutMode()

- (FSActionCallbackLayoutMode) getLayoutMode
required

A callback function to get the page layout of the current document.

This callback function will be triggered by the javascript properties "Doc.layout". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
The layout mode. Please refer to values starting from FSActionCallbackLayoutModeSinglePage and this should be one of these values.

◆ getMenuItemNameList()

- (FSMenuListArray*) getMenuItemNameList
required

A callback function to get the menu item name list.

This callback function will be triggered by the javascript method "app.listMenuItems".

Returns
An array of menu list objects.

◆ getMousePosition()

- (FSPointF*) getMousePosition
required

A callback function to get current mouse position.

This callback function will be triggered by the javascript properties "doc.mouseX" or "doc.mouseY". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
A position in device coordinate system.

◆ getOpenedDoc:()

- (FSPDFDoc*) getOpenedDoc: (int)  index
required

A callback function to receive an opened PDF document object by index.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]indexThe index of an opened PDF documents. Valid range: from 0 to count-1. count is returned by callback function FSActionCallback::getOpenedDocCount
Returns
A opened PDF document object.

◆ getOpenedDocCount()

- (int) getOpenedDocCount
required

A callback function to receive the count of opened documents.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
The count of opened documents.

◆ getPageRotation:page_index:()

- (FSRotation) getPageRotation: (FSPDFDoc *)  document
page_index: (int)  page_index 
required

A callback function used to receive current displaying rotation of a page on PDF viewer.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]documentA PDF document object. It would be valid.
[in]page_indexA page index, used to specify which page's rotation is to be retrieved. The index would start from 0 and less than page count of the specified document.
Returns
The rotation of specified page. Please refer to values starting from FSRotation0 and this should be one of these values.

◆ getPageScale()

- (float) getPageScale
required

A callback function to get current page zoom value.

This callback function will be triggered by the javascript properties "Doc.zoom". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
A zoom value. For example, a zoom value of 1.0 specifies 100%. It should be a positive number.

◆ getPageWindowRect()

- (FSRectF*) getPageWindowRect
required

A callback function to get the rectangle for the page view window. The page view window is the area inside the inner document window in which the PDF content is displayed.

This callback function will be triggered by the javascript property "Doc.pageWindowRect". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
A rectangle for the page view window.

◆ getPageZoomMode()

- (FSDestinationZoomMode) getPageZoomMode
required

A callback function to get the current page zoom mode.

This callback function will be triggered by the javascript properties "Doc.zoom" or "Doc.zoomType". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
The zoom mode. Please refer to values starting from FSDestinationZoomXYZ and this should be one of these values.

◆ getPrinterNameList()

- (NSArray<NSString*>*) getPrinterNameList
required

A callback function to get the printer name list.

This callback function will be triggered by the javascript property "app.printerNames". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
An array of the printer name.

◆ getSignatureAPStyleNameList()

- (NSArray<NSString*>*) getSignatureAPStyleNameList
required

A callback function to get the name list of signature appearance style.

This callback function will be triggered by the javascript method "SecurityHandler.appearances". This callback function is optional, so it can be implemented to do nothing.

Returns
An array of signature appearance style name.

◆ getTemporaryDirectory()

- (NSString*) getTemporaryDirectory
required

A callback function to get temporary directory.

This callback function will be triggered by the javascript method "Doc.extractpages". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
The temporary directory.

◆ getTemporaryFileName:file_name:()

- (NSString*) getTemporaryFileName: (FSPDFDoc *)  document
file_name: (NSString *)  file_name 
required

A callback function to get the temporary file path. The temporary file name combine the document name with the file suffix name.

This callback function will be triggered by the javascript method "Doc.mailForm". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]documentA PDF document object. It would be valid.
[in]file_nameFile suffix name.
Returns
The temporary file path.

◆ getUntitledBookmarkName()

- (NSString*) getUntitledBookmarkName
required

A callback function to get the new name for an untitled bookmark.

This callback function will be triggered by the javascript mothod "bookmark.createChild" when the parameter "cName" of the method is an empty string. This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
A new name for an untitled bookmark.

◆ invalidateRect:page_index:pdf_rect:()

- (BOOL) invalidateRect: (FSPDFDoc *)  document
page_index: (int)  page_index
pdf_rect: (FSRectF *)  pdf_rect 
required

A callback function to invalidate the client area within the specified rectangle.

All positions are measured in PDF "user space". Implementation should call function FSRenderer::startRender:matrix:pause: for repainting a specified page area.

Parameters
[in]documentA PDF document object. It would be valid.
[in]page_indexA page index. It would start from 0 and less than page count of the specified document.
[in]pdf_rectA rectangle that specifies the page area in PDF coordinate system.
Returns
YES means success, while NO means failure.

◆ isCurrentDocOpenedInBrowser()

- (BOOL) isCurrentDocOpenedInBrowser
required

A callback function to get the flag specifies whether current document is opened in browser.

This callback function will be triggered by the javascript property "doc.hostContainer". This callback function is optional, so it can be implemented to do nothing.

Returns
true means current document is opened in browser, while false means not.

◆ isLocalFile:()

- (BOOL) isLocalFile: (FSPDFDoc *)  document
required

A callback function to get whether the file is local file.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]documentA PDF document object. It would be valid.
Returns
true means the PDF file is loacl file.

◆ isPageLoop()

- (BOOL) isPageLoop
required

A callback function to get the flag specifies whether the document will loop around to the beginning of the document in response to a page advance.

This callback function will be triggered by the javascript property "app.fs.loop". This callback function is optional, so it can be implemented to do nothing.

Returns
true means to loop around to the beginning of the document, while false means not.

◆ launchURL:()

- (BOOL) launchURL: (NSString *)  url
required

A callback function to launch to a specified URL.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]urlA URL.
Returns
YES means success, while NO means failure.

◆ mailData:data_type:is_ui:to:subject:cc:bcc:message:()

- (BOOL) mailData: (void *)  data
data_type: (FSActionCallbackMailType data_type
is_ui: (BOOL)  is_ui
to: (NSString *)  to
subject: (NSString *)  subject
cc: (NSString *)  cc
bcc: (NSString *)  bcc
message: (NSString *)  message 
required

A callback function to mail data or message, with or without user interaction.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]dataPointer to a data which is to be mailed. The value and type of the data depends on parameter data_type:
[in]data_typeMail type. Please refer to values starting from FSActionCallbackMailTypeDoc and this would be one of these values.
[in]is_uiYES means that the remaining parameters are used to seed the compose-new-message window which is displayed to the user.
NO means that the parameter to is required and all other parameters are optional.
[in]toA string that specifies a semicolon-delimited list of recipients for the message.
[in]subjectA string that specifies the subject of the message. The limit of this string's length is 64 KB.
[in]ccA string that specifies a semicolon-delimited list of CC recipients for the message.
[in]bccA string that specifies a semicolon-delimited list of BCC recipients for the message.
[in]messageA string that specifies the content of the message. The limit of this string's length is 64 KB.
Returns
YES means success, while NO means failure.

◆ mailDoc:to_address:cc_address:bcc_address:subject:message:is_ui:()

- (FSActionCallbackJsMailResult) mailDoc: (FSPDFDoc *)  document
to_address: (NSString *)  to_address
cc_address: (NSString *)  cc_address
bcc_address: (NSString *)  bcc_address
subject: (NSString *)  subject
message: (NSString *)  message
is_ui: (BOOL)  is_ui 
required

A callback function to mails a document as an attachment.

This callback function will be triggered by the javascript method "Doc.mailDoc". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]documentA PDF document object. It would be valid.
[in]to_addressTo address.
[in]cc_addressCc address.
[in]bcc_addressBcc address.
[in]subjectMail subject.
[in]messageMail message.
[in]is_uitrue means to show mail dialog, while false means not.
Returns
The mail result. Please refer to values starting from FSActionCallbackJSMailResultFailed and this should be one of these values.

◆ onFieldValueChanged:type:value_before_changed:value_after_changed:()

- (void) onFieldValueChanged: (NSString *)  field_name
type: (FSActionCallbackJSFieldValueChangeType type
value_before_changed: (NSArray< NSString * > *)  value_before_changed
value_after_changed: (NSArray< NSString * > *)  value_after_changed 
required

A callback function to notify the value change of the field.

This callback function will be triggered when the field's value is changed via JavaScript.

Parameters
[in]field_nameA string that specifies the field name.
[in]typefield value change type. Please refer to values starting from FSActionCallbackJSFieldValueChangedByFormat and this would be one of these values.
[in]value_before_changedA string array that specifies the field's value before the change.
For a list box, the parameter represent one or more than one of the field's items which be selected simultaneously.
[in]value_after_changedA string array that specifies the field's value after the change. For a list box, the parameter represent one or more than one of the field's items which be selected simultaneously.
Returns
None.

◆ openDoc:password:()

- (FSPDFDoc*) openDoc: (NSString *)  file_path
password: (NSString *)  password 
required

A callback function to open a PDF file.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]file_pathA full path of an existing PDF file.
[in]passwordPassword for input PDF file. This may be an empty string.
Returns
A opened PDF document object.

◆ openMediaPlayer:()

- (id<FSMediaPlayerCallback>) openMediaPlayer: (FSPlayerArgs *)  player_args
required

A callback function to open media player.

This callback function will be triggered by the javascript method "app.media.openPlayer" or "app.media.createPlayer".

Parameters
[in]player_argsThe FSPlayerArgs object.
Returns
A FSMediaPlayerCallback object.

◆ popupMenu:is_selected_item:()

- (NSString*) popupMenu: (FSMenuListArray *)  menus
is_selected_item: (NSNumber **)  is_selected_item 
required

A callback function to pop up a menu window.

The position of menu window is the same as cursor's. This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]menusAn array of menu list objects.
[out]is_selected_itemOutput parameter that receives the value of whether this menu item is selected or not. true means that the menu item is selected, while false means that the menu item is not selected.
Returns
The name of the menu item that was selected.

◆ popupMenuEx:is_selected_item:()

- (FSMenuItemEx*) popupMenuEx: (FSMenuItemExArray *)  menus
is_selected_item: (NSNumber **)  is_selected_item 
required

A callback function to pop up a menu window.

The position of menu window is the same as cursor's. This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]menusAn array of FSMenuItemEx objects.
[out]is_selected_itemOutput parameter that receives the value of whether a menu item is selected or not. true means that the menu item is selected, while false means that the menu item is not selected.
Returns
The MenuItemEx object of the menu item that was selected.

◆ postMessageToHtml:()

- (void) postMessageToHtml: (NSArray< NSString * > *)  message
required

A callback function to send message asynchronously to the message handler for the host container of the PDF document.

For this message to be delivered, the host container (for example, an <OBJECT> element in an HTML page) must have registered for notification by setting its messageHandler property.
This callback function will be triggered by the javascript method "doc.hostContainer.postMessage". This callback function is optional, so it can be implemented to do nothing.

Parameters
[in]messageAn array of string that specifies the message to be posted.
Returns
None.

◆ print:is_ui:page_range:is_silent:is_shrunk_to_fit:is_printed_as_image:is_reversed:is_to_print_annots:()

- (BOOL) print: (FSPDFDoc *)  document
is_ui: (BOOL)  is_ui
page_range: (FSRange *)  page_range
is_silent: (BOOL)  is_silent
is_shrunk_to_fit: (BOOL)  is_shrunk_to_fit
is_printed_as_image: (BOOL)  is_printed_as_image
is_reversed: (BOOL)  is_reversed
is_to_print_annots: (BOOL)  is_to_print_annots 
required

A callback function to print pages within a specified index range.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]documentA PDF document object. It would be valid.
[in]is_uiYES means that a UI should be presented to the user to obtain printing information and confirm the action.
[in]page_rangeA range object to specify the page range for printing. All the indexes represented in this range would start from 0 and less than page count of the specified document.
[in]is_silentYES means that the cancel dialog box should be suppressed while the document is printing.
[in]is_shrunk_to_fitYES means that the page should be shrunk (if necessary) to fit within the area of the printed page.
[in]is_printed_as_imageYES means that pages should be printed as image.
[in]is_reversedYES means that the printing order should be from parameter end to parameter start.
[in]is_to_print_annotsYES means that annotations should be printed with page.
Returns
YES means success, while NO means failure.

◆ print:print_params:()

- (BOOL) print: (FSPDFDoc *)  document
print_params: (FSPrintParams *)  print_params 
required

A callback function to print document with print parameters.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]documentA PDF document object. It would be valid.
[in]print_paramsA FSPrintParams object.
Returns
true means success, while false means failure.

◆ query:search_scope:search_option:di_path:()

- (void) query: (NSString *)  keywords
search_scope: (FSActionCallbackSearchScope search_scope
search_option: (FSSearchOption *)  search_opion
di_path: (NSString *)  di_path 
required

a callback function to query the text keywords.

This callback function will be triggered by the javascript method "search.query".This callback function is optional, so it can be implemented to do nothing.

Parameters
[in]keywordsThe text content for which to search.
[in]search_scopeSpecifies where the text should be searched. Please refer to values starting from FSActionCallbackSearchScopeActiveDoc and this should be one of these values.
[in]search_optionA FSSearchOption object that represents search option.
[in]di_pathA device-independent path to a folder or search index on the user's computer. This parameter is optional. When search_scope is FSActionCallbackSearchScopeFolder or FSActionCallbackSearchScopeIndex, this parameter is required.
Returns
None.

◆ removeSearchIndex:()

- (bool) removeSearchIndex: (FSSearchIndexConfig *)  search_index_config
required

(Reserved, unsupported yet) A callback function to remove a search index.

This callback function will be triggered by the javascript method "search.removeIndex".This callback function is optional, so it can be implemented to do nothing.

Parameters
[in]search_index_configA FSSearchIndexConfig that represents the search index config.
Returns
true means success, while false means failure.

◆ removeToolButtom:()

- (BOOL) removeToolButtom: (NSString *)  button_name
required

A callback function to remove a tool button added by the function ActionCallback::AddToolButton.

This callback function will be triggered by the javascript method "app.removeToolButton".

Parameters
[in]button_nameThe name of the tool button.
Returns
true means success, while false means failure.

◆ response:title:default_value:label:is_password:()

- (NSString*) response: (NSString *)  question
title: (NSString *)  title
default_value: (NSString *)  default_value
label: (NSString *)  label
is_password: (BOOL)  is_password 
required

A callback function to display a dialog box containing a question and an entry field for the user to reply to the question.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]questionA string that specifies the question to be posed to the user.
[in]titleA string that specifies the title of the dialog box.
[in]default_valueA string that specifies a default value as the answer to the question. If the answer is not specified, no default value is presented.
[in]labelA string that specifies a short string to appear in front of the edit text field.
[in]is_passwordA boolean value that indicates whether user's response should be masked to show:
YES means that the user's response should show as asterisks (*) or bullets (?) to mask the response, which might be sensitive information.
Returns
User's response. It can be an empty string.

◆ scroll:()

- (void) scroll: (FSPointF *)  point
required

A callback function to scroll the specified point on the current page into the middle of the current view.

This callback function will be triggered by the javascript method "Doc.scroll". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]pointThe specified point[PDF coordinate system].
Returns
None.

◆ selectPageNthWord:start_offset:end_offset:is_show_selection:()

- (void) selectPageNthWord: (int)  page_index
start_offset: (int)  start_offset
end_offset: (int)  end_offset
is_show_selection: (BOOL)  is_show_selection 
required

A callback function to change the current page number and selects the specified word on the page.

This callback function will be triggered by the javascript method "Doc.selectPageNthWord". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
page_indexThe page index.
start_offsetThe start word offset.
end_offsetThe end word offset.
is_show_selectiontrue means to show selection, while false means not.
Returns
None.

◆ setCurrentPage:destination:()

- (void) setCurrentPage: (FSPDFDoc *)  document
destination: (FSDestination *)  destination 
required

A callback function used to set the current page by destination.

This callback function is optional, so it can be implemented to do nothing.

Parameters
[in]documentA PDF document object. It would be valid.
[in]destinationA object. None.

◆ setCurrentPage:page_index:()

- (void) setCurrentPage: (FSPDFDoc *)  document
page_index: (int)  page_index 
required

A callback function used to set the current page by index.

This callback function is optional, so it can be implemented to do nothing.

Parameters
[in]documentA PDF document object. It would be valid.
[in]page_indexA page index which is used to change current page. The index would start from 0 and less than page count of the specified document.
Returns
None.

◆ setDefaultPageTransitionMode:trans_di:()

- (void) setDefaultPageTransitionMode: (NSString *)  trans_type
trans_di: (NSString *)  trans_di 
required

A callback function to set the default page trastion mode for full screen mode.

This callback function will be triggered by the javascript property "app.fs.defaultTransition". This callback function is optional, so it can be implemented to do nothing.

Parameters
[in]trans_typeA string that specifies the type of the transition effect. Please refer to the follow values: "Split", "Box", "Fly", "Blinds", "Push", "Wipe", "Glitter", "Cover", "Uncover", "Dissolve", "Replace", "Fade".
[in]trans_diA string that specifies the direction of the transition effect.
  • For "Split", this value can be "HorizontalInward", "HorizontalOutward", "VerticalInward" or "VerticalOutward".
  • For "Box", this value can be "Outward" or "Inward".
  • For "Fly" and "Push", this value can be "Left", "Right", "Up"or "Down".
  • For "Blinds", this value can be "Horizontal" or "Vertical".
  • For "Wipe", "Glitter", "Uncover" and "Cover", this value can be "Left","LeftUp", "LeftDown", "Right", "RightUp", "RightDown","Up"or "Down".
  • For "Dissolve", "Replace" and "Fade", this value will be NULL.
Returns
None.

◆ setDocChangeMark:change_mark:()

- (BOOL) setDocChangeMark: (FSPDFDoc *)  document
change_mark: (BOOL)  change_mark 
required

A callback function to set the change mark which indicates whether the content of document is changed or not.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]documentA PDF document object. It would be valid.
[in]change_markA boolean value that indicates whether the content of document is changed or not.
Returns
YES means success, while NO means failure.

◆ setFullScreen:()

- (void) setFullScreen: (BOOL)  is_full_screen
required

A callback function to set full screen mode.

This callback function will be triggered when the javascript property "app.fullScreen" or "app.fs.isFullScreen" is to be set.

Parameters
[in]is_full_screentrue means to set full screen mode, while false means not.
Returns
None.

◆ setIdentityProperties:()

- (BOOL) setIdentityProperties: (FSIdentityProperties *)  identity_properties
required

A callback function used to set identity properties of current user.

This callback function is optional, so it can be implemented to do nothing.

Returns
YES means success, while NO means failure.

◆ setLayoutMode:is_cover_mode:()

- (void) setLayoutMode: (FSActionCallbackLayoutMode layout_mode
is_cover_mode: (BOOL)  is_cover_mode 
required

A callback function to set the page layout of the current document.

This callback function will be triggered by the javascript properties "Doc.layout". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]layout_modeThe layout mode. Please refer to values starting from FSActionCallbackLayoutModeSinglePage and this should be one of these values.
[in]is_cover_modetrue means that the cover will always displayed separately, while false means not.
Returns
None.

◆ setPageRotation:page_index:rotation:()

- (BOOL) setPageRotation: (FSPDFDoc *)  document
page_index: (int)  page_index
rotation: (FSRotation rotation 
required

A callback function used to set the rotation value of a page on PDF viewer.

This callback function is optional, so it can be implemented to do nothing.

Parameters
[in]documentA PDF document object. It would be valid.
[in]page_indexA page index, used to specify which page's rotation is to be changed. The index would start from 0 and less than page count of the specified document.
[in]rotationNew rotation value. Please refer to values starting from FSRotation0 and this would be one of these values except FSRotationUnknown.
Returns
YES means success, while NO means failure.

◆ setPageScale:dest:()

- (void) setPageScale: (FSDestinationZoomMode zoom_mode
dest: (FSDestination *)  dest 
required

A callback function to set current page zoom value.

This callback function will be triggered by the javascript properties "Doc.zoom" or "Doc.zoomType". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
zoom_modeThe zoom mode. Please refer to values starting from FSDestinationZoomXYZ and this should be one of these values.
destA pdf::Destination object that represents destination data.
Returns
None.

◆ showDialog:()

- (BOOL) showDialog: (FSDialogDescriptionConfig *)  dlg_config
required

A callback function to show the dialog.

This callback function will be triggered by the javascript method "app.execDialog".

Parameters
[in]dlg_configThe DialogDescriptionConfig object.
Returns
true means success, while false means failure.

◆ soapRequest:()

- (FSSOAPResponseInfo*) soapRequest: (FSSOAPRequestProperties *)  request_params
required

A callback function to initiates a remote procedure call (RPC) or sends an XML message to a SOAP HTTP endpoint.

The method either waits for the endpoint to reply (synchronous processing) or calls a method on the notification object (asynchronous processing).

Parameters
[in]request_paramsA FSSOAPRequestProperties that represents a FSSOAPRequestProperties object containing the property parameters for the SOAP request.
Returns
A FSSOAPResponseInfo object.

◆ submitForm:form_data:url:file_format_type:()

- (BOOL) submitForm: (FSPDFDoc *)  document
form_data: (NSData *)  form_data
url: (NSString *)  url
file_format_type: (FSFileFormatType file_format_type 
required

A callback function to submit the form data to a specified URL.

This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Parameters
[in]documentA PDF document object. It would be valid.
[in]form_dataPointer to a form data buffer which is to be submit.
[in]urlA URL, to which the form data will be submit.
[in]file_format_typeFile format type for submission form. Please refer to values starting from foxit::common::e_FileFormatTypeFDF and this would be one of these values.
Returns
YES means success, while NO means failure.

◆ updateLogicalLabel()

- (void) updateLogicalLabel
required

A callback function to update logical label.

This callback function will be triggered by the javascript method "Doc.setPageLabels". This callback function is optional, so it can be implemented to do nothing and just return a useless value.

Returns
None.

◆ verifySignature:pdf_signature:()

- (unsigned int) verifySignature: (FSPDFDoc *)  document
pdf_signature: (FSSignature *)  pdf_signature 
required

A callback function to verify specified signature.

This callback function will be triggered when a signature is to be verified by an action. If user does not want to verify the signature, just implement this function to do nothing and just return FSSignatureStateUnknown. User is recommended to use class FSLTVVerifier to verify if a signed signature is valid or not.

Parameters
[in]documentA PDF document object. It would be valid.
[in]pdf_signatureA PDF signature which is signed. This signature belongs to input paramter document.
Returns
The signature verified state. Please refer to values starting from FSSignatureStateUnknown and this would be one or combination of them.