Tag Archives: forms

Dynamically Rendering PDFs from the LiveCycle Repository

While not as complex a process as Barcoded Forms the process of dynamically rendering PDFs from the LiveCycle Repository is a common process that gets used very often. There may be instances where an application needs a simple static PDF. Perhaps it’s a form that’s not quite ready for online submission. You could store these files on a web server and access them directly but it would be better and easier for future development to store them in the LiveCycle Repository and render them with a call to a REST service that is created when the process is deployed. The path to the document to render is passed into the process via a URL variable and the static PDF or the XDP file converted to PDF is returned to the browser.

For this LiveCycle Hands On the process is very simple. Besides rendering a simple static PDF, it’s also setup to render a simple XDP using LiveCycle Output ES.

Download the LCA here: Render_Form_Demo.lca_.zip

(Right click and select View Image to see the full size image)


Complete article at http://www.underprise.com/2011/06/01/dynamically-rendering-pdfs-from-the-livecycle-repository/.

Removing images from ImageFields using JavaScript

Michael Steward

When adding an ImageField to a form it’s a common requirement to allow a user to remove the image.  By default clicking on the image field will only let the user replace it with another image.  If you want to remove it altogether then this little piece of code attached to a button will help:

imageField.rawValue = null;


Original article at http://michaelsteward.com/2011/10/14/removing-images-from-imagefields-using-javascript/.

How to Avoid Missing xfasubset.js Error in ADEP Forms

If you try to render an XFA form as HTML, chances are that you will encounter the following error: ERROR [com.adobe.livecycle.formsservice.exception.FormServerException] (http- ALC-FRM-001-006: URI not found: /scripts/xfasubset.js Cause: scriptsxfasubset.js (The system cannot find the path specified) xfasubset.js is a BLOB … Continue reading

Original article at http://blogs.adobe.com/ADEP/2011/09/how-to-avoid-missing-xfasubset-js-error-in-adep-forms.html.

Copying XDP-files and the Impact on Performance

If you are developing multiple forms / fragments inside your application whereby some forms look similar, a common way is then to copy some XDP-files at some point to make specific changes to these forms. What most developers don’t realize is that doing a copy on the OS (not doing a Save As in Designer) could have major performance impact while rendering forms.

To better understand why this is, you have to go into the details of the caching mechanism used by forms and output.
If you want to know more on this, please read this document. In most cases the filename and path are used to determine the cache key, when this is not available (e.g. template is passed in by value), the caching is based on the following metadata line inside your XDP :

<xdp:xdp xmlns:xdp=”http://ns.adobe.com/xdp/” timeStamp=”2010-12-01T14:00:26Z” uuid=”324b5d64-7aff-4beb-88a5-3ded2dde1819″>

Based on the combination of “timeStamp” and “uuid” it is determined whether the form is already cached or not. This seems to be very straightforward, you would think. However, where you have copied XDP-files, you have the following situation

File1.xdp :
<xdp:xdp xmlns:xdp=”http://ns.adobe.com/xdp/” timeStamp=”2011-05-05T16:00:10Z” uuid=”324b5d64-7aff-4beb-88a5-3ded2dde1819″>

File2.xdp :
<xdp:xdp xmlns:xdp=”http://ns.adobe.com/xdp/” timeStamp=”2011-05-05T15:59:35Z” uuid=”324b5d64-7aff-4beb-88a5-3ded2dde1819″>

When you render File1.xdp and File2.xdp one after the other, Forms and Output assume that the XDP has been changed and therefore the cache need to be rebuilt. Functionally you won’t see a difference, but performance-wise you will see a lot of expensive operations because the cache gets constantly invalidated.

A way to see this is to use JMX whereby you expect invocation-times that are constant, when the cache is invalidated you will see spikes in the timings on these operations.

How to get an unique uuid?

Basically you have two ways to renew your uuid with Forms Designer.

1. SaveAs
If you use File->Save As, Designer will automatically assign a new uuid to your XDP-file

2. Remove uuid
If you go into the xml source of Designer, remove the uuid attribute and save the XDP file, Designer will assign a new uuid.

Checking on shared uuids

We have created an ANT script that helps you to identify XDP-files that share the same uuid. The tool inspects all XDP-files and compares the uuids used. When it finds XDP-files with the same uuid, an error is printed.

You can see an example of that here :

[echo]  Checking UUIDs ...
[java] ERROR: Found duplicate uuid 324b5d64-7aff-4beb-88a5-3ded2dde1819 in
File1.xdp and File2.xdp

In the README.txt inside the uuidchecker.zip you will find a brief explanation on how to use this tool.

Original article at http://blogs.adobe.com/livecycle/2011/05/copying-xdp-files-and-the-impact-on-performance.html.

How to Invoke LiveCycle Forms from an Existing XDP Form in Acrobat/Reader or Browser Plugin and Get Another Form Rendered Back to the Client

Lately I have had a request from a customer of mine who wanted to modify existing XDP forms (ie. change a label or a field value) on the fly without going in LiveCycle Designer (ie. the procedure would imply costs for hiring the dev department).

His idea was to have a Form A, in which he would be able to specify the changes he desires to have in the Form B, submit the form  A to a LC orchestration which would apply the changes and render the Form B back in Acrobat/Reader or even the browser plugin.

Here I am only covering the call to LC and the rendering back to the client.

Note: I am using LCES 2 SP2 ( running on Jboss.

So we have Form A that could look like this:

Note: i will explain the submit URL later on.

As we can see we have a few fields that would mean something to Form B and as an end user we will open Form A in Acrobat/ Reader or even the browser plugin to enter the value we want to see in Form B.

We need to go in LC Workbench to create an orchestration which will render Form B:

We can see I used the RenderPDFForm service operation and created a variable (type document) for the input Form and to make things simple I had put Form B in the application  structure:

The key element for the invocation of the orchestration from Form A is to rely on the REST protocol (http post):

We can find the right URL for the call by selecting the Default startpoint properties:

Since I going to run the test on the same machine where Livecycle is running the URL looks like this:


Note: “test” is the name of my application  and “renderForm” is my process (orchestration) and 1.0 is its version.

This is the URL I put in the submit button in Form A (see first screenshot).

In order to make the call successful, we need to create variables to match the fields in Form A: Name, FormContent and MainParagraph.

Of course, in the scenario where you want to modify Form B with Form A fields values, you would need those variables to apply the desired changes.

Note: by matching i meant the variables name and type (most of the time it would be string but you can have list as well).

Here I am only rendering the Form B without any changes so I did not bother adding more activities in my orchestration which would utilise those variables.

Once the orchestration and the forms have been saved and the application deployed on the server, all we need is to open Form A in the client of our choice, here I used Internet Explorer so we can see the URL at the top.

I click on the button “open form via REST” and the login request pops up and i use my LC credentials to access:

Once logged in Form B is appearing in the same window:

Note: When using Reader or Acrobat, it will open a new window for Form B.

No need to Reader Extend Form A to make it work hence it works in Reader standalone and plugin.

Original article at http://blogs.adobe.com/ADEP/2011/08/invoke_forms_from_xdp.html.

Tutorial to bind dynamic fields to a data schema

Gilbert Yu

Do you want to learn how to bind dynamic forms fields to schema in Adobe LiveCycle Designer ES2? Here is a tutorial provided by one of our Adobe partners, Twin Technologies! The article is posted on Adobe DevNet here.


Original article at http://blogs.adobe.com/livecycledocs/2011/03/tutorial-to-bind-dynamic-fields-to-a-data-schema.html.

Adding Attachments to PDF Form

Girish Bedekar

Just finished helping a customer who wanted to add attachments to PDF using javascript. There are 2 ways to add attachments to a PDF form
1- using the attachments tab
2- Using javascript- with the help of a button the user selects the file to add to the pdf
I have included the PDF which allows the user to add attachment , view the attachment and deleted the selected attachment from the form.
Please click here to access the formPDF Form

Original article at http://eslifeline.wordpress.com/2009/04/06/adding-attachments-to-pdf-form/.

Extracting Data from Signed PDF using LiveCycle Server

– Girish Bedekar

Very common request- how do I extract data from a Signed PDF using livecycle ES
To do this you will need to have livecycle server software installed. This example uses processFormSubmission service operation of the forms component.
Attached is the PDF which explains the process and it also has the process lca and the test file need to run the process
Click here
This process can be used when you are getting the signed PDF from email/watchedFolder. This process can also be used when you are submitting the signed pdf from workspace

Original article at http://eslifeline.wordpress.com/2009/04/25/extracting-data-from-signed-pdf-using-livecycle-server/.

Disabling Form Fields with validation

– Girish Bedekar

Many a times you would like to perform field level validations, before submitting the form by email. Also a lot of you would like to hide the submit button when the form is emailed to the end user
I have included a simple form which demonstrates this capability
Please click here to get the pdf
Click Here to get the pdf
Let me know if you have any further questions

Original article at http://eslifeline.wordpress.com/2009/01/28/disabling-form-fields-with-validation/.

LiveCycle ES2 integrated with MS Sharepoint Server 2007

– Marcel Van Espen

Very soon a connector for MS Sharepoint Server will be released. This offers bi-directional integration options to either connect to Sharepoint from a LiveCycle process, or to connect to a LiveCycle service from a Sharepoint document/folder.

I have recorded a demonstration that shows you how to store the result of a forms process in LiveCycle in a Sharepoint folder. I have used a very simple holiday request form that is filled in from the LiveCycle Workspace. After filling it in a static PDF is generated using the Output service and the result is stored into Sharepoint using one of the standard services. Check out the recording on http://www.vimeo.com/9378807

Original article at http://www.drflex.eu/2010/02/livecycle-es2-integrated-with-ms-sharepoint-server-2007/.