You could make a short lived process that returns the first form. After
printing, it submits to another process or the same process with a
parameter indicating it is the first submission. It returns the second
form. Repeat until all your forms have been handled.
I wrote an ant script for creating my components for me. It was still
tedius to deploy them over and over in Workbench. I wrote the java app
below (much of the setup is from sample files in help). I configured my
Java project in my IDE to use this file as what runs and to run my ant
task to build the component before running. So I can just change code,
hit the quick key for run and my new code is deployed on the server to
The path would have to be as seen from the server, not how it would be
seen from your local machine running Workbench. You would either need to
copy it to the server or copy to a shared network drive that can be seen
by both your local machine and the server. The second one would be
easier to keep track of if you used the same network drive letter on
both machines.To make your process available as a Webservice, you just
have to have SOAP checked in the settings on the big green arrow put at
There are Java API for those services. If you try to import any classes
to use the APIs and get errors, don't add the JARs. In component.xml,
after .. add this for reader extensions.
You do not need to pass in properties to the creation
of the client factory. ServiceClientFactory serviceFactory =
reClient = new ReaderExtensionsServiceClient(serviceFactory);... outDoc
Is this in a custom component? I am wondering since the Exception says
not found in namespace. If so, try using import-packages in
component.xml instead of class-path and actually adding the jar.
Workbench is the tool to write a process. Wouldn't your end user be in
Workspace?If these scripts can be run from the server, then you could
wrap them with a process that uses an execute script
step:Runtime.getRuntime().exec("something.bat");You could then call that
process as a webservice from a form when the user clicks the check box.
To use a loop, the items must be arrays. Adding complexity to your
situation is related items from a data perspective being spread across
pages and subforms for layout. If you create a schema for your data and
create a data connection based on that schema, then bind your fields to
the schema, you can separate data reference out from layout. It will
then make it much easier to loop on the data yet still have your layout
If you put a field in the Master Page at the top, it will be on every
page. If you create a schema for the form's data, create a data
connection from that schema, bind the text field in the master page to a
ProductName field in the data connection, changing product name on any
page will change it on all pages.You can also put script in the change
event to copy the value to the other pages. The above method is better.
You probably will need to create a custom approval container.If your
button is submitting the form, I think you are supposed to be able to
get the action in a preSubmit event. I have had issues with that though.
What is this setting: File > Form Properties > Defaults tab > Preserve
scripting changes to form when saved? If manual, try automatic. If
already automatic, in what event are you setting the access to open.You
can also put script in the initialize event to lock the fields based on
some value in the form. For example, you can create a hidden form field
called locked and set it to true when the submit button is clicked. In
the initialize event, lock all the fields if the locked check box is
If you have both Reader and Pro on the same machine, it will cause
problems.James Houghtaling, is there any reason you could not have
looked at Paul's response, decided you don't have Reader Extension
server, don't want to buy it and asked "How do I Reader Extend the form
Don makes a good point. I was probably thinking something had to be done
in Execute Script and Sunil didn't want to learn Java to do the other
things. But if there is already a learning curve, you might as well pick
the one that is more efficient.
I figured it out. Well, I stopped the error and have a theory as to why.
My custom component uses Reader Extensions. I would get an error about
not finding the classes unless I included the jar in the component.xml
classpath. That would seem how most of the custom component samples I
find do it. I found some blog entires referring to using
instead of for other errors. So I removed
all the jars and the classpath. I added this: org.apache.commons.codec org.apache.commons.codec.binary com.adobe....
Chrome has been like this for a while. I don't know if the feature of
the built in PDF viewer in FireFox just came about, but only recently
started after the last update on my own machine. A message about poped
up right on the same screen and gave me the option to change.In
Chrome,open chrome://plugins/find Chrome PDF Viewer and click
disablefind Adobe Reader and click enableI'm sure you are free to go to
the FireFox site and request XFA support in the PDF viewer. The viewer
is probably from a w...
I meant to say change event per what your example was. I guess it is an
intersting bit of info that rawValue will work in the change event of a
checkbox. I'll stick to using xfa.event.newText to be consistent and
ensure someone looking at my code to apply to something else doesn't
have a problem.
"Is there any way I can achieve directly using bindings since we are
Have you created a Schema, data connection to it and bound your form
elements? If you bind two elements to the same item in the data
connection, when you change one, the other changes.
"hidden";TextField1.presence = "visible";The sub form the items are in
and all above it in the tree must have autosize on height.
Drop box is blocked for me.rawValue is not changed yet in the change
event. You need to use xfa.event.newText.The global variable thing seems
a waste to me. Can't you just reference the rawValue of each check box
in the calculate event of the text field?
I don't have an ID and am not going to create one to open the file.What
is this setting: File > Form Properties > Defaults tab > Preserve
scripting changes to form when saved? If manual, try automatic. If
already automatic, in what event are you setting the access to open.
When you say binding, do you mean an array index? Have you created an
XML Schema? The first step i perform when creating a form is to create
an XML Schema, create a Data Connection in the form with that Schema and
bind all my form elements to their corresponding data items. I don't
understand what it is that is going wrong for you, but binding to a
schema gives you control over what gets exported and imported.
It also works on my system to add a blank item at Design time. Maybe it
is a difference in the Acrobat version that the blank item is removed. I
would try removing the blank item at design time and adding in the
initialize event to see if it fixes it on the users system.
I don't hink you will be able to merge them as form based PDFs. Most if
not all third party libraries for PDFs don't handle them. Maybe install
Acrobat Pro on a server, set it up somehow to print to PDF to use that
the 'flatten' the form into a non-interactive one that third party tools
can deal with. We own the LiveCycle a server products that can flatten
them so it is just theory on my part.
If the exported XML is the same, I doubt adding a schema will help other
than it may make the file growth smaller. I am thinking the extra data
after the EOF is the form data, multiple saves, save multiple copies and
opening in Acrobat combines it all together. It is just a theory though.