These are the steps in the tool/procedure pipeline which take you from a fillable PDF file to a smart form which will work with FastTax. Note that if the initial tax form is “flat,” Fillable.app can turn it into a fillable form in just a minute or two.
While f4868 is a simple form that doesn’t touch all the “edges” of the form creation process, it still exposes many of the details involved in form creation; enough to give you a good picture of the process. Here we go!
First, create a folder “f4868” and download f4868.pdf into it.
Duplicate f4868.pdf and add “original” to its name: f4868 original.pdf. There are so many files flying around when building the smart forms that you don’t want to lose track of the original file.
Flatten f4868.pdf by printing it to PDF – making sure it’s printing at 100% – and label it f4868 flat.pdf. This will later be used as the image component of the smart form.
The next thing you need to do is to shoehorn the label names you want to use into the PDF. Here’s how.
You start by making a PDZ file and using it as a scaffold for your new label names.
Use PDFFormExport to make the “raw” PDZ file. PDFFormExport reads a PDF extracts its labels and the values of its widgets and writes them as pairs into a file with the suffix PDZ. Just launch PDFFormExport, open the form with it, then quit the app. This creates a PDZ file in the same folder as the form.
Next, edit your new labels into the PDZ file. Each form has default label names but they’re usually gibberish. You want field names that are clear, year-to-year consistent, and concise so that when they are used as algebraic variables in formulae, the operations being performed are clear.
Open the PDZ file in a spreadsheet. The default label names are in the first column. The value of each widget – or the word ‘none’ if there isn’t a value – is in the second column. Clear the, unneeded, second column and then edit the new label names into it.
Since the default label names are gibberish, it helps to stay focused on what you’re doing by opening the form in the PDF Annotation Editor while you’re editing the spreadsheet. Then you can tab through it to see which field corresponds to the one you’re editing in the spreadsheet. Edit your labels into the second column of the spreadsheet, this way. Also check periodically to make sure that you are keeping the field names in sync with the form fields! If you do get out of sync, though, it’s not a big deal since you can move part of column 2 down or up, in whichever direction you’re off.
After you’ve finished editing the label names into the second column of the spreadsheet, create a new blank text document and paste the spreadsheet values into it. Then save the text document as the PDZ file. You will have to either rename the raw PDZ file to f4868 raw.pdz or delete it before you can do this, though.
Then duplicate the new PDZ fie and name it f4868 w labels.pdz. Were you to run PDFFormExport in that folder again it would clobber the new PDZ file – the one you worked so hard to create – and you don’t want to lose that work!

Next use PDFFormImport to shoehorn the new labels from the PDZ file into the form. To do this, simply open the document you’re “relabeling” with PDFFormImport – in this case f4868.pdf – and then save it, overwriting the existing PDF. Be sure to say YES in PDFFormImport’s confirmation dialog so you do overwrite the gibberish PDF label names with the meaningful ones!
Quit PDFFormImport and check the PDF file by using PDFAnnotationEditor to tab through the form’s fields, making sure that labels ended up where you expected them to be and also that you entered their names correctly. When you’re satisfied that the form field names are correct, duplicate that PDF and name it f4868 w labels.pdf, so you have a backup copy, just in case.
If you catch any errors, you can edit them in the PDF with PDFAnnotationEditor. Be sure to save the new file over itself and to replace f4868 w labels.pdf with the edited version. Also update the PDZ file and its “w labels” backup if you changed any labels in the PDF.
Building the Fixup File
The FIX file contains important meta-information about the smart-form. Building it is the most complicated step in creating a TAX form, see the chapter on “Fix File Format” in “Inside the Fixup File” for detailed information on this process, including which keywords you add to each row to create the FIX file, shown here:

👉🏿 NO SPACES ARE ALLOWED IN THE FIX FILE except in certain directives like “MAXLEN n.” And there must be a single carriage return (blank line) at the end of the FIX file!
👉🏿 When using a spreadsheet to build the FIX file, be sure to prefix ‘=‘ signs with a ‘/‘ character to keep their cell values from being replaced by calculations – and then to remove the ‘/’s after you copy the spreadsheet into FIX file.
Building the PDX file
The PDX file contains additional information about the form, complementary to that of the FIX file. The two of them will be combined to make a smart form. But first we have to create the PDX file. To do that, just open the PDF that now has your labels with PDFAnnotationExtractor to produce f4868.pdx. The PDX file is written automatically. Then quit the program.

BuildPDVFile is then used to create the PDV file by merging the PDX and FIX files together using the label column as a zipper. To use BuildPDVFile just open the form f4868.pdf with it and then quit. It automatically writes out the PDV file. Simple.

Finally, run EmbedPDVFile. When launched, it embeds the PDV file inside the PDF file. Then save the open document giving it the “.tax” extension. You have now produced the f4868 that works with FastTax!
These are the files that should be in your f4868 folder, in the order in which they were created:
f4868.pdf
f4868 original.pdf
f4868 flat
f4868.pdz
f4868 raw.pdz
f4868 w labels.pdf
f4868.fix
f4868.pdx
f4868.pdv
f4868.pdq
These are the steps you performed in the form creation pipeline:
PDFFormExport extracts annotation labels and values from the PDF and writes them as a PDZ file.
Edit labels in column 2 of the PDZ file.
PDFFormImport imports the new labels from the PDZ file into the PDF using the old label names in the PDZ file as a zipper.
Use PDFAnnotationEditor to QA the newly labelled PDF, editing out any errors you happen to catch.
Build the FIX file. (See “Inside the Fixup File.”)
PDFAnnotationExtractor creates the PDX file.
BuildPDVFile merges the FIX file and the PDX file into a PDV file.
EmbedPDVFile embeds the PDV file within the PDF file re-suffixed to TAX.