Typically, a form design that is created in Designer is
passed by reference to the Forms service. Form designs can be large
and, as a result, it is more efficient to pass them by reference
to avoid having to marshal form design bytes by value. The Forms
service can also cache the form design so that when cached, it does
not have to continually read the form design.
If a form design contains a UUID attribute, then it is cached.
The UUID value is unique for all form designs and is used to uniquely
identify a form. When rendering a form by value, the form should
only be cached when it is used repeatedly. However, if the form
is not used repeatedly and has to be unique, you can avoid caching
the form using caching options that are set using the LiveCycle API.
The Forms service can also resolve the location of linked content
within the form design. For example, linked images that are referenced
from within the form design are relative URLs. Linked content is
always assumed to be relative to the form design location. Therefore,
resolving linked content is a matter of determining its location
by applying the relative path to the absolute form design location.
Instead of passing a form design by reference, you can pass a
form design by value. Passing a form design by value is efficient
when a form design is dynamically created; that is, when a client
application generates the XML that creates a form design during
run-time. In this situation a form design is not stored in a physical
repository because it is stored in memory. When dynamically creating
a form design at run-time and passing it by value, you can cache
the form and improve performance of the Forms service.
Limitations of passing a form by value
The following limitations apply
when a form design is passed by value:
No relative
linked content can be within the form design. All images and fragments
must be embedded inside the form design or referred to absolutely.
Server-side calculations cannot be performed after the form
is rendered. If the form is submitted back to the Forms service,
the data is extracted and returned without any server-side calculations.
Because HTML can only use linked images at run time, it is
not possible to generate HTML with embedded images. This is because
the Forms service supports embedded images with HTML by retrieving
the images from a referenced form design. Because a form design
that is passed by value does not have a referenced location, embedded
images cannot be extracted when the HTML page is displayed. Therefore,
image references must be absolute paths to be rendered in HTML.
Note: Although you can render different types of forms
by value (for example, HTML forms or forms that contain usage rights),
this section discusses rendering interactive PDF forms.