[NTG-context] Widgets: Any good examples for developing JS-enabled PDFs that calculate?

Henning Hraban Ramm texml at fiee.net
Mon Nov 18 16:15:28 CET 2019


Hi,
I didn’t check your example, but I remember that JScode did only work if there’s also a JSpreamble.
Also the "used now" keyword (see Hans’ message) is essential.

HTH. Sorry, no time for further investigation.

Hraban

> Am 2019-11-17 um 21:13 schrieb Paul Mazaitis <pm39 at andrew.cmu.edu>:
> 
> 
> Hi everyone,
> 
> First: apologies for the long email; this got a little complicated.
> 
> Summary: there may be a bug in setting up calculate field for widgets?
> 
> Parts:
> 
> - calculator.tex
> - A M(N)WE
> - The MWE Only Sort of Works
> 
> # calculator.tex
> 
> On 13 Nov 2019, at 10:26, Pablo Rodriguez wrote:
> 
>> Hi Paul,
> 
>> I wonder whether
>> tex/texmf-context/doc/context/examples/calculator/calculator.tex from
>> the ConTeXt Suite might be what you look for.
>> 
>> Just in case it helps,
> 
> It does (and is quite something!); it's not quite what I need, though. I'd like to take advantage of the internal _calculate_ event when a field updates - the calculator.tex PDF appears to be entirely programmatically event driven?
> 
> (Which could certainly work for my application, but I want to try to keep this as simple for the user as possible.)
> 
>> Pablo
> 
> # A M(N)WE
> 
> Here's a Minimal Working Example, with some caveats:
> 
> --- begin MWE ---
> 
> \usemodule[fields]
> 
> \starttext
> 
> \setupinteraction [state=start]
> 	
> \startJScode{tallyUp}
>  var a_fld = this.getField("A");
>  var b_fld = this.getField("B");
>  event.value = a_fld.value + b_fld.value;
> \stopJScode
> 
> \setupfield[numField][reset,horizontal]
>        [height=2pc,rulethickness=1pt,framecolor=lightgrey]
> 
> \setupfield[totalField][reset,horizontal]
>        [
>        height=2pc,
>        rulethickness=1pt,
>        framecolor=lightgrey,
>        option=readonly,
>        calculate=JS(tallyUp),
>        ]
> 
> \definefield[A][line][numField][]
> \definefield[B][line][numField][]
> 
> \definefield[Total][line][totalField][]
> 
> A: \field[A]
> 
> B: \field[B]
> 
> \blank[big]
> 
> Total: \field[Total]
> 
> \stoptext
> 
> ---  end MWE  ---



More information about the ntg-context mailing list