mvc export to pdf : Convert multiple page pdf to jpg SDK Library service wpf .net azure dnn EC202H_StefanCameron_ClassNotes0-part535

Designing PDF Forms and Flex Form 
Guides – Adobe MAX 2007 
Track ID: EC202H 
Level: Intermediate 
Hands­on: 90 minutes 
Author / Presenter 
Stefan Cameron, Computer Scientist 
LC Designer ES Team 
Adobe Systems Incorporated 
scameron@adobe.com
 
http://forms.stefcameron.com
 
Abstract 
Get up‐close and personal with Flex and XFA in this hands‐on training session. You will learn how these 
two powerful technologies can be used together to offer your customers the best online and offline 
form‐filling experiences. We will cover basic form design, scripting and data binding techniques while 
creating a dynamic PDF form which we will then easily re‐purpose to a rich Flash‐based wizard, 
deployable from LiveCycle Forms ES, using the Guide Builder tool. 
Main Objectives 
We will be adding the final but crucial details to a registration form for fictitious races to be held over 
the course of the MAX conference. We will be 
• defining a schema data connection to ensure that submitted data adheres to a schema; 
• adding script to enable the applicant to register multiple people (e.g. for a family); 
• using basic dynamic form design techniques to make the objects on the form expand and retract 
depending on specified data; and 
• quickly re‐purposing a dynamic form as a Flash‐based Form Guide wizard using the new Guide 
Builder tool and deploying it to a web browser using LiveCycle Forms. 
Required Software 
The following software is required for this tutorial: 
• Adobe LiveCycle Designer ES 
Convert multiple page pdf to jpg - Convert PDF to JPEG images in C#.net, ASP.NET MVC, WinForms, WPF project
How to convert PDF to JPEG using C#.NET PDF to JPEG conversion / converter library control SDK
change from pdf to jpg on; reader convert pdf to jpg
Convert multiple page pdf to jpg - VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.net, ASP.NET MVC, WinForms, WPF project
Online Tutorial for PDF to JPEG (JPG) Conversion in VB.NET Image Application
pdf to jpg; bulk pdf to jpg
Designing PDF Forms and Flex Form Guides – Adobe MAX 2007 
EC202H 
• Adobe LiveCycle Guide Builder ES 
• Adobe Acrobat 8.1 Professional 
• Adobe Flash Player 9.x 
• Email program such as Outlook or Outlook Express (because the form submits its data via an 
email submit button) 
The following software is optional. Without this software, you will be able to preview the Form Guide 
from Walk‐through Four however you will not be able to deploy it to a web browser, see the PDF form 
being filled as the Form Guide is filled and you will not be able to submit data from the Form Guide: 
• Adobe LiveCycle Forms ES 
I. Defining an XML Schema Data Connection 
The main purpose of this form is to collect data. For an electronic form in an electronic workflow, the 
form’s data is typically submitted to a receiving entity such as an email address, a URL, a database or a 
web service. Without doing more than placing fields and an email submit button on a form, clicking the 
email submit button will create a new email message with an XML data file attached to it. The data file 
will contain an XML structure that describes the content entered into the fields in a hierarchical manner. 
While the default XML data that’s produced can be useful, business processes usually require that the 
data output from a form adhere to a particular schema. To ensure that a form’s output XML data is 
structured according to the rules defined in a schema, you can define a Schema Data Connection and 
create bindings between its data items and fields and containers on your form using the Data View 
palette
LC Designer ES helps you quickly create the proper fields and containers with types and properties that 
adhere to a data connection (whether it’s to a schema, database or web service) via the Data View 
palette. 
 
Figure 1: Data View palette with schema data connection 
Once the data connection is defined, you may drag and drop data items onto the form. If you drag a 
single data item over an existing field, a little shortcut icon will appear on the cursor to indicate that 
Author: Stefan Cameron, Adobe Systems Inc. 
 
Page 2 of 2 
C# Create PDF from images Library to convert Jpeg, png images to
Batch convert PDF documents from multiple image formats, including Jpg image formats into one or multiple PDF file in able to be cropped and pasted to PDF page.
convert pdf to jpg batch; bulk pdf to jpg converter
VB.NET Create PDF from images Library to convert Jpeg, png images
Components to batch convert PDF documents in Visual Basic multiple image formats into one or multiple PDF file. Crop and paste specified image area to PDF page.
convert pdf file to jpg on; convert pdf into jpg online
Designing PDF Forms and Flex Form Guides – Adobe MAX 2007 
EC202H 
dropping the data item at that location would update the field to the data item’s properties and binding. 
Otherwise, you may drop the data item onto the form and Designer will create a field with a type and 
constraints that best matches its definition as per the schema. 
» Demo 1: Define a data connection to a schema in a new form and quickly create fields 
bound to the data connection by dragging and dropping data items onto the form. 
Inspect the resulting fields to see how they relate to the schema’s types and constraints. 
A. Walk­through One 
Objective: Define a data connection to a schema and use the drag and drop technique to link existing 
fields on a form to items in the data connection. Use the Binding Properties tool to update properties of 
those fields to match schema rules. 
Inspect the schema 
1. Open the “MaxRaceRegistration.xsd” schema file located in the “Data” folder using Notepad and 
inspect the various properties. 
 
Figure 2: MaxRaceRegistration.xsd schema source 
Note that the maxRaceReg element is the root which includes 3 data items: 
a. raceType – an item whose value comes from an enumeration of defined values which 
describe the type of race the applicant is registering for. 
b. registrant – a repeatable item containing information about a registrant of which there 
must be at least 1 occurrence but no more than 5. 
c. termsAgree – a “true/false” item indicating whether the applicant has agreed to the 
“rules and regulations” of the race. 
Open the form and define the data connection 
2. Open the “ToTheMAX_Registration_WT1.pdf” form in LC Designer ES. 
3. Open the Hierarchy palette (use the “Window > Hierarchy” menu command if it isn’t visible). 
Notice that the root subform’s name is “form1” (its default name). 
Author: Stefan Cameron, Adobe Systems Inc. 
 
Page 3 of 3 
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
able to perform image extraction from multiple page adobe PDF Extract multiple types of image from PDF file in Scan high quality image to PDF, tiff and various
changing pdf to jpg file; convert pdf to jpg
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
conversions from PDF document to multiple image forms. can use this sample code to convert PDF file to PDFDocument(inputFilePath); // Get the first page of PDF
.pdf to .jpg online; .net convert pdf to jpg
Designing PDF Forms and Flex Form Guides – Adobe MAX 2007 
EC202H 
 
Figure 3: Default root subform name is "form1" 
4. Open the Data View palette (use the “Window > Data View” menu command if it isn’t visible). 
Notice that there are no data connections defined. 
5. Using the palette fly‐out menu, choose the “New Data Connection…” item. 
 
Figure 4: "New Data Connection" command in fly‐out menu 
6. Set the name to “SchemaConnection”, choose the “XML Schema” option and click “Next”. 
7. Select the “MaxRaceRegistration.xsd” schema file located in the “Data” folder. 
8. Select “maxRaceReg” as the “XML Data Root Element Name”. This will rename the form’s root 
subform (currently named “form1” by default) to “maxRaceReg” so that the submitted data has 
a root element named “maxRaceReg”, as the schema requires
9. Click “Finish”. The new data connection will be displayed in the Data View palette. To save time, 
some of the bindings had already been defined in the form. You will see a binding icon next to 
each data item that is bound. The remaining items are “registrant” and “finishTime”. 
Apply bindings to “Registrant” subform and “FinishTime” fields 
10. Open the Hierarchy palette and select the “Registrant” subform inside the “RegistrantInfo” 
subform. 
11. Open the Object palette (use the “Window > Object” menu command if it isn’t visible) and 
choose the Binding tab. 
12. Use the popup button next to the “Default Binding” property to select the “SchemaConnection > 
registrant” data item. The resulting value in the property will be “registrant[*]” to indicate that 
this subform is bound to multiple occurrences of the “registrant” data item. 
13. On the same tab, check the “Repeat Subform for Each Data Item” box and set the “Min Count” 
and “Max” properties to 1 and 5, respectively. This will limit the number of possible instances to 
a minimum of 1 and a maximum of 5, as per the schema. 
Author: Stefan Cameron, Adobe Systems Inc. 
 
Page 4 of 4 
C# WPF PDF Viewer SDK to convert and export PDF document to other
Image: Copy, Paste, Cut Image in Page. Link: Edit Create multiple pages Tiff file from PDF document. Convert PDF to image file formats with high quality, support
convert pdf to jpg c#; best pdf to jpg converter online
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
C#.NET extract image from multiple page adobe PDF file Extract various types of image from PDF file, like Get JPG, JPEG and other high quality image files from
changing pdf to jpg; convert pdf to jpg file
Designing PDF Forms and Flex Form Guides – Adobe MAX 2007 
EC202H 
 
Figure 5: Making "Registrant" subform repeatable 
14. Select the “Finish Time” field in the “Registrant Information” section. Notice that it doesn’t have 
any list items defined in the Object palette’s Field tab. 
15. Return to the Data View palette and drag & drop the “finishTime” data item onto the “Finish 
Time” field. In the Binding Properties tool that opens, select “Update the following properties 
only” and make sure that “List Items” is the only box that is checked. Click “OK”. 
16. Have another look at the Object palette’s Field tab. You should now see that the “Finish Time” 
field has been updated with list items as defined in the schema. 
 
Figure 6: "FinishTime" drop down list now has items from schema 
B. Further Reading 
Using the Dynamic Binding feature (populate lists from data, set captions from data, etc.) 
http://forms.stefcameron.com/2006/07/29/dynamic‐properties/
 
Connecting a Form to a Database 
http://forms.stefcameron.com/2006/09/18/connecting‐a‐form‐to‐a‐database/
 
Selecting Specific Records in a Database 
Author: Stefan Cameron, Adobe Systems Inc. 
 
Page 5 of 5 
C# Create PDF Library SDK to convert PDF from other file formats
Gratis control for creating PDF from multiple image formats such as tiff, jpg, png, gif, bmp Create and save editable PDF with a blank page, bookmarks, links
change pdf to jpg format; convert .pdf to .jpg online
VB.NET PDF Convert to Images SDK: Convert PDF to png, gif images
Convert PDF documents to multiple image formats, including Jpg VB.NET programming sample code to convert PDF file to inputFilePath) ' Get the first page of PDF
changing pdf to jpg on; batch pdf to jpg online
Designing PDF Forms and Flex Form Guides – Adobe MAX 2007 
EC202H 
http://forms.stefcameron.com/2006/09/29/selecting‐specific‐database‐records/
 
Displaying All Records in a Database 
http://forms.stefcameron.com/2006/10/12/displaying‐all‐records‐from‐an‐odbc‐data‐connection/
 
Connecting a Form to a Web Service 
http://forms.stefcameron.com/2007/05/21/connecting‐to‐a‐web‐service/
 
II. Using the Instance Manager 
It’s often the case that a dynamic form will have one or more sections which may need to be repeated in 
order to accommodate more or less data depending on the person filling it out. In our race registration 
example, the applicant has the option of registering between one (the minimum) and five (the 
maximum) people for a race (as per the rules defined in the schema to which we bound the form in the 
previous step). 
In an XFA form, sections are typically represented by subforms which are containers of other objects, 
even other (“nested” as some call them) subforms. Subforms play a very important role when it comes 
to data bindings because they represent the multiple levels (hierarchy) of data items in the data that 
gets submitted from a form (e.g. based on a schema as we saw in the previous section). They are also 
very useful for layout purposes because their content can either be positioned (fixed size with objects in 
specific places) 
 
Figure 7: Subform with positioned content 
or flowed (dynamic size with objects flowing one after another without any specific positioning). 
 
Figure 8: Subform with flowed content (result of making previous subform “flowed”) 
Author: Stefan Cameron, Adobe Systems Inc. 
 
Page 6 of 6 
Designing PDF Forms and Flex Form Guides – Adobe MAX 2007 
EC202H 
When a section must be repeated, the Instance Manager must be used to generate new instances and 
remove existing ones. By default, all subforms have an Instance Manager however, unless you make the 
subform repeatable using the Object palette’s “Repeat for each data item” property, 
 
Figure 9: Object palette Binding tab’s property to make subform repeatable 
the Instance Manager will be unable to add/remove instances because the subform’s minimum and 
maximum occurrences are both set to 1 by default. 
LC Designer ES takes this a step further by restricting the subforms which can be made repeatable to 
those placed inside a flowed container (another subform with its Content property set to “Flowed”) in 
order to encourage proper form layout. If this isn’t the case, the Object palette will disable the “Repeat 
for each data item” property. We will cover the reasons behind this restriction in greater detail in the 
following section. 
Note that in the previous section on Schema Data Connections, you made the “Registrant” subform, in 
the “Registrant Information” section, repeatable and you specified that it should have a minimum of 1 
and a maximum of 5 instances at any given time. 
The effect of making a subform repeatable is two‐fold: 
1. It has the effect of letting the subform repeat as required in order to display multiple instances 
of a repeating data item in data that you import into the form (either from an XML Data File, a 
database or a web service). 
2. It gives the subform’s Instance Manager the ability to add/remove instances dynamically when 
the form is being filled (e.g. in our race registration form, we want to give the applicant the 
ability to add and remove registrants). 
Author: Stefan Cameron, Adobe Systems Inc. 
 
Page 7 of 7 
Designing PDF Forms and Flex Form Guides – Adobe MAX 2007 
EC202H 
A. Accessing the Instance Manager Object in Script 
The Instance Manager object is something that’s only available via script once the form is saved as a 
dynamic form and is running in a filler application such as Acrobat or a browser. The Instance Manager 
doesn’t make sense in static forms since these cannot modify their structure dynamically. 
Every subform has  a property named “instanceManager” which you can access like this: 
MySubform.instanceManager 
Note that at least one instance of the (repeatable) subform must exist in order for your script to be able 
to access its instanceManager property. If, for example, you attempted to add an instance when no 
instances exist, you would get the following script error: 
MySubform is not defined 
That’s because there is no instance of the “MySubform” object currently in existence in the Scripting 
Object Model. 
» Demo 1: Show a simple form with a repeatable subform and a button to add 
instances. Remove the minimum and use the “instanceManager” property to add 
instances in order to show the error. 
But what if your form needs to permit the removal of all instances of a (repeatable) subform? How 
would you add a new instance once they’ve all been removed? 
There is an alternate way to access a subform’s Instance Manager object which you can use even if 
there are no instances currently in existence: Every subform gets a sibling object with the same name, 
prefixed with an underscore, which is a reference to its “instanceManager” property. Therefore, our 
“MySubform” object would get a sibling object in the scripting model named 
_MySubform 
Referring to our example of adding an instance when no instances exist, you would do this instead: 
_MySubform.addInstance(0); 
Since you can always access a subform’s Instance Manager in this alternate way, I suggest you favor it 
over using the “instanceManager” property. 
» Demo 2: Return to the first demo form and update the syntax to use the “underscore 
prefix” notation to show that it’s now possible to add instances without errors. 
B. Adding, Removing and Counting Instances 
When working with repeatable subforms, the three most important things you’ll want to do is add, 
remove and count instances. 
Author: Stefan Cameron, Adobe Systems Inc. 
 
Page 8 of 8 
Designing PDF Forms and Flex Form Guides – Adobe MAX 2007 
EC202H 
To add instances, you’ll use the “addInstance(0)” method like this: 
_RepeatingSubform.addInstance(0); 
To remove instances, you’ll use the “removeInstance(index)” method like this: 
_RepeatingSubform.removeInstance(3); // remove the 4
th
(zero-based) instance 
One very important thing to note about removing instances as of Acrobat/Reader 8.1 is that if there’s 
anything else you need to do (any other script statements) along with removing an instance, make sure 
that the instance is removed once all other statements have been executed. The new Direct Rendering 
engine in Acrobat/Reader 8.1 removes the instance, and all objects that it contains, immediately (as 
opposed to removing it on the next rendering pass as in previous versions) which means that any 
subsequent statements are not executed. 
To count the number of existing instances, you’ll use the “count” property like this: 
_RepeatingSubform.count; 
The “count” property is useful when you need to make common changes to all instances or when you 
need to determine if you can add more instances – if you’ve reached the maximum allowed – or if there 
are still instances that can be removed without going beyond the set minimum. Note that the filler 
application (Acrobat or a browser) will automatically prevent adding more instances than the set 
maximum (if any) and removing more instances than the set minimum (to zero) however you’ll provide 
a much better user experience if you catch the invalid addition/removal before it happens and inform 
the user in some way (e.g. with a message stating the restriction). 
C. Walk­through Two 
Objective: The goal in this step is to enable the applicant to enter multiple registrants (from one to five) 
in the form. The applicant will be able to click the “Add” button to add registrants and each instance of 
the “Registrant” subform will have its own “X” button which can be used to remove that specific 
registrant from the set. 
Preview the form to see that the “Add” button doesn’t work 
1. Open the “ToTheMAX_Registration_WT2.pdf” form in LC Designer ES. 
2. Preview the form and press the “Add” button in the “Registrant Information” section. Note that 
nothing happens (new registrant instances aren’t added to the form). 
Add necessary script to “Add” button to add instances 
3. Locate and select the “Add” button in the “Registrant Information” section (in the middle of the 
form). 
Author: Stefan Cameron, Adobe Systems Inc. 
 
Page 9 of 9 
Designing PDF Forms and Flex Form Guides – Adobe MAX 2007 
EC202H 
 
Figure 10: "Add" button in "Registrant Information" section 
4. Open the Script Editor palette (use the “Window > Script Editor” command if it isn’t visible; 
otherwise, make sure that it’s in multiline view by making it tall). 
5. Choose the “Click” event from the “Show” drop down list at the top left hand corner of the 
Script Editor palette. 
6. There is already script in this event. It is designed to operate only if there are less than 5 
instances of the “Registrant” subform and has been partially disabled. What’s missing is the 
statement which will add a new instance of the “Registrant” repeatable subform. 
7. Replace the “//// script here ////” comment with “var oNewReg = _Registrant.addInstance(0);” 
and un‐comment the remainder of the script (by removing the “/*” and “*/” comment 
notation). 
 
Figure 11: Comment to be replaced in "Add" button Click event 
This statement will add the new instance and capture a reference to it so that the remainder of 
the script can adjust the “Add” button and the new instance’s delete (“X”) button depending on 
the new instance count. 
Add necessary script to “Delete” button to remove instances 
8. Locate and select the delete button. It can be found just below the “Count” field with the 
default value of “1” in the grayish blue color. Since it is hidden by default, you may need the 
Hierarchy palette to find and select it. Look for a button object with the name, “Delete”. 
Author: Stefan Cameron, Adobe Systems Inc. 
 
Page 10 of 10 
Documents you may be interested
Documents you may be interested