Have you ever seen a PDF file with interactive buttons, text, or links? This is one of my favourite features on the PDF file format because it makes the documents interactive and much more useful. I have even seen someone make a Hangman game using PDF forms…
These interactive elements are PDF forms, and this series of blog articles (under the title Understanding PDF forms) aims to enlighten you about them. How many different types of PDF form are there? What can you do with them? Any limitations or neat tricks you can use? The articles are written for you, so if you have any questions please post a comment and I will try to work them into the articles.
So let me start off with a brief introduction to PDF forms. There are currently 2 main types of PDF form:-
1. The FDF (Forms Data Format) dating back to the beginning of time.
2. An alternative XML based format called XFA (XML Forms Architecture).
FDF is robust and simple so is still in common usage.
FDF was the original format and as so has a lot more implementations of it available, and they are changing less now, where as XFA is the newer format and is still being changed and improved. There are far less implementations of this format, mainly because of the vast amount it can do, and the variations within.
Although each has its own specification, they both have things like borders, colors etc as you would expect, but they also have actions defined within each, and although some have more options in one format most are available in both, and later in this series we will look into more detail about these differences.
In my next article I will start to unravel the FDF format. Stay tuned…
This post is part of our “Understanding the PDF File Format” series. In each article, we aim to take a specific PDF feature and explain it in simple terms. If you wish to learn more about PDF, we have 13 years worth of PDF knowledge and tips, so click here to visit our series index!
IDRsolutions develop a Java PDF library, a PDF forms to HTML5 converter, a PDF to HTML5 or SVG converter and a Java Image Library that doubles as an ImageIO replacement. On the blog our team post about anything interesting they learn about.