FormMaker is an InDesign add-on that makes it easy to create fully styled, interactive, fillable PDF forms in InDesign.
FormMaker includes almost all the features that are included in Adobe Acrobat to set the visual appearance of form fields. It has a UI similar to Acrobat’s Properties panel for form fields, but also allows you to use the native, familiar, and more efficient InDesign way of applying formatting (fonts, color, alignment, etc.) to text.
Additionally, FormMaker lets you add many of the rich interactive features that are available natively in Acrobat to your PDF document and form fields – all in InDesign – in a user-friendly way without needing to write a single line of code, including field formatting, validation, and calculation.
With FormMaker you can also write custom keystroke, formatting, validation, calculation, and mouse- and keyboard-action JavaScripts, as well as adding document-level JavaScripts to your form.
So, in fact, with FormMaker you can add almost all the interactivity available in Acrobat to your interactive PDF forms – directly in InDesign.
The instructions for installing FormMaker can be found in the downloaded package. It’s as simple as pasting one file into InDesign’s Scripts Panel folder on your harddrive, and another file into Acrobat’s Javascripts folder. The exact paths are detailed in the Installation Guide (there are separate ones for macOS or Windows) that can be found in the downloaded package.
Important! If you are using the latest version of Acrobat with the new UI (Acrobat 2023, at the time of writing), you must disable the new UI. This is easy to do with one click. On Windows computers, click the hamburger menu (3 lines) at the upper-left corner and choose “Disable new Acrobat”. On Mac computers, from the View menu at the top, select “Disable new Acrobat.”
Create a new document in InDesign. Add a text frame. Open InDesign’s Buttons and Forms panel and turn the text frame into any of the form field types available, say, a text field. Select the field and run FormMaker by double-clicking on it in InDesign’s Scripts panel. You should now have a document that looks something like this:
If you’ve worked much with interactive forms in Acrobat, you should be familiar with all the options here, as they are basically identical to the options you see when you edit a form field in Acrobat.
Note that some of the options that are available in InDesign’s Buttons and Forms panel are duplicated in FormMaker (where InDesign’s naming is different to Acrobat’s, e.g. “Scrollable” vs. “Scroll long text”, FormMaker uses Acrobat’s naming).
In general, it’s best to use the options in FormMaker unless they are only available in the Buttons and Forms panel.
Note that Acrobat’s Appearance tab and Options tab are combined under a single tab (the Appearance tab) in FormMaker, to save space.
While using the FormMaker UI is one way of applying formatting to fields, one of the big advantages of FormMaker is that you can also use InDesign’s regular and more convenient methods of applying many of these attributes.
For instance, to set the color, alignment, font and font size of a form field, apply a paragraph style to the field. This makes it much easier if any of these parameters need to be changed later in a document that has hundreds of fields!
Likewise, to set the border color, fill color, line thickness and even line style of a field, use an InDesign object style.
Line Styles Tip: New line styles are available to match Acrobat’s line styles (see screenshot opposite). Their visual appearance in InDesign is only an approximation of how they will look in the final PDF, but selecting one of them in InDesign will result in their true equivalent in Acrobat.
Font Size Tip: To set the font size of a field to “auto,” simply select “auto” from FormMaker’s Font Size menu (or in InDesign’s Buttons and Forms panel). But a better way is to create and apply a paragraph style to the text field, and use the “magic” point size 12.345 (easy to remember: 1-2-3-4-5). This tells FormMaker to set the field’s font size to “auto.”
Comb Field Tip: To set a text field to be a “comb” field in Acrobat (where the user can only type a single character per square), use the appropriate option in FormMaker (note that, as in Acrobat, the option is grayed out if any attributes are applied to the field, such as “scroll long text,” “multi-line,” and the rest). Another way of turning a field into a comb field is to type pipe characters – |||| – into the text frame in InDesign, one pipe character per square. For example, if you need a comb field of 8 characters, type |||||||| in the text frame in InDesign. This method is mainly available for compatibility with forms created in earlier versions of FormMaker.
Default Text Tip: To set the default text that appears in a field, type it into the text frame in InDesign. (If you’ve created your fields with rectangles rather than text frames, you’ll need to convert the rectangles to text frames in InDesign.) Note that the default text is not necessarily the same as the default value of a field. The default value is applied when the user resets a form in Acrobat, whereas the default text is what the user will see when they open the form for the first time.
Almost anything that can be done to a form field in Acrobat can now be done to a form field directly inside InDesign.
With FormMaker you can mark a form field in InDesign as a number field, date field, percentage, or zip field, and more. If it’s a number field, you can validate the range (force the numbers to be within a certain range). You can easily set field Z to display the sum (or product, or average, etc.) of fields X and Y – just as you can in Acrobat.
Additionally, with FormMaker, custom document, validation, calculation and formatting scripts can be added.
And with FormMaker, scripts can be made to run when mouse and keyboard events occur.
Run FormMaker by double-clicking on it in InDesign’s Scripts panel. The following window should appear (the exact settings will change depending on what is selected in InDesign):
You can continue working in InDesign while this window is open. (But if you’re not working on forms, it’s best to close it.)
Select a form field in your InDesign document. The FormMaker window will update to show any formatting that you have applied to that form field.
There are six tabs at the top of the window (Document, Appearance, Actions, Format, Validate, Calculate). Each tab contains several options that you can apply to the selected form field in InDesign. (Note that you can only apply these options to a single field at a time, even if you have selected multiple fields in InDesign.)
Tip: If you set a text field to be formatted as a number and you check the box marked “Use red text” (shown in the screenshot above), this will force all negative numbers to become red. But it also forces all positive number to become black! These red and black colors will override the color you have set for text in the field, so all text will be either red or black only in that field. If you need to use a different color for the numbers in this field, do not use this option. (This reflects how Acrobat works, it is not specific to FormMaker.)
The FormMaker window is interactive, and two-way. As you select different form fields in your document, the options you have chosen for that field will appear in the FormMaker window.
The window is very similar in functionality to Acrobat’s own form field Properties window. Indeed, to learn more about it, I recommend you check out Adobe’s own help page for Acrobat’s dialog box.
See below, in Section 2, for more details about the FormMaker window, and especially about what’s missing from it compared to Acrobat’s Properties dialog box (and why that’s not a bad thing at all)!
Once you have finished formatting your form and adding interactivity to the form fields in InDesign, click on the “Create Interactive PDF” button at the bottom left of the FormMaker window.
Important! You MUST click on the “Creative Interactive PDF” button at the bottom of the FormMaker dialog box to create your interactive PDF. Using InDesign’s File > Export method will not work!
A new window will open. Here you can select the PDF file you wish to create. If you want to display InDesign’s PDF Export Options dialog, check the box. Otherwise, FormMaker will use your previous settings. The new interactive PDF form will open in Acrobat (unless you specifically disable this option in the Export Options dialog).
In Acrobat, you should find a new command at the bottom of the Edit menu called FormMaker.
VERY IMPORTANT: In the latest version of Acrobat at the time of writing (Acrobat 2023), the UI has been completely changed. By default, the regular Edit menu no longer exists. Confusingly, there is an Edit menu in the new Acrobat, but this is not the one we need! To see the correct menu, disable the “new Acrobat” (you’ll still be using the latest version, only the UI changes), restart Acrobat, and the old Edit menu should reappear. See screenshots to the left here. Check out the Installation Guide included in the download package for specific instructions for disabling the new Acrobat for Mac and Windows.
As mentioned, in Acrobat you should now find a new command at the bottom of the Edit menu called FormMaker (see screenshot to the right here).
Run this command and all FormMaker information attaches to the appropriate fields: The correct font, color, alignment, scripts, and more, are applied to each field.
Save your PDF form at this point, and you’re done! Anyone opening the PDF on any desktop computer with the free Adobe Reader will now be able to use the fully formatted, interactive form!
It is important to note that the interactive PDF that FormMaker creates is a standard, plain-vanilla interactive PDF. There is nothing special about it. The end-user will not know it was created with FormMaker, and they will not need any extra plugins or add-ons to open the PDF in Adobe’s free Acrobat Reader. Likewise, the fonts you have used to style your PDF form will be embedded in the PDF and will travel with it, so when the end-user fills in the form, they will be typing with the fonts you or your designer has chosen, even if those fonts are not installed on the end-user’s system!
(Be aware that for reliable results, the user must open the PDF on a desktop computer using free Adobe Reader software. Opening the PDF in a browser, or on a tablet, or with non-Adobe software might lead to unexpected or incomplete results. There are many different PDF-reader applications out there, and not all of them support all PDF features. Moreover, on a tablet, at the time of writing, not even Adobe’s own reader supports all features that can be added with FormMaker. So again, for consistent, predictable results, the user must be told to open the PDF on a desktop computer with Adobe’s own free PDF reader software.)
TIP: To reduce the PDF file size, before distributing the PDF run the “Purge FormMaker Data” command (it’s the last entry in the screenshot above). This removes the extra data that FormMaker uses initially. Doing so will not affect the PDF in any way. It just deletes FormMaker‘s unused and now redundant metadata.
If you are familiar with Acrobat’s Properties dialog box, you will notice that there are two major tabs missing from FormMaker’s dialog box: General, and Position.
In most cases, all the functionality these tabs offer is available in InDesign. In fact, in most cases it is much easier to apply these settings in InDesign than in Acrobat! I’ll go through them one by one:
General tab: The options here include the field’s name, visibility, read-only property, etc. Most of these options are available in InDesign’s Buttons and Forms panel (Window > Interactive > Buttons and Forms). As a general principle, FormMaker must be used alongside InDesign’s Buttons and Forms panel, as many form field options are available only there.
Position tab: This is redundant. InDesign’s tools are, of course, far superior to Acrobat’s for positioning form fields.
Finally, the Actions tab in Acrobat allows you to apply any one of over a dozen actions to each of the six mouse and keyboard events. Again, almost all of these are available in InDesign’s Buttons and Forms panel. So all that’s left for FormMaker to add is the powerful ability to add custom JavaScripts to each of these events. To do so, select the event from the dropdown list and click the Edit button to attach a custom JavaScript to that event. The events to which you have attached JavaScripts will be listed in the Actions area of the tab.
The final missing functionality is Acrobat’s (somewhat hidden) Calculation Order dialog box, which is important for setting the calculation order of form fields. This will be discussed next.
Calculated fields need a bit of care! Remember that the way Acrobat works is that when the value of any field changes all the calculation scripts in the PDF are run, one by one.
Clearly, the order in which the calculations are run is vitally important!
For instance, if you have 10 “subtotal” fields and 1 “total” field in a PDF form, the values of the subtotal fields must be calculated before the total field is calculated, otherwise the total could be wrong!
In FormMaker (as in Acrobat), a special “Calculation Order” dialog box allows the user to arrange the fields in the correct order for proper calculation of form values. To open the Calculation Order dialog, click the button at the bottom of the Calculate tab.
In most cases, it is safe to rename form fields. Use InDesign’s Buttons and Forms panel to do so.
However, if you have used the Calculate options on any form fields, you will need to select those fields, click on FormMaker‘s Calculate tab, and update the fields that should be calculated again, because the existing list of fields will include references to the old names that no longer exist.
Likewise, if you have attached any custom scripts to any fields or to the document, and those scripts refer to form fields by name, those names will need to be updated in all such scripts.
With FormMaker you can add custom document-level scripts, and keystroke, formatting, validation and calculation scripts to your forms. What is the difference between these types of script?
The information in this section is not actually specific to FormMaker. It is a summary of the differences between the types of script available in Acrobat.
The main difference between the different types of script is when – at what stage of the user interacting with the PDF form – they are run.
Document scripts are triggered as soon as the user opens the PDF document in Acrobat Reader. They are commonly used for storing oft-repeated functions accessible by all form-field scripts. More interestingly, they can be used to set the PDF Reader application in ways not otherwise possible. For instance, if you dislike the blue background that Acrobat Reader displays by default behind all form fields, you can switch it off with a PDF document script!
Keystroke scripts are triggered when a field has focus and the user types something. Keystroke scripts are useful to prevent the user from typing certain letters, digits, or characters in a form field. For instance, for a number field, use a keystroke script to reject non-numeric keyboard input (keystrokes that are not digits, a period, or the hyphen used for a negative number). The Javascript command to reject a keypress is: event.rc = false. The command to accept a particular keypress is: event.rc = true. (FormMaker lets you create many scripts that filter keypresses without writing a line of code!)
In the case of combo boxes and dropdown lists, keystroke scripts are run when the selection changes in these items (even if this was not caused by a keypress).
Validation scripts are triggered when the value of a field changes. They can be used to check that the user has entered the correct sort of information in the field (e.g., a properly formatted date, email address, range, etc.). If a wrong value is entered, an alert box can be displayed. As with keystroke scripts, to reject the user input and revert to the previous value use this code: event.rc = false.
Calculation scripts are executed after validation scripts. The difference between validation and calculation scripts is that a validation script runs only when the value of the field it is attached to changes, whereas all calculation scripts, attached to any field in the document, are run whenever the value in any field changes. If you have 1000 calculation scripts in your form, they are all run whenever the value of any field changes! (As you might expect, this can take some time, so it may be best to use calculation scripts sparingly). The logic behind calculation scripts is that changing the value of one field could affect all other fields in the document if their content is based on a calculation that depends on the current field.
Format scripts are triggered last, after all keystroke, validation, and calculation scripts. Format scripts are useful for changing the appearance of a field’s value. For instance, use a format script to display 2 decimals places after a number, or to display a percentage sign or currency symbol in the field. Setting the value of an event (event.value = etc.) in a format script does not change the true value of the field, just the way it is displayed. (FormMaker lets you create many types of format script without writing a line of code!)
With FormMaker, you can attach keystroke, validation, calculation and formatting scripts to text fields, combo boxes, list boxes, checkboxes, buttons, and radio buttons in your InDesign forms (although not all types of scripts are available for all types of field in Acrobat).
The ability to include such scripts in InDesign makes it possible to build rich, interactive, fillable forms completely in InDesign and export them to PDF, thereby simplifying the form’s editorial and review cycle.
FormMaker has all the features that come with FormMagic, and a lot more. But it is worth reading the FormMagic help page, as there are some details mentioned there that are not covered above (e.g. font substitution, rich text, and more): https://www.id-extras.com/help/formmagic/ .
Although FormMaker lets you do a lot without needing to write any code, to make advanced interactive PDF forms, you probably will need to put together some simple (or not so simple) Acrobat JavaScripts. In this section I will list a few resources that I have found to be very useful.
Questions, comments, or suggestions? Use the forum or, if it’s directly relevant to the instructions above, leave a message below!
Enjoy FormMaker!
Mike
May 16, 2024 6:22 pmHi,
Is it possible to add a willClose script? I’ve tried from the Document Javascript tab in FormMaker, but i end up having to manually creating the script in Acrobat in the end. It would be great if I didn’t have to do this extra step.
Thanks!
Mike
Anas Alkassim
May 9, 2024 1:00 amThis is the code I am using:
What I am looking to do it to have checked boxes that are unchecked on opening and when checked layer 4 shows new info.
var ocgArray = this.getOCGs();
for (var i = 0; i < ocgArray.length; i++) {
if (ocgArray[i].name === "Layer 4") {
ocgArray[i].state = (event.target.value === "Yes");
}
}
Ariel
May 9, 2024 1:10 amHi Anas,
I’d be happy to help, but I think it would be better to post this question on the forum (https://id-extras.com/forum/index.php), because then I can add some screenshots to my answer which makes it easier to explain.
Thanks,
Ariel
Anas
May 9, 2024 12:58 amIs there a way where for example checked boxes are unchecked when initially opening the file and when checked information is showing? I am unable to have that coded.
Manuel
January 4, 2024 5:08 pmHi Ariel,
Thank you for this Script!
I just testing the free version with InDesign 2024. When I’m selecting a Form-Field in InDesign and run the FreeForm Script, it is not possible to export the pdf. Also when I’m setting a default text, when I’m clicking on “Create Interactive PDF”, all the settings I’ve made going back to default and nothing happens.
Do you have any Idea what the Problem could be?
Are used fonts from indesign, also embedded in the input fields, when I’m open the exported PDF-Form in a Browser?
Thank you very much in advance.
Ariel
January 4, 2024 5:53 pmHi Manuel,
It’s hard to say. Why can’t you “export the PDF”? What happens when you try?
And as for the settings going back to default, how do you know, since you’re not managing to export the PDF?
I’d be happy to do a quick screenshare to help you get up and running if you like, perhaps in a few hours?
aelbaz
September 2, 2023 5:10 pmHello Ariel.
I will be very grateful if you send me version 4.0 of FormMaker because I am doing a study to buy the Pro version. Thanks in advance.
Angel elbaz
August 31, 2023 5:21 pmHello Ariel.
Thank you for offering the new version 4.0 and please send me the email you offer.
Again, sorry for my English, it is not my native language.
Angel
August 28, 2023 4:59 pmHello. I have downloaded the free version of FormMaker and I really like how it works, but I have a question: I have created a dropdown and from FormMaker I can only include the item concept, but not the export value; I had to do it later from Acrobat. Is there a way to include the name of the concept and its export value? Sorry if it exists and I don’t know it, but it’s the first time I’ve used this application.
Greetings and congratulations for FormMaker.
Sorry for my english, it’s not my native language.
Ariel
August 29, 2023 1:32 amHello. Thanks for trying out FormMaker.
In the version on the website (that you have downloaded) there isn’t a built-in way to add export values.
But there is a new version (version 4.0) now available where that is possible.
If you send me an email I’ll be happy to send it over.
Marc Verhaegen
June 21, 2023 3:53 pmHi, I’m using Formmaker for a month now. When creating an interactive pdf the chosen filename is not the same as the filename of the InDesign document. Even worse, as long as you don’t manually change the name it stays the same name for every document you save. Very annoying and definitely something to change in future versions.
Ariel
June 26, 2023 1:55 pmHi Mark,
This has been fixed for the forthcoming update.
If it’s urgent, send me a private email and I will send you a prerelease version that already has the fix.
Thanks,
Ariel
Nancy Casler
August 27, 2021 8:52 pmHello, I’ve been asked to find a way to create a pdf product catalog that will have multiple items that can be ordered on various pages of a potentially 20-page document. The items can be ordered in any quantity. The price per item will be displayed for each product, and the price is fixed (unlike in your video where you show the price as an editable field). I’m thinking that there would be a Subtotal at the bottom of each page potentially, then a Total field at the end that sums up all the subtotals. And as of now, there are no volume discounts involved. I’m checking in to see if you think FormMaker can work for this scenario, where there are quite a few pages with form fields that need to be tracked. I would rather not set up the fields in Acrobat for obvious reasons. Let me know what you think please!
Nancy
Ariel
August 29, 2021 4:01 pmHi Nancy,
FormMaker does indeed sound like a good match for the PDF catalogue you want to create.
The video tutorial shows something similar, as you mention, and if you don’t want the prices to be editable by the user, there’s a checkbox in InDesign in the Buttons & Forms panel to make a text field “read only”. That way, you can easily modify the price in InDesign by typing it into the field, and the user won’t be able to change it.
Alternatively, you can simply hardwire the price into a custom calculation script using FormMaker, and that way the price doesn’t have to appear in any form field in the document at all (neither editable or read-only). The disadvantage is that it may be slightly harder to modify prices at a later stage (but not much harder).
HTH,
Ariel
Nancy
August 30, 2021 11:26 pmThanks for explaining Ariel, that does help!