Topics   All   Mac OS X (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server (Not)   Client   Old   Guides   Examples
New in version: 6.2   6.3   6.4   6.5   7.0   7.1   7.2   7.3   7.4   7.5    Statistic  

DynaPDF.CreateJSAction

Creates a JavaScript action.

Component Version macOS Windows Server FileMaker Cloud FileMaker iOS SDK
DynaPDF 6.4 Yes Yes Yes Yes Yes

MBS( "DynaPDF.CreateJSAction"; PDF; Script )

Parameters

Parameter Description Example value
PDF The PDF reference returned from DynaPDF.New. $pdf
Script The javascript text.

Result

Returns number or error.

Description

Creates a JavaScript action.
A JavaScript Action causes a script to be compiled and executed by the JavaScript interpreter of Adobe's Acrobat. Depending on the nature of the scripts, this can cause various interactive form fields in the document to update their values or change their visual appearances.
The parameter Script must be a valid JavaScript. The script is not checked by DynaPDF whether it is valid or not. Note that older Acrobat versions of Adobe's Acrobat do not support all JavaScript functions. Due to several bugs in Acrobat 4/5 an invalid JavaScript can cause an access violation in Adobe's Acrobat. Test your scripts carefully with all Acrobat versions which must be supported.

See also CreateJSAction function in DynaPDF manual.

Examples

Create sum field:

Set Variable [$y; Value:50]
Set Variable [$script; Value:"var v1 = this.getField(\"Val1\");" & ¶ & "var v2 = this.getField(\"Val2\");" & ¶ & "var v3 = this.getField(\"Val3\");" & ¶ & "event.value = v1.value + v2.value + v3.value;"]
Set Variable [$script; Value:MBS( "Text.ReplaceNewline"; $script; 2)]
Set Variable [$a; Value:MBS( "DynaPDF.CreateJSAction"; $pdf; $script)]
#Create 1st field
Set Variable [$f; Value:MBS( "DynaPDF.CreateTextField"; $pdf; "Val1"; -1; 0; 0; 50; $y; 200; 20)]
Set Variable [$r; Value:MBS( "DynaPDF.SetTextFieldValue"; $pdf; $f; "50.00"; "50.00"; "Right")]
Set Variable [$r; Value:MBS( "DynaPDF.SetNumberFormat"; $pdf; $f; "NoneDot"; 2; "MinusBlack")]
#Create 2nd field
Set Variable [$y; Value:$y + 30]
Set Variable [$f; Value:MBS( "DynaPDF.CreateTextField"; $pdf; "Val2"; -1; 0; 0; 50; $y; 200; 20)]
Set Variable [$r; Value:MBS( "DynaPDF.SetTextFieldValue"; $pdf; $f; "100.00"; "100.00"; "Right")]
Set Variable [$r; Value:MBS( "DynaPDF.SetNumberFormat"; $pdf; $f; "NoneDot"; 2; "MinusBlack")]
#Create 3rd field
Set Variable [$y; Value:$y + 30]
Set Variable [$f; Value:MBS( "DynaPDF.CreateTextField"; $pdf; "Val3"; -1; 0; 0; 50; $y; 200; 20)]
Set Variable [$r; Value:MBS( "DynaPDF.SetTextFieldValue"; $pdf; $f; "200.00"; "200.00"; "Right")]
Set Variable [$r; Value:MBS( "DynaPDF.SetNumberFormat"; $pdf; $f; "NoneDot"; 2; "MinusBlack")]
#Create sum field
#This last field calculates sum of other fields
#Works only in PDF Viewers supporting JavaScript!
Set Variable [$y; Value:$y + 30]
Set Variable [$f; Value:MBS( "DynaPDF.CreateTextField"; $pdf; "Sum"; -1; 0; 10; 50; $y; 200; 20)]
Set Variable [$r; Value:MBS( "DynaPDF.SetFieldBorderWidth"; $pdf; $f; 0)]
Set Variable [$r; Value:MBS( "DynaPDF.SetTextFieldValue"; $pdf; $f; "350.00 €"; "350.00 €"; "Right")]
Set Variable [$r; Value:MBS( "DynaPDF.SetFieldFlags"; $pdf; $f; "ReadOnly"; 0)]
Set Variable [$r; Value:MBS( "DynaPDF.AddActionToObj"; $pdf; "Field"; "OnCalc"; $a; $f)]
Set Variable [$r; Value:MBS( "DynaPDF.SetNumberFormat"; $pdf; $f; "CommaDot"; 2; "MinusBlack"; " €"; 0)]

Create checkbox to confirm page and jump to next one:

Set Variable [ $f ; Value: MBS( "DynaPDF.CreateCheckBox"; $pdf; "OK"; "OK";0; -1; $PageWidth-150; $pageHeight-20; 15; 15 ) ]
# This is javascript from Adobe to go to next page You could substitute many of their examples
Set Variable [ $script ; Value: "this.pageNum++" ]
Set Variable [ $script ; Value: MBS( "Text.ReplaceNewline"; $script; 2 ) ]
Set Variable [ $a ; Value: MBS( "DynaPDF.CreateJSAction"; $pdf; $script ) ]
Set Variable [ $r ; Value: MBS( "DynaPDF.AddActionToObj"; $pdf; "Field"; "OnMouseUp"; $a; $f ) ]

See also

Example Databases


DynaPDF.CreateGroupField   -   DynaPDF.CreateListBox

Feedback: Report problem or ask question.




Links
MBS Xojo Plugins