Design tips for forms that have flowable layout

The complexity of a form significantly influences the amount of time it takes Adobe Reader to render or reender the document. You can measure the complexity in several ways, but a main factor is the number of visible form objects. Even a complex form design with many objects, subforms, and pages can perform well if a limited part of its complexity is visible at once. It can perform well because the objects that have a presence set to hidden are ignored, and no time is spent to position and render them.

Keep in mind the following points when creating forms with a flowable layout:

General

  • Reduce the overall complexity the form design:

    • Use field captions instead of static text objects.

    • Remove captions form a field when not required.

    • Specify borders instead of drawing lines.

    • Specify a subform margin instead of using objects to add spacing between subforms.

    • Remove duplicate objects, scripts, or constructs that you can replace with fragments, script objects, and global fields.

  • Use either explicit or implicit breaks:

    • With implicit pagination, the master pages are instantiated in the order they are listed in the hierarchy, based on their minimum and maximum occurrences.

    • Explicit breaks are allowed and often required for complex forms, but are not necessary to create complex forms.

  • Start with the layout, ant then add the dynamic behaviors and scripting.

  • Use fixed layout when possible; for example, when a container such as a subform has one child.

  • Use fixed size objects when possible.

  • Resize the content area to leave enough space on the page for other objects that you do not want overlaid (for example, a page number, title, logo, and so on). Watermarks are meant to be overlapped content.

  • For a column layout, consider using multiple content areas or tables. To flow content from one column to the other, use content areas. To align the content of each column side by side, use a table. Create the table without a header and footer row.

Subforms

  • Avoid placing flowed subforms inside a positioned subform. Doing so causes problems with page breaks, overlapping objects, and repeating subforms.

  • If a subform contains objects that merge with data of varying sizes, verify that the objects do not expand and overrun the area that another object occupies. Expandable objects, such as text fields, may render on top of other objects. Set the subform to flow and expand to fit the content.

  • When you create a subform, resize it so that its width is the same as the width of the content area. Resize the subform before you place objects in it. This way, you avoid having to reposition the subform's children after you resize the subform.

  • Always set up overflow leader and trailer subforms to Positioned content and deselect the Allow Page Breaks option. Otherwise, the rendered form may contain errors such as duplicate headers or overlapping fields.

  • Specify an overflow leader and trailer subform for subforms that break between pages.

  • To quickly resize a subform to fit around its children, select the Autofit option in the Layout palette and then disable it.

  • It is good practice to rename nameless subforms with unique names. Naming subforms makes scripting easier and helps you locate objects in the Hierarchical view. A nameless subform does not participate in the data merge. To achieve the same result with a named subform, set its binding type to None.

    Note: If you create a large interactive PDF form with no structure, end users may experience slow performance when tabbing between fields. This problem is averted if you save the form without tagging. However, if you need your form to be accessible. However, to make your form accessible, save it as tagged PDF. To work around this situation, wrap sections of the form in unnamed subforms. This task adds the required structure to the form.
  • You can have several content areas on a master page. The content areas are filled with content in the order they are listed in the Hierarchy view regardless of their position on the page.

  • If you are creating a compliant form, use Acrobat to compare the documents. Select Compare Documents from the Acrobat Advanced menu.

  • Setting the margins of a subform may generate unexpected results. Most subforms have positioned content and therefore a fixed height. Adding margins offsets the subform content and can cause the objects below it to overlap.

  • To wrap the content of a subform exactly, without using the Expand To Fit option, resize the subform by using the properties in the Layout palette. The sample forms that are included with Designer use both methods.

Accessibility

  • Accessibility tags are generated from left to right and then from top to bottom. Accessibility problems can occur in subforms that position content when the objects are not positioned precisely.

Scripting

  • When scripting, avoid placing code in the initialize event of objects on the master page. In earlier versions of Adobe Reader, the initialize events for objects on master pages are executed more often than necessary. This extra script execution affects the performance of the form. If possible, use a different event, such as the calculate event.

Data binding

  • If you have a data connection, bind objects to the data connection or set the binding type to None. Also, use relative binding referencess. Do not have reoccurring data that is not bound to reoccurring subforms. It is best to bind fields to a data element and bind subforms to a data group. Data groups and subforms can repeat.

  • By default, the subform binding type is set to Use Name. When working with a schema, it is preferable that you set the default binding type to No Data Binding. You can set the default data binding in Tools > Options > Data Binding.

  • Set the data binding to No Data Binding for objects you do not want exported in the data. Set the binding type of subforms that contain no fields to No Data Binding. For example, an overflow leader or trailer subform usually has no fields. Setting the binding type to No Data Binding prevents it from participating in the merge. Excluding the overflow leader or trailer from the merge can improve performance.

// Ethnio survey code removed