Skip to content

JavaScript 支持 ​

JavaScript 的诞生旨在将 Web 页面上的相关处理从服务器端转移到客户端,从而构建更具交互性的 Web 应用。福昕 PDF SDK JavaScript 扩展了 JavaScript 语言,通过引入新的对象及其相关的方法和属性,使得开发者能够在 Web 环境中直接操作 PDF 文档。利用这些扩展,开发者可以管理文档安全性、与数据库进行通信、处理文件附件以及进行各种 PDF 文件操作,从而实现交互式 Web 表单等功能。

JavaScript Action

JavaScript action 是一种特殊的动作类型,它包含一段由 JavaScript 解释器编译和执行的脚本。在福昕 PDF SDK 的 Java 开发环境中,com.foxit.sdk.pdf.actions.JavaScriptAction 类继承自 Action 类,并提供了一系列接口用于获取和设置 JavaScript action 的相关数据。

支持列表

您可以在 JavaScript支持列表 中查看福昕 PDF SDK 所支持的 JavaScript 方法和属性的完整列表。

添加文档级的 JavaScript 动作 ​

c++
#include "include/pdf/actions/fs_action.h"
#include "include/pdf/annots/fs_annot.h"

using namespace foxit;
using namespace pdf;
using namespace annots;

// Load Document doc.
...

actions::JavaScriptAction javascript_action = (actions::JavaScriptAction)Action::Create(doc, Action::e_TypeJavaScript);
javascipt_action.SetScript(L"app.alert(\"Hello Foxit \");");
AdditionalAction additional_act(doc);
additional_act.SetAction(AdditionalAction::e_TriggerDocWillClose,javascipt_action);
additional_act.DoJSAction(AdditionalAction::e_TriggerDocWillClose);
...
C
#include "include/fs_basictypes_c.h"
#include "include/fs_action_c.h"
#include "include/fs_annot_c.h"

// Load Document doc.
...

FS_JAVASCRIPTACTION_HANDLE javascript_action;
(FS_JAVASCRIPTACTION_HANDLE)FSDK_Action_Create(doc, e_FSTypeJavaScript, &javascipt_action);
FSDK_JavaScriptAction_SetScript(javascipt_action, L"app.alert(\"Hello Foxit \");");
FS_ADDITIONALACTION_HANDLE additional_act;
FSDK_AdditionalAction_Create(doc, NULL, &additional_act);
FSDK_AdditionalAction_SetAction(additional_act, e_FSTriggerDocWillClose, javascipt_action);
FS_BOOL result;
FSDK_AdditionalAction_DoJSAction(additional_act, e_FSTriggerDocWillClose, &result);
...
java
import com.foxit.sdk.pdf.actions.Action;
import com.foxit.sdk.pdf.actions.JavaScriptAction;
...

// Load Document doc.
...
JavaScriptAction javascipt_action = new JavaScriptAction(Action.create(doc, Action.e_TypeJavaScript));
javascipt_action.setScript("app.alert(\"Hello Foxit \");");
AdditionalAction aa = new AdditionalAction(doc);
aa.setAction(AdditionalAction.e_TriggerDocWillClose, javascipt_action);
aa.doJSAction(AdditionalAction.e_TriggerDocWillClose);
...
py
import sys
import site

if sys.version_info.major == 2:
    _PYTHON2_ = True
else:
    _PYTHON2_ = False

if _PYTHON2_:
    # replace with the python2 lib path
    site.addsitedir(‘../../../’)
    from FoxitPDFSDKPython2 import *
else:
    from FoxitPDFSDKPython3 import *

...
# Load Document doc.
...

javascript_action = JavaScriptAction(Action.Create(doc, Action.e_TypeJavaScript))
javascript_action.SetScript("app.alert(\"Hello Foxit \");")
additional_act = AdditionalAction(doc)
additional_act.SetAction(AdditionalAction.e_TriggerDocWillClose,javascript_action)
additional_act.DoJSAction(AdditionalAction.e_TriggerDocWillClose)
...
objc
#include "FSPDFObjC.h"
...

// Load Document doc.
...

FSJavaScriptAction *javascript_action = [[FSJavaScriptAction alloc] initWithAction:[FSAction create:doc action_type:FSActionTypeJavaScript]];
javascipt_action.script = @"app.alert(\"Hello Foxit \");";
FSAdditionalAction *additional_act = [[FSAdditionalAction alloc] initWithDoc:doc pdf_dict:nil];
[additional_act setAction:FSAdditionalActionTriggerDocWillClose action:javascipt_action];
[additional_act doJSAction:FSAdditionalActionTriggerDocWillClose];
...
js
const FSDK = require("@fuxinsoft/foxit-pdf-sdk-node");

...
// Load Document doc.
...

javascipt_action = new FSDK.JavaScriptAction(FSDK.Action.Create(form.GetDocument(), FSDK.Action.e_TypeJavaScript))
javascript_action.SetScript("app.alert(\"Hello Foxit \");");
additional_act = AdditionalAction(doc);
additional_act.SetAction(FSDK.AdditionalAction.e_TriggerDocWillClose,javascript_action);
additional_act.DoJSAction(FSDK.AdditionalAction.e_TriggerDocWillClose);
...
csharp
using foxit.pdf.annots;
using foxit.pdf.actions;

// Load Document doc.
...
using (foxit.pdf.actions.Action action = foxit.pdf.actions.Action.Create(doc, foxit.pdf.actions.Action.Type.e_TypeJavaScript))
using (JavaScriptAction javascipt_action = new JavaScriptAction(action))
{
   javascipt_action.SetScript("app.alert(\"Hello Foxit \");");
   using (AdditionalAction aa = new AdditionalAction(doc))
   {
      aa.SetAction(AdditionalAction.TriggerEvent.e_TriggerDocWillClose, javascipt_action);
      aa.DoJSAction(AdditionalAction.TriggerEvent.e_TriggerDocWillClose);
    }
}
...
go
import (
. "foxit.com/fsdk"
)
...
# Load Document doc.
...

javascript_action := NewJavaScriptAction(ActionCreate(doc, ActionE_TypeJavaScript))
javascript_action.SetScript("app.alert(\"Hello Foxit \");")
additional_act := AdditionalAction(doc)
additional_act.SetAction(AdditionalActionE_TriggerDocWillClose,javascript_action)
additional_act.DoJSAction(AdditionalActionE_TriggerDocWillClose)
...

添加注释级的 JavaScript 动作 ​

c++
#include "include/pdf/actions/fs_action.h"
#include "include/pdf/annots/fs_annot.h"

using namespace foxit;
using namespace pdf;
using namespace annots;

// Load Document and get a widget annotation.
...

actions::JavaScriptAction javascript_action = (actions::JavaScriptAction)Action::Create(page.GetDocument(), Action::e_TypeJavaScript);
javascipt_action.SetScript(L"app.alert(\"Hello Foxit \");");
AdditionalAction additional_act(annot);
additional_act.SetAction(AdditionalAction::e_TriggerAnnotMouseButtonPressed,javascipt_action);
additional_act.DoJSAction(AdditionalAction::e_TriggerAnnotMouseButtonPressed);
...
C
#include "include/fs_basictypes_c.h"
#include "include/fs_action_c.h"
#include "include/fs_annot_c.h"

// Load Document and get a widget annotation.
...

FS_JAVASCRIPTACTION_HANDLE javascript_action;
FS_PDFDOC_HANDLE doc;
FSDK_PDFPage_GetDocument(page, &doc);
(FS_JAVASCRIPTACTION_HANDLE)FSDK_Action_Create(doc, e_FSTypeJavaScript, &javascipt_action);
FSDK_JavaScriptAction_SetScript(javascipt_action, L"app.alert(\"Hello Foxit \");");
FS_ADDITIONALACTION_HANDLE additional_act;
FSDK_AdditionalAction_Create2(annot, &additional_act);
FSDK_AdditionalAction_SetAction(additional_act, e_FSTriggerAnnotMouseButtonPressed, javascipt_action);
FS_BOOL result;
FSDK_AdditionalAction_DoJSAction(additional_act, e_FSTriggerAnnotMouseButtonPressed, &result)
...
java
import com.foxit.sdk.pdf.actions.Action;
import com.foxit.sdk.pdf.actions.JavaScriptAction;
...

// Load Document and get a widget annotation.
...
JavaScriptAction javascipt_action = new JavaScriptAction(Action.create(page.getDocument(), Action.e_TypeJavaScript));
javascipt_action.setScript("app.alert(\"Hello Foxit \");");
AdditionalAction aa = new AdditionalAction(annot);
aa.setAction(AdditionalAction.e_TriggerAnnotMouseButtonPressed, javascipt_action);
aa.doJSAction(AdditionalAction.e_TriggerAnnotMouseButtonPressed);
...
py
import sys
import site

if sys.version_info.major == 2:
    _PYTHON2_ = True
else:
    _PYTHON2_ = False

if _PYTHON2_:
    # replace with the python2 lib path
    site.addsitedir(‘../../../’)
    from FoxitPDFSDKPython2 import *
else:
    from FoxitPDFSDKPython3 import *

...
# Load Document and get a widget annotation.
...

javascript_action = JavaScriptAction(Action.Create(page.GetDocument(), Action.e_TypeJavaScript))
javascript_action.SetScript("app.alert(\"Hello Foxit \");")
additional_act = AdditionalAction(annot)
additional_act.SetAction(AdditionalAction.e_TriggerAnnotMouseButtonPressed, javascript_action)
additional_act.DoJSAction(AdditionalAction.e_TriggerAnnotMouseButtonPressed)
...
objc
#include "FSPDFObjC.h"
...

// Load Document and get a widget annotation.
...

FSJavaScriptAction *javascript_action = [[FSJavaScriptAction alloc] initWithAction:[FSAction create:[form getDocument] action_type:FSActionTypeJavaScript]];
javascipt_action.script = @"app.alert(\"Hello Foxit \");";
FSAdditionalAction *additional_act = [[FSAdditionalAction alloc] initWithAnnot:widget_annot];
[additional_act setAction:FSAdditionalActionTriggerAnnotMouseButtonPressed action:javascipt_action];
...
#include "FSPDFObjC.h"
...

// Load Document and get a widget annotation.
...

FSJavaScriptAction *javascript_action = [[FSJavaScriptAction alloc] initWithAction:[FSAction create:[page getDocument] action_type:FSActionTypeJavaScript]];
javascipt_action.script = @"app.alert(\"Hello Foxit \");";
FSAdditionalAction *additional_act = [[FSAdditionalAction alloc] initWithAnnot:widget_annot];
[additional_act setAction:FSAdditionalActionTriggerAnnotMouseButtonPressed action:javascipt_action];
[additional_act doJSAction:FSAdditionalActionTriggerAnnotMouseButtonPressed];
...
js
const FSDK = require("@fuxinsoft/foxit-pdf-sdk-node");

...
// Load Document and get a widget annotation.
...

javascipt_action = new FSDK.JavaScriptAction(FSDK.Action.Create(form.GetDocument(), FSDK.Action.e_TypeJavaScript))
javascript_action.SetScript("app.alert(\"Hello Foxit \");");
additional_act = AdditionalAction(annot);
additional_act.SetAction(FSDK.AdditionalAction.e_TriggerAnnotMouseButtonPressed, javascript_action);
additional_act.DoJSAction(FSDK.AdditionalAction.e_TriggerAnnotMouseButtonPressed);
...
csharp
using foxit.pdf.annots;
using foxit.pdf.actions;
...

// Load Document and get a widget annotation.
...
using (foxit.pdf.actions.Action action = foxit.pdf.actions.Action.Create(page.GetDocument(), foxit.pdf.actions.Action.Type.e_TypeJavaScript))
using (JavaScriptAction javascipt_action = new JavaScriptAction(action))
{
   javascipt_action.SetScript("app.alert(\"Hello Foxit \");");
   using (AdditionalAction aa = new AdditionalAction(annot))
   {
      aa.SetAction(AdditionalAction.TriggerEvent.e_TriggerAnnotMouseButtonPressed, javascipt_action);
      aa.DoJSAction(AdditionalAction.TriggerEvent.e_TriggerAnnotMouseButtonPressed);
    }
}
...
go
import (
. "foxit.com/fsdk"
)
...
# Load Document and get a widget annotation.
...

javascript_action := NewJavaScriptAction(ActionCreate(page.GetDocument(), ActionE_TypeJavaScript))
javascript_action.SetScript("app.alert(\"Hello Foxit \");")
additional_act := NewAdditionalAction(annot)
additional_act.SetAction(AdditionalActionE_TriggerAnnotMouseButtonPressed, javascript_action)
additional_act.DoJSAction(AdditionalActionE_TriggerAnnotMouseButtonPressed)
...

添加表单级的 JavaScript 动作 ​

c++
#include "include/pdf/actions/fs_action.h"
#include "include/pdf/annots/fs_annot.h"
#include "include/pdf/interform/fs_pdfform.h"

using namespace foxit;
using namespace pdf;
using namespace annots;
using namespace interform;

// Load Document and get a form field.
...

// Add text field.
Control control = form.AddControl(page, L"Text Field0", Field::e_TypeTextField, RectF(50, 600, 90, 640));
control.GetField().SetValue(L"3");
//// Update text field's appearance.
control.GetWidget().ResetAppearanceStream();

Control control1 = form.AddControl(page, L"Text Field1", Field::e_TypeTextField, RectF(100, 600, 140, 640));
control1.GetField().SetValue(L"23");
//// Update text field's appearance.
control1.GetWidget().ResetAppearanceStream();

Control control2 = form.AddControl(page, L"Text Field2", Field::e_TypeTextField, RectF(150, 600, 190, 640));
actions::JavaScriptAction javascipt_action = (actions::JavaScriptAction)Action::Create(form.GetDocument(), Action::e_TypeJavaScript);
javascipt_action.SetScript(L"AFSimple_Calculate(\"SUM\", new Array (\"Text Field0\", \"Text Field1\"));" );
Field field2 = control2.GetField();
AdditionalAction additional_act(field2);
additional_act.SetAction(AdditionalAction::e_TriggerFieldRecalculateValue,javascipt_action);
//// Update text field's appearance.
control2.GetWidget().ResetAppearanceStream();
...
C
#include "include/fs_basictypes_c.h"
#include "include/fs_action_c.h"	
#include "include/fs_annot_c.h"
#include "include/fs_pdfform_c.h"

// Load Document and get a form field.
...

// Add text field.
FS_CONTROL_HANDLE control;
FSRectF rectf;
rectf.left = 50;
rectf.bottom = 600;
rectf.right = 90;
rectf.top = 640;
FSDK_Form_AddControl(form, page, L"Text Field0", e_FSTypeTextField, rectf, &control);
FS_FIELD_HANDLE field;
FSDK_Control_GetField(control, &field);
FSDK_Field_SetValue(field, L"3");
//// Update text field's appearance.
FS_WIDGETANNOT_HANDLE widget;
FSDK_Control_GetWidget(control, &widget);
FS_BOOL result;
FSDK_Annot_ResetAppearanceStream(widget, &result);

FS_CONTROL_HANDLE control1;
rectf.left = 100;
rectf.bottom = 600;
rectf.right = 140;
rectf.top = 640;
FSDK_Form_AddControl(form, page, L"Text Field1", e_FSTypeTextField, rectf, &control1);
FS_FIELD_HANDLE field1;
FSDK_Control_GetField(control1, &field1);
FSDK_Field_SetValue(field1, L"23");
//// Update text field's appearance.
FS_WIDGETANNOT_HANDLE widget1;
FSDK_Control_GetWidget(control1, &widget1);
FS_BOOL result1;
FSDK_Annot_ResetAppearanceStream(widget1, &result1);

FS_CONTROL_HANDLE control2;
rectf.left = 150;
rectf.bottom = 600;
rectf.right = 190;
rectf.top = 640;
FSDK_Form_AddControl(form, page, L"Text Field2", e_FSTypeTextField, rectf, &control2);
FS_JAVASCRIPTACTION_HANDLE javascipt_action;
FS_PDFDOC_HANDLE doc;
FSDK_Form_GetDocument(form, &doc);
(FS_JAVASCRIPTACTION_HANDLE)FSDK_Action_Create(doc, e_FSTypeJavaScript, &javascipt_action);
FSDK_JavaScriptAction_SetScript(javascipt_action, L"AFSimple_Calculate(\"SUM\", new Array (\"Text Field0\", \"Text Field1\"));" );
FS_FIELD_HANDLE field2;
FSDK_Control_GetField(control2, &field2);
FS_ADDITIONALACTION_HANDLE additional_act;
FSDK_AdditionalAction_Create1(field2, &additional_act);
FSDK_AdditionalAction_SetAction(additional_act, e_FSTriggerFieldRecalculateValue, javascipt_action);
//// Update text field's appearance.
FS_WIDGETANNOT_HANDLE widget2;
FSDK_Control_GetWidget(control2, &widget2);
FS_BOOL result2;
FSDK_Annot_ResetAppearanceStream(widget2, &result2);
...
java
import com.foxit.sdk.pdf.actions.Action;	
import com.foxit.sdk.pdf.actions.JavaScriptAction;
import com.foxit.sdk.pdf.interform.Form;
import com.foxit.sdk.pdf.interform.Control;
import com.foxit.sdk.pdf.interform.Field;
...

// Load Document and get a form field.
...

// Add text field.
Control control = form.addControl(page, "Text Field0", Field.e_TypeTextField, new RectF(50, 600, 90, 640));
control.getField().setValue("3");
//// Update text field's appearance.
control.getWidget().resetAppearanceStream();

Control control1 = form.addControl(page, "Text Field1", Field.e_TypeTextField, new RectF(100, 600, 140, 640));
control1.getField().setValue("23");
//// Update text field's appearance.
control1.getWidget().resetAppearanceStream();

Control control2 = form.addControl(page, "Text Field2", Field.e_TypeTextField, new RectF(150, 600, 190, 640));
Field field2 = control2.getField();
JavaScriptAction javascipt_action = new JavaScriptAction(Action.create(form.getDocument(), Action.e_TypeJavaScript));
javascipt_action.setScript("AFSimple_Calculate(\"SUM\", new Array (\"Text Field0\", \"Text Field1\"));");
AdditionalAction aa = new AdditionalAction(field2);
aa.setAction(AdditionalAction.e_TriggerFieldRecalculateValue, javascipt_action);
//// Update text field's appearance.
control2.getWidget().resetAppearanceStream();
...
py
import sys
import site

if sys.version_info.major == 2:
    _PYTHON2_ = True
else:
    _PYTHON2_ = False

if _PYTHON2_:
    # replace with the python2 lib path
    site.addsitedir(‘../../../’)
    from FoxitPDFSDKPython2 import *
else:
    from FoxitPDFSDKPython3 import *

...
# Load Document and get a form field.
...

# Add text field
control = form.AddControl(page, "Text Field0", Field.e_TypeTextField, RectF(50, 600, 90, 640))
control.GetField().SetValue("3")
# Update text field's appearance.
control.GetWidget().ResetAppearanceStream()

control1 = form.AddControl(page, "Text Field1", Field.e_TypeTextField, RectF(100, 600, 140, 640))
control1.GetField().SetValue("23")
# Update text field's appearance.
control1.GetWidget().ResetAppearanceStream()

control2 = form.AddControl(page, "Text Field2", Field.e_TypeTextField, RectF(150, 600, 190, 640))
javascipt_action = JavaScriptAction(Action.Create(form.GetDocument(), Action.e_TypeJavaScript))
javascipt_action.SetScript( "AFSimple_Calculate(\"SUM\", new Array (\"Text Field0\", \"Text Field1\"))")
field2 = control2.GetField()
additional_act = AdditionalAction(field2)
additional_act.SetAction(AdditionalAction.e_TriggerFieldRecalculateValue,
                         javascipt_action)
# Update text field's appearance.
control2.GetWidget().ResetAppearanceStream()
objc
#include "FSPDFObjC.h"
...

// Load Document and get a form field.
...

// Add text field.
FSControl *control = [form addControl:page field_name:@"Text Field0" field_type:FSFieldTypeTextField rect:[[FSRectF alloc] initWithLeft1:50.0 bottom1:600 right1:90 top1:640]];
[control getField].value = @"3";
//// Update text field's appearance.
[[control getWidget] resetAppearanceStream];
FSControl *control1 = [form addControl:page field_name:@"Text Field1" field_type:FSFieldTypeTextField rect:[[FSRectF alloc] initWithLeft1:100 bottom1:600 right1:140 top1:640]];
[control1 getField].value = @"23";
//// Update text field's appearance.
[[control1 getWidget] resetAppearanceStream];

FSControl *control2 = [form addControl:page field_name:@"Text Field2" field_type:FSFieldTypeTextField rect:[[FSRectF alloc] initWithLeft1:150 bottom1:600 right1:190 top1:640]];
FSJavaScriptAction *javascipt_action = [[FSJavaScriptAction alloc] initWithAction:[FSAction create:[form getDocument] action_type:FSActionTypeJavaScript]];
javascipt_action.script = @"AFSimple_Calculate(\"SUM\", new Array (\"Text Field0\", \"Text Field1\"));";
FSField *field2 = [control2 getField];
FSAdditionalAction *additional_act = [[FSAdditionalAction alloc] initWithField:field2];
[additional_act setAction:FSAdditionalActionTriggerFieldRecalculateValue action:javascipt_action];
//// Update text field's appearance.
[[control2 getWidget] resetAppearanceStream];
...
js
const FSDK = require("@fuxinsoft/foxit-pdf-sdk-node");

...
// Load Document and get a form field.
...

// Add text field
let control = form.AddControl(page, "Text Field0", FSDK.Field.e_TypeTextField, new FSDK.RectF(50, 600, 90, 640));
control.GetField().SetValue("3");
//// Update text field's appearance.
control.GetWidget().ResetAppearanceStream();

control1 = form.AddControl(page, "Text Field1", FSDK.Field.e_TypeTextField, new FSDKRectF(100, 600, 140, 640));
control1.GetField().SetValue("23");
//// Update text field's appearance.
control1.GetWidget().ResetAppearanceStream();

let control2 = form.AddControl(page, "Text Field2", FSDK.Field.e_TypeTextField, new FSDKRectF(150, 600, 190, 640));
let javascipt_action = new FSDK.JavaScriptAction(FSDK.Action.Create(form.GetDocument(), FSDK.Action.e_TypeJavaScript));
javascipt_action.SetScript( "AFSimple_Calculate(\"SUM\", new Array (\"Text Field0\", \"Text Field1\"))");
let field2 = control2.GetField();
let additional_act = AdditionalAction(field2);
additional_act.SetAction(FSDK.AdditionalAction.e_TriggerFieldRecalculateValue,
                         javascipt_action);
//// Update text field's appearance.
control2.GetWidget().ResetAppearanceStream();
csharp
using foxit.pdf.interform;
using foxit.pdf.actions;
...

// Load Document and get a form field.
...

// Add text field.
using (Control control = form.AddControl(page, "Text Field0", Field.Type.e_TypeTextField, new RectF(50f, 600f, 90f, 640f)))
using (Control control1 = form.AddControl(page, "Text Field1", Field.Type.e_TypeTextField, new RectF(100f, 600f, 140f, 640f)))
using (Control control2 = form.AddControl(page, "Text Field2", Field.Type.e_TypeTextField, new RectF(150f, 600f, 190f, 640f)))
using (Field field = control.GetField())
{
    field.SetValue("3");
    //// Update text field's appearance.
    using (Widget widget = control.GetWidget())
         widget.ResetAppearanceStream();
    using (Field field1 = control1.GetField())
    {
         field1.SetValue("23");
         //// Update text field's appearance.
         using(Widget widget1 = control1.GetWidget())
            widget1.ResetAppearanceStream();

         using (Field field2 = control2.GetField())
         using (PDFDoc doc = form.GetDocument())
         using (foxit.pdf.actions.Action action = foxit.pdf.actions.Action.Create(form.GetDocument(), foxit.pdf.actions.Action.Type.e_TypeJavaScript))
         using (foxit.pdf.actions.JavaScriptAction javascipt_action = new foxit.pdf.actions.JavaScriptAction(action))
         {
            javascipt_action.SetScript("AFSimple_Calculate(\"SUM\", new Array (\"Text Field0\", \"Text Field1\"));");
            using (AdditionalAction aa = new AdditionalAction(field2))
            {
                aa.SetAction(AdditionalAction.TriggerEvent.e_TriggerFieldRecalculateValue, javascipt_action);
                //// Update text field's appearance.
                using(Widget widget2 = control2.GetWidget())
                   widget2.ResetAppearanceStream();
            }
         }
    }
}
...
go
import (
. "foxit.com/fsdk"
)

...
# Load Document and get a form field.
...

# Add text field
control := form.AddControl(page, "Text Field0", FieldE_TypeTextField, NewRectF(50, 600, 90, 640))
control.GetField().SetValue("3")
# Update text field's appearance.
control.GetWidget().ResetAppearanceStream()

control1 = form.AddControl(page, "Text Field1", FieldE_TypeTextField, RectF(100,  600, 140, 640))
control1.GetField().SetValue("23")
# Update text field's appearance.
control1.GetWidget().ResetAppearanceStream()

control2 := form.AddControl(page, "Text Field2", FieldE_TypeTextField, NewRectF(150, 600, 190, 640))
javascipt_action := NewJavaScriptAction(ActionCreate(form.GetDocument(), ActionE_TypeJavaScript))
javascipt_action.SetScript( "AFSimple_Calculate(\"SUM\", new Array (\"Text Field0\", \"Text Field1\"))")
field2 := control2.GetField()
additional_act := NewAdditionalAction(field2)
additional_act.SetAction(AdditionalActionE_TriggerFieldRecalculateValue, javascipt_action)
# Update text field's appearance.
control2.GetWidget().ResetAppearanceStream()

使用 JavaScript 向 PDF 页面添加一个新的注释 ​

c++
#include "include/pdf/actions/fs_action.h"
#include "include/pdf/annots/fs_annot.h"

// Load Document and get form field, construct a Form object and a Filler object.
...

actions::JavaScriptAction javascipt_action = (actions::JavaScriptAction)Action::Create(form.GetDocument(), Action::e_TypeJavaScript);
javascipt_action.SetScript(L"var annot = this.addAnnot({ page : 0, type : \"Square\", rect : [ 0, 0, 100, 100 ], name : \"UniqueID\", author : \"A. C. Robat\", contents : \"This section needs revision.\" });" );
AdditionalAction additional_act(field);
additional_act.SetAction(AdditionalAction::e_TriggerAnnotCursorEnter,javascipt_action);
additional_act.DoJSAction(AdditionalAction::e_TriggerAnnotCursorEnter);
...
C
#include "include/fs_basictypes_c.h"
#include "include/fs_action_c.h"
#include "include/fs_annot_c.h"

// Load Document and get form field, construct a Form object and a Filler object.
...

FS_JAVASCRIPTACTION_HANDLE javascipt_action;
FS_PDFDOC_HANDLE doc;
FSDK_Form_GetDocument(form, &doc);
(FS_JAVASCRIPTACTION_HANDLE)FSDK_Action_Create(doc, e_FSTypeJavaScript, &javascipt_action);
FSDK_JavaScriptAction_SetScript(javascipt_action, L"var annot = this.addAnnot({ page : 0, type : \"Square\", rect : [ 0, 0, 100, 100 ], name : \"UniqueID\", author : \"A. C. Robat\", contents : \"This section needs revision.\" });");
FS_ADDITIONALACTION_HANDLE additional_act;
FSDK_AdditionalAction_Create1(field, &additional_act);
FSDK_AdditionalAction_SetAction(additional_act, e_FSTriggerAnnotCursorEnter, javascipt_action);
FS_BOOL result;
FSDK_AdditionalAction_DoJSAction(additional_act, e_FSTriggerAnnotCursorEnter, &result);
...
java
import com.foxit.sdk.pdf.actions.Action;
import com.foxit.sdk.pdf.actions.JavaScriptAction;
...

// Load Document and get form field, construct a Form object and a Filler object.
...

JavaScriptAction javascipt_action = new JavaScriptAction(Action.create(form.getDocument(), Action.e_TypeJavaScript));
javascipt_action.setScript("var annot = this.addAnnot({ page : 0, type : \"Square\", rect : [ 0, 0, 100, 100 ], name : \"UniqueID\", author : \"A. C. Robat\", contents : \"This section needs revision.\" });");
AdditionalAction aa = new AdditionalAction(field);
aa.setAction(AdditionalAction.e_TriggerAnnotCursorEnter, javascipt_action);
aa.doJSAction(AdditionalAction.e_TriggerAnnotCursorEnter);
...
py
import sys
import site

if sys.version_info.major == 2:
    _PYTHON2_ = True
else:
    _PYTHON2_ = False

if _PYTHON2_:
    # replace with the python2 lib path
    site.addsitedir(‘../../../’)
    from FoxitPDFSDKPython2 import *
else:
    from FoxitPDFSDKPython3 import *

...
# Load Document and get form field, construct a Form object and a Filler object.
...

javascipt_action = JavaScriptAction(Action.Create(form.GetDocument(), Action.e_TypeJavaScript))
javascipt_action.SetScript("var annot = this.addAnnot({ page : 0, type : \"Square\", rect : [ 0, 0, 100, 100 ], name : \"UniqueID\", author : \"A. C. Robat\", contents : \"This section needs revision.\" });" )
additional_act = AdditionalAction(field)
additional_act.SetAction(AdditionalAction.e_TriggerAnnotCursorEnter,javascipt_action)
additional_act.DoJSAction(AdditionalAction.e_TriggerAnnotCursorEnter)
...
objc
#include "FSPDFObjC.h"
...

// Load Document and get form field, construct a FSForm object and a FSFiller object.
...
FSJavaScriptAction *javascipt_action = [[FSJavaScriptAction alloc] initWithAction:[FSAction create:[form getDocument] action_type:FSActionTypeJavaScript]];
javascipt_action.script = @"var annot = this.addAnnot({ page : 0, type : \"Square\", rect : [ 0, 0, 100, 100 ], name : \"UniqueID\", author : \"A. C. Robat\", contents : \"This section needs revision.\" });";
FSAdditionalAction *additional_act = [[FSAdditionalAction alloc] initWithField:field];
[additional_act setAction:FSAdditionalActionTriggerAnnotCursorEnter action:javascipt_action];
[additional_act doJSAction:FSAdditionalActionTriggerAnnotCursorEnter];
...
js
const FSDK = require("@fuxinsoft/foxit-pdf-sdk-node");

...
// Load Document and get form field, construct a Form object and a Filler object.
...

let javascipt_action = new FSDK.JavaScriptAction(Action.Create(form.GetDocument(), FSDK.Action.e_TypeJavaScript));
javascipt_action.SetScript("var annot = this.addAnnot({ page : 0, type : \"Square\", rect : [ 0, 0, 100, 100 ], name : \"UniqueID\", author : \"A. C. Robat\", contents : \"This section needs revision.\" });" );
let additional_act = AdditionalAction(field);
additional_act.SetAction(FSDK.AdditionalAction.e_TriggerAnnotCursorEnter,javascipt_action);
additional_act.DoJSAction(FSDK.AdditionalAction.e_TriggerAnnotCursorEnter);
...
csharp
using foxit.pdf.annots;
using foxit.pdf.actions;
...

// Load Document and get form field, construct a Form object and a Filler object.
...

using (foxit.pdf.actions.Action action = foxit.pdf.actions.Action.Create(form.GetDocument(), foxit.pdf.actions.Action.Type.e_TypeJavaScript))
using (foxit.pdf.actions.JavaScriptAction javascipt_action = new foxit.pdf.actions.JavaScriptAction(action))
{
   javascipt_action.SetScript("var annot = this.addAnnot({ page : 0, type : \"Square\", rect : [ 0, 0, 100, 100 ], name : \"UniqueID\", author : \"A. C. Robat\", contents : \"This section needs revision.\" });");
   using (AdditionalAction aa = new AdditionalAction(field))
   {
      aa.SetAction(AdditionalAction.TriggerEvent.e_TriggerAnnotCursorEnter, javascipt_action);
      aa.DoJSAction(AdditionalAction.TriggerEvent.e_TriggerAnnotCursorEnter);
   }
}
...
go
import (
. "foxit.com/fsdk"
)
...
# Load Document and get form field, construct a Form object and a Filler object.
...

javascipt_action := NewJavaScriptAction(ActionCreate(form.GetDocument(), ActionE_TypeJavaScript))
javascipt_action.SetScript("var annot = this.addAnnot({ page : 0, type : \"Square\", rect : [ 0, 0, 100, 100 ], name : \"UniqueID\", author : \"A. C. Robat\", contents : \"This section needs revision.\" });")
additional_act := NewAdditionalAction(field)
additional_act.SetAction(AdditionalActionE_TriggerAnnotCursorEnter,javascipt_action)
additional_act.DoJSAction(AdditionalActionE_TriggerAnnotCursorEnter)
...

使用 JavaScript 获取/设置注释的属性 (strokeColor, fillColor, readOnly, rect, type) ​

c++
#include "include/pdf/actions/fs_action.h"
#include "include/pdf/annots/fs_annot.h"

// Load Document and get form field, construct a Form object and a Filler object.
...

// Get properties of annotations.
actions::JavaScriptAction javascipt_action = (actions::JavaScriptAction)Action::Create(form.GetDocument(), Action::e_TypeJavaScript);
javascipt_action.SetScript(L"var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { console.println(\"Found it! type: \" + ann.type); console.println(\"readOnly: \" + ann.readOnly); console.println(\"strokeColor: \" + ann.strokeColor);console.println(\"fillColor: \" + ann.fillColor); console.println(\"rect: \" + ann.rect);}");
AdditionalAction additional_act(field);
additional_act.SetAction(AdditionalAction::e_TriggerAnnotCursorEnter,javascipt_action);
additional_act.DoJSAction(AdditionalAction::e_TriggerAnnotCursorEnter);

// Set properties of annotations (only take strokeColor as an example).
actions::JavaScriptAction javascipt_action1 = (actions::JavaScriptAction)Action::Create(form.GetDocument(), Action::e_TypeJavaScript);
javascipt_action1.SetScript(L"var ann = this.getAnnot(0, \"UniqueID\");if (ann != null) { ann.strokeColor = color.blue; }");
AdditionalAction additional_act1(field1);
additional_act1.SetAction(AdditionalAction::e_TriggerAnnotCursorEnter,javascipt_action1);
additional_act1.DoJSAction(AdditionalAction::e_TriggerAnnotCursorEnter);
...
C
#include "include/fs_basictypes_c.h"
#include "include/fs_action_c.h"
#include "include/fs_annot_c.h"

// Load Document and get form field, construct a Form object and a Filler object.
...

// Get properties of annotations.
FS_JAVASCRIPTACTION_HANDLE javascipt_action;
FS_PDFDOC_HANDLE doc;
FSDK_Form_GetDocument(form, &doc);
FSDK_Action_Create(doc, e_FSTypeJavaScript, &javascipt_action);
FSDK_JavaScriptAction_SetScript(javascipt_action, L"var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { console.println(\"Found it! type: \" + ann.type); console.println(\"readOnly: \" + ann.readOnly); console.println(\"strokeColor: \" + ann.strokeColor);console.println(\"fillColor: \" + ann.fillColor); console.println(\"rect: \" + ann.rect);}");
FS_ADDITIONALACTION_HANDLE additional_act;
FSDK_AdditionalAction_Create1(field, &additional_act);
FSDK_AdditionalAction_SetAction(additional_act, e_FSTriggerAnnotCursorEnter, javascipt_action);
FS_BOOL result;
FSDK_AdditionalAction_DoJSAction(additional_act, e_FSTriggerAnnotCursorEnter, &result);

// Set properties of annotations (only take strokeColor as an example).
FS_JAVASCRIPTACTION_HANDLE javascipt_action1 ;
(FS_JAVASCRIPTACTION_HANDLE)FSDK_Action_Create(doc, e_FSTypeJavaScript, &javascipt_action);
FSDK_JavaScriptAction_SetScript(javascipt_action1, L"var ann = this.getAnnot(0, \"UniqueID\");if (ann != null) { ann.strokeColor = color.blue; }");
FS_ADDITIONALACTION_HANDLE additional_act1;
FSDK_AdditionalAction_Create1(field1, &additional_act1);
FSDK_AdditionalAction_SetAction(additional_act1, e_FSTriggerAnnotCursorEnter, javascipt_action);
FS_BOOL result1;
FSDK_AdditionalAction_DoJSAction(additional_act1, e_FSTriggerAnnotCursorEnter, &result1);
...
java
import com.foxit.sdk.pdf.actions.Action;
import com.foxit.sdk.pdf.actions.JavaScriptAction;
...

// Load Document and get form field, construct a Form object and a Filler object.
...

// Get properties of annotations.
JavaScriptAction javascipt_action = new JavaScriptAction(Action.create(form.getDocument(), Action.e_TypeJavaScript));
javascipt_action.setScript("var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { console.println(\"Found it! type: \" + ann.type); console.println(\"readOnly: \" + ann.readOnly); console.println(\"strokeColor: \" + ann.strokeColor);console.println(\"fillColor: \" + ann.fillColor); console.println(\"rect: \" + ann.rect);}");
AdditionalAction aa = new AdditionalAction(field);
aa.setAction(AdditionalAction.e_TriggerAnnotCursorEnter, javascipt_action);
aa.doJSAction(AdditionalAction.e_TriggerAnnotCursorEnter);

// Set properties of annotations (only take strokeColor as an example).
JavaScriptAction javascipt_action1 = new JavaScriptAction(Action.create(form.getDocument(), Action.e_TypeJavaScript));
javascipt_action1.setScript("var ann = this.getAnnot(0, \"UniqueID\"); if (ann != null) { ann.strokeColor = color.blue; }");
AdditionalAction aa1 = new AdditionalAction(field1);
aa1.setAction(AdditionalAction.e_TriggerAnnotCursorEnter, javascipt_action1);
aa1.doJSAction(AdditionalAction.e_TriggerAnnotCursorEnter);
...
py
import sys
import site

if sys.version_info.major == 2:
    _PYTHON2_ = True
else:
    _PYTHON2_ = False

if _PYTHON2_:
    # replace with the python2 lib path
    site.addsitedir(‘../../../’)
    from FoxitPDFSDKPython2 import *
else:
    from FoxitPDFSDKPython3 import *

...
# Load Document and get form field, construct a Form object and a Filler object.
...

# Get properties of annotations.
javascipt_action = JavaScriptAction(Action.Create(form.GetDocument(), Action.e_TypeJavaScript))
javascipt_action.SetScript("var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { console.println(\"Found it! type: \" + ann.type); console.println(\"readOnly: \" + ann.readOnly); console.println(\"strokeColor: \" + ann.strokeColor);console.println(\"fillColor: \" + ann.fillColor); console.println(\"rect: \" + ann.rect);}");
additional_act = AdditionalAction(field)
additional_act.SetAction(AdditionalAction.e_TriggerAnnotCursorEnter,javascipt_action)
additional_act.DoJSAction(AdditionalAction.e_TriggerAnnotCursorEnter)

# Set properties of annotations (only take strokeColor as an example).
javascipt_action1 = JavaScriptAction(Action.Create(form.GetDocument(), Action.e_TypeJavaScript))
javascipt_action1.SetScript(L"var ann = this.getAnnot(0, \"UniqueID\");if (ann != null) { ann.strokeColor = color.blue; }")
additional_act1 = AdditionalAction(field1)
additional_act1.SetAction(AdditionalAction.e_TriggerAnnotCursorEnter,javascipt_action1)
additional_act1.DoJSAction(AdditionalAction.e_TriggerAnnotCursorEnter)
...
objc
##include "FSPDFObjC.h"
...

// Load Document and get form field, construct a FSForm object and a FSFiller object.
...

// Get properties of annotations.
FSJavaScriptAction *javascipt_action = [[FSJavaScriptAction alloc] initWithAction:[FSAction create:[form getDocument] action_type:FSActionTypeJavaScript]];
javascipt_action.script = @"var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { console.println(\"Found it! type: \" + ann.type); console.println(\"readOnly: \" + ann.readOnly); console.println(\"strokeColor: \" + ann.strokeColor);console.println(\"fillColor: \" + ann.fillColor); console.println(\"rect: \" + ann.rect);}";
FSAdditionalAction *additional_act = [[FSAdditionalAction alloc] initWithField:field];
[additional_act setAction:FSAdditionalActionTriggerAnnotCursorEnter action:javascipt_action];
[additional_act doJSAction:FSAdditionalActionTriggerAnnotCursorEnter];

// Set properties of annotations (only take strokeColor as an example).
FSJavaScriptAction *javascipt_action1 = [[FSJavaScriptAction alloc] initWithAction:[FSAction create:[form getDocument] action_type:FSActionTypeJavaScript]];
javascipt_action1.script = @"var ann = this.getAnnot(0, \"UniqueID\"); if (ann != null) { ann.strokeColor = color.blue; }";
FSAdditionalAction *additional_act1 = [[FSAdditionalAction alloc] initWithField:field1];
[additional_act1 setAction:FSAdditionalActionTriggerAnnotCursorEnter action:javascipt_action1];
[additional_act1 doJSAction:FSAdditionalActionTriggerAnnotCursorEnter];
...
js
const FSDK = require("@fuxinsoft/foxit-pdf-sdk-node");

...
// Load Document and get form field, construct a Form object and a Filler object.
...

// Get properties of annotations.
let javascipt_action = new FSDK.JavaScriptAction(Action.Create(form.GetDocument(), FSDK.Action.e_TypeJavaScript));
javascipt_action.SetScript("var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { console.println(\"Found it! type: \" + ann.type); console.println(\"readOnly: \" + ann.readOnly); console.println(\"strokeColor: \" + ann.strokeColor);console.println(\"fillColor: \" + ann.fillColor); console.println(\"rect: \" + ann.rect);}");
additional_act = AdditionalAction(field);
additional_act.SetAction(FSDK.AdditionalAction.e_TriggerAnnotCursorEnter,javascipt_action);
additional_act.DoJSAction(FSDK.AdditionalAction.e_TriggerAnnotCursorEnter);

// Set properties of annotations (only take strokeColor as an example).
let javascipt_action1 = new FSDK.JavaScriptAction(FSDK.Action.Create(form.GetDocument(), FSDK.Action.e_TypeJavaScript));
javascipt_action1.SetScript("var ann = this.getAnnot(0, \"UniqueID\");if (ann != null) { ann.strokeColor = color.blue; }");
let additional_act1 = AdditionalAction(field1);
additional_act1.SetAction(FSDK.AdditionalAction.e_TriggerAnnotCursorEnter,javascipt_action1);
additional_act1.DoJSAction(FSDK.AdditionalAction.e_TriggerAnnotCursorEnter);
...
csharp
using foxit.pdf.annots;
using foxit.pdf.actions;
...

// Load Document and get form field, construct a Form object and a Filler object.
...

using (foxit.pdf.actions.Action action = foxit.pdf.actions.Action.Create(form.GetDocument(), foxit.pdf.actions.Action.Type.e_TypeJavaScript))

// Get properties of annotations.
using (foxit.pdf.actions.JavaScriptAction javascipt_action = new foxit.pdf.actions.JavaScriptAction(action))
{
   javascipt_action.SetScript("var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { console.println(\"Found it! type: \" + ann.type); console.println(\"readOnly: \" + ann.readOnly); console.println(\"strokeColor: \" + ann.strokeColor);console.println(\"fillColor: \" + ann.fillColor); console.println(\"rect: \" + ann.rect);}");
   using (AdditionalAction aa = new AdditionalAction(field))
   {
      aa.SetAction(AdditionalAction.TriggerEvent.e_TriggerAnnotCursorEnter, javascipt_action);
      aa.DoJSAction(AdditionalAction.TriggerEvent.e_TriggerAnnotCursorEnter);
    }
}

// Set properties of annotations (only take strokeColor as an example).
using (foxit.pdf.actions.JavaScriptAction javascipt_action1 = new foxit.pdf.actions.JavaScriptAction(action))
{
   javascipt_action1.SetScript("var ann = this.getAnnot(0, \"UniqueID\");if (ann != null) { ann.strokeColor = color.blue; }");
   using (AdditionalAction aa1 = new AdditionalAction(field1))
   {
      aa1.SetAction(AdditionalAction.TriggerEvent.e_TriggerAnnotCursorEnter, javascipt_action1);
      aa1.DoJSAction(AdditionalAction.TriggerEvent.e_TriggerAnnotCursorEnter);
    }
}
...
go
import (
."foxit.com/fsdk"
)
...
# Load Document and get form field, construct a Form object and a Filler object.
...

# Get properties of annotations.
javascipt_action := NewJavaScriptAction(ActionCreate(form.GetDocument(), ActionE_TypeJavaScript))
javascipt_action.SetScript("var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { console.println(\"Found it! type: \" + ann.type); console.println(\"readOnly: \" + ann.readOnly); console.println(\"strokeColor: \" + ann.strokeColor);console.println(\"fillColor: \" + ann.fillColor); console.println(\"rect: \" + ann.rect);}")
additional_act := NewAdditionalAction(field)
additional_act.SetAction(AdditionalActionE_TriggerAnnotCursorEnter,javascipt_action)
additional_act.DoJSAction(AdditionalActionE_TriggerAnnotCursorEnter)

# Set properties of annotations (only take strokeColor as an example).
javascipt_action1 := NewJavaScriptAction(Action.Create(form.GetDocument(), ActionE_TypeJavaScript))
javascipt_action1.SetScript(L"var ann = this.getAnnot(0, \"UniqueID\");if (ann != null) { ann.strokeColor = color.blue; }")
additional_act1 := NewAdditionalAction(field1)
additional_act1.SetAction(AdditionalActionE_TriggerAnnotCursorEnter,javascipt_action1)
additional_act1.DoJSAction(AdditionalActionE_TriggerAnnotCursorEnter)
...

使用 JavaScript 销毁注释 ​

c++
#include "include/pdf/actions/fs_action.h"
#include "include/pdf/annots/fs_annot.h"

// Load Document and get form field, construct a Form object and a Filler object.
...

actions::JavaScriptAction javascipt_action = (actions::JavaScriptAction)Action::Create(form.GetDocument(), Action::e_TypeJavaScript);
javascipt_action.SetScript(L"var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { ann.destroy(); } " );
AdditionalAction additional_act(field);
additional_act.SetAction(AdditionalAction::e_TriggerAnnotCursorEnter,javascipt_action);
additional_act.DoJSAction(AdditionalAction::e_TriggerAnnotCursorEnter);
...
C
#include "include/fs_basictypes_c.h"
#include "include/fs_action_c.h"
#include "include/fs_annot_c.h"
	
// Load Document and get form field, construct a Form object and a Filler object.
...	

FS_JAVASCRIPTACTION_HANDLE javascipt_action;
FS_PDFDOC_HANDLE doc;
FSDK_Form_GetDocument(form, &doc);
(FS_JAVASCRIPTACTION_HANDLE)FSDK_Action_Create(doc, e_FSTypeJavaScript, &javascipt_action);
FSDK_JavaScriptAction_SetScript(javascipt_action, L"var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { ann.destroy(); } ");
FS_ADDITIONALACTION_HANDLE additional_act;
FSDK_AdditionalAction_Create1(field, &additional_act);
FSDK_AdditionalAction_SetAction(additional_act, e_FSTriggerAnnotCursorEnter, &javascipt_action);
FS_BOOL result;
FSDK_AdditionalAction_DoJSAction(additional_act, e_FSTriggerAnnotCursorEnter, &result);
...
java
import com.foxit.sdk.pdf.actions.Action;
import com.foxit.sdk.pdf.actions.JavaScriptAction;
...

// Load Document and get form field, construct a Form object and a Filler object.
...

JavaScriptAction javascipt_action = new JavaScriptAction(Action.create(form.getDocument(), Action.e_TypeJavaScript));
javascipt_action.setScript("var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { ann.destroy(); } ");
AdditionalAction aa = new AdditionalAction(field);
aa.setAction(AdditionalAction.e_TriggerAnnotCursorEnter, javascipt_action);
aa.doJSAction(AdditionalAction.e_TriggerAnnotCursorEnter);
...
py
import sys
import site

if sys.version_info.major == 2:
    _PYTHON2_ = True
else:
    _PYTHON2_ = False

if _PYTHON2_:
    # replace with the python2 lib path
    site.addsitedir(‘../../../’)
    from FoxitPDFSDKPython2 import *
else:
    from FoxitPDFSDKPython3 import *

...
# Load Document and get form field, construct a Form object and a Filler object.
...

javascipt_action = JavaScriptAction(Action.Create(form.GetDocument(), Action.e_TypeJavaScript))
javascipt_action.SetScript("var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { ann.destroy(); } " )
additional_act = AdditionalAction(field)
additional_act.SetAction(AdditionalAction.e_TriggerAnnotCursorEnter,javascipt_action)
additional_act.DoJSAction(AdditionalAction.e_TriggerAnnotCursorEnter)
...
objc
#include "FSPDFObjC.h"
...

// Load Document and get form field, construct a FSForm object and a FSFiller object.
...

FSJavaScriptAction *javascipt_action = [[FSJavaScriptAction alloc] initWithAction:[FSAction create:[form getDocument] action_type:FSActionTypeJavaScript]];
javascipt_action.script = @"var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { ann.destroy(); }";
FSAdditionalAction *additional_act = [[FSAdditionalAction alloc] initWithField:field];
[additional_act setAction:FSAdditionalActionTriggerAnnotCursorEnter action:javascipt_action];
[additional_act doJSAction:FSAdditionalActionTriggerAnnotCursorEnter];
...
js
const FSDK = require("@fuxinsoft/foxit-pdf-sdk-node");

...
// Load Document and get form field, construct a Form object and a Filler object.
...

let javascipt_action = new FSDK.JavaScriptAction(FSDK.Action.Create(form.GetDocument(), FSDK.Action.e_TypeJavaScript));
javascipt_action.SetScript("var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { ann.destroy(); } " );
let additional_act = AdditionalAction(field);
additional_act.SetAction(FSDK.AdditionalAction.e_TriggerAnnotCursorEnter,javascipt_action);
additional_act.DoJSAction(FSDK.AdditionalAction.e_TriggerAnnotCursorEnter);
...
csharp
using foxit.pdf.annots;
using foxit.pdf.actions;
...

// Load Document and get form field, construct a Form object and a Filler object.
...

using (foxit.pdf.actions.Action action = foxit.pdf.actions.Action.Create(form.GetDocument(), foxit.pdf.actions.Action.Type.e_TypeJavaScript))
using (foxit.pdf.actions.JavaScriptAction javascipt_action = new foxit.pdf.actions.JavaScriptAction(action))
{
   javascipt_action.SetScript("var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { ann.destroy(); } ");
   using (AdditionalAction aa = new AdditionalAction(field))
   {
      aa.SetAction(AdditionalAction.TriggerEvent.e_TriggerAnnotCursorEnter, javascipt_action);
      aa.DoJSAction(AdditionalAction.TriggerEvent.e_TriggerAnnotCursorEnter);
    }
}
...
go
import (
."foxit.com/fsdk"
)
...
# Load Document and get form field, construct a Form object and a Filler object.
...

javascipt_action := NewJavaScriptAction(ActionCreate(form.GetDocument(), ActionE_TypeJavaScript))
javascipt_action.SetScript("var ann = this.getAnnot(0, \" UniqueID \"); if (ann != null) { ann.destroy(); } " )
additional_act := NewAdditionalAction(field)
additional_act.SetAction(AdditionalActionE_TriggerAnnotCursorEnter,javascipt_action)
additional_act.DoJSAction(AdditionalActionE_TriggerAnnotCursorEnter)
...