This page contains links and information for Adobe FrameMaker, and ancient and complex piece of software that can process structured documents. This page is current as of FrameMaker 10, since I stopped using FrameMaker with that version.
FrameMaker is a comprehensive solution for editing and publishing technical documents. The application was created by Frame but later bought by Adobe. Their main contribution was an elegant integration of Acrobat Distiller for extremely fast and easy PDF creation. Adobe has otherwise updated FrameMaker at a fairly glacial pace, but that seems to be improving. Version 8 finally added full Unicode support, and version 9 revamped the ancient user interface.
Meanwhile, FrameMaker is still the only affordable integrated solution for authoring DITA and DocBook documents – OpenOffice’s alleged “DocBook support” is a joke, and all others I’ve found are of the “call for pricing” variety. FrameMaker supports “structured editing” of SGML and XML documents, and provides a customizable style matching mechanism that turns structured content into formatted pages. Using DocBook requires a lot of customization work, but DITA is very well integrated and lacks only equation support out of the box. You can also define your own document structure and forgo DTD/XSD schemas entirely if you don’t need SGML/XML roundtripping.
DITA Specialization with FrameMaker 10 contains an edited version of my own notes regarding this rather convoluted process. The two sample specializations provide small caps formatting and equation support for DITA 1.2.
Recent versions of FrameMaker ship virtually without documentation, except for the integrated help. Adobe’s FrameMaker Resources should provide the official manuals, but this page is woefully out of date. A few more recent documents are hidden in various random places throughout Adobe’s website. The following documents are current for FrameMaker 10:
- Using Adobe FrameMaker 10 (equivalent to the integrated help)
- Integrating DITA Specialization with Adobe FrameMaker 10 (using the new specialization dialog)
- Scripting Guide for Adobe FrameMaker 10 (using ExtendScript)
- The FrameMaker Developer Center hosts the FrameMaker Developer Kit (FDK) and documentation for the application’s C/C++ API
A more complete set of documentation is available for FrameMaker 9. Until they are updated, the two documents marked with an asterisk (*) are also essential for structured application development using FrameMaker 10.
- Using Adobe FrameMaker 9 (equivalent to the integrated help)
- Adobe FrameMaker 9 Character Sets (with character input codes)
- Adobe FrameMaker 9 MIF Reference (document interchange format)
- Developing Structured Applications with Adobe FrameMaker 9 (*)
- Adobe FrameMaker 9 Structured Application Developer Reference (*)
- Integrating DITA Specialization with Adobe FrameMaker 9 (without the specialization dialog)
- DITA Specialization using FrameMaker (example based on version 9)
Lastly, Adobe Technical Communication collects posts by FrameMaker team members discussing the program’s advanced features. The post FrameMaker, RoboHelp, and TCS documentation contains numerous documentation links for FrameMaker and related products. The weblog of Adobe product evangelist Thomas Aldous also provides many useful tips.
Since the 1990s, FrameMaker’s once vibrant user community and third-party ecosystem has gradually dwindled to a software graveyard. Web searches often return pages that have not been updated in five years or more. This list includes only websites that have been updated for at least FrameMaker 9.
- The central FrameUsers website links to numerous official and unofficial resources, including the current email discussion list and archives dating from 2005.
- FrameScript allows easy scripting of FrameMaker actions. Although FrameMaker 10 comes with its own scripting facility, Adobe’s cross-product ExtendScript, you may wish to check out FrameScript anyway since ExtendScript is fairly complicated and poorly documented – see the early impressions by Scriptorium’s Simon Bate.
- Leximation offers a variety of FrameMaker utilities, most importantly DITA-FMx for greatly improved DITA support – see the comparison table for details.
- MicroType founder Shlomo Perets has written a number of useful FrameMaker articles, links to some more, and provides a complete UI enhancement package. You can find them in the “Resources” section of the MicroType website.
- Silicon Prairie Software and West Street Consulting offer various utilities for structured and unstructured FrameMaker.
Tips & Pitfalls
FrameMaker is a powerful but also rather clunky piece of software, its venerable age showing in many sediments of obsolete and inadequate functionality. Here are two notorious pitfalls regarding PDF creation from both structured and unstructured documents, and one annyoing bug concerning structured documents.
Don’t Use “Save As PDF”!
FrameMaker offers an inviting menu command called File: Save As PDF… which looks like the preferred way to create PDF documents. However, the sad truth is that this command has been broken for many versions – see for example Dov Isaacs’ lament from the days of FrameMaker 6.
As of FrameMaker 10, Save As PDF… remains dysfunctional; in my own tests, it would change typeface variants seemingly at random. What you should do instead is the following:
- Choose File: Print Setup… to choose a PostScript printer on your system. You may need to adjust its PostScript output format for compatibility with Distiller.
- Choose File: Print… (or Print Book…). Check Print to File and Generate Acrobat Data, then choose PDF Setup… to adjust Distiller settings.
- Now choose Print, then go to Windows Explorer (or any file manager of your choice) and manually feed the generated output file to Adobe Acrobat Distiller.
This procedure is rather cumbersome but will create correct PDF output. Bonus tip: Choose File: File Info… to enter the information that Adobe Reader will show in the Document Properties dialog for the generated PDF document.
Books Don’t Save PDF Settings
FrameMaker offers PDF generation settings for its native book files – but does not save them in the book file! This absurd behavior is actually documented and by design, although not at all obvious. Quoting from the manual Using Adobe FrameMaker 10, chapter 13, p. 464:
“In a book, the [PDF] job options saved with the first file are applied to all files in the book. To get the desired results in the exported PDF file, open the first file. Then choose Format > Document > PDF Setup, adjust the settings, and click Set.” [Then save the file.]
This also means that different books sharing the same first file cannot have different PDF settings. I recommend creating a dedicated front matter file for each book. Use a native FM or MIF file, as only those formats can store output settings.
Missing Fonts That Nobody Used
This tip concerns roundtripping XML files; see DITA Specialization with FrameMaker 10 for an overview of this process. When loading an XML file into FrameMaker, its error console may pop up with a notice that the fonts Courier and Zapf Dingbats are missing and substitutes will be used… even though your own formatting does not actually use these fonts anywhere.
As Scott Prentice has discovered, the culprit is the file
Structure\entfmts that comes preinstalled with FrameMaker. This file is read automatically when importing XML files – and references two fonts that don’t exist in a standard installation of FrameMaker on Windows!
You could edit this file to change the offending font tags into valid ones, as Scott suggests. However, it’s easier to just ignore this spurious error message which has no actual effect on formatting. (This bug has also existed for many versions, by the way.)