Custom JavaScript code can be executed by declaring an annotation with the xf:javascript property and referencing it from the fo:root tag or from an xf:form-action tag.
Example of usage:
<?xml version="1.0" encoding="utf-8" ?>
<fo:root xf:annotation-reference="6" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xf="http://www.ecrion.com/xf/1.0">
<xf:annotation id="6">
<xf:javascript output-type="pdf">
app.alert("This is a JavaScript alert.");
</xf:javascript>
<xf:javascript output-type="html">
alert("This is a JavaScript alert.");
</xf:javascript>
</xf:annotation>
<fo:layout-master-set>
<fo:simple-page-master master-name="all-pages" page-width="8.5in" page-height="11in">
<fo:region-body region-name="xsl-region-body" margin="0.7in" column-gap="0.25in" padding="6pt" />
<fo:region-before region-name="xsl-region-before" extent="0.7in" display-align="after" padding="6pt" />
<fo:region-after region-name="xsl-region-after" extent="0.7in" display-align="before" padding="6pt" />
<fo:region-start region-name="xsl-region-start" extent="0.7in"/>
<fo:region-end region-name="xsl-region-end" extent="0.7in"/>
</fo:simple-page-master>
<fo:page-sequence-master master-name="default-sequence">
<fo:repeatable-page-master-reference master-reference="all-pages" />
</fo:page-sequence-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="default-sequence">
<fo:flow flow-name="xsl-region-body" font-size="12pt" font-family="Times">
<!-- this will have no effect, javascript annotation must be referenced from fo:root or xf:form-action -->
<fo:block font-family="Times" xf:annotation-reference="6">Hello World</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
The JavaScript code will be executed each time the document is opened.
Note:
· | The javascript will NOT be executed automatically if the annotation is referenced from an element other than fo:root. If it is referenced from an xf:form-action element, then it will be executed when the event associated with the action is raised. More information can be found in the PDF Forms topic. |
Because there are differences between JavaScript syntax across output formats, the user can optionally specify the output-type attribute to export a certain part of JavaScript code to only a certain output format.
The possible values for output-type are all (default), pdf and html.