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("@foxitsoftware/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);
}
}
...
添加注释级的 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("@foxitsoftware/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);
}
}
...
添加表单级的 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("@foxitsoftware/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();
}
}
}
}
...
使用 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("@foxitsoftware/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);
}
}
...
使用 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("@foxitsoftware/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);
}
}
...
使用 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("@foxitsoftware/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);
}
}
...