Get in touch

Get in touch with Binary

Binary Studio website uses cookies to enhance your browsing experience. By continuing to use our site, you agree to our Privacy Policy and use of cookies.

Learn more more arrow
Binary Studio 08.07.2009

Working with Adobe FrameMaker

This article is devoted to ways to add features and extensions when working with Adobe FrameMaker, the application for working with large documents.

Recently we have received a new task connected with Adobe FrameMaker application. So I would like to tell a few words about it.

Adobe FrameMaker is a desktop application for publishing and word processing for large documents. Current version is 9. But the most interesting thing for us is that FrameMaker now includes special API to create your own extensions and features for it.

FrameMaker Coding

To start coding for FrameMaker special developer’s kit should be downloaded. Frame Developer’s kit (FDK) includes clear and well structured documentation in few pdf files with all API functions description and basic examples of their usage. It also contains folder with header files for using API functions and more than 50 different samples.

There are 4 different client types you can create for FrameMaker. First — simple client that integrates in menu and starts working after user performs proper action. It can communicate with user using dialog boxes and notification messages. Second is document report. It can be used for collecting and showing any additional information about selected document. For example FDK contains report sample that counts number of words in document. Third type is filter — special client for conversion one document type to another. You can add new file type support to the FrameMaker with it. And the last client type is take-control client. It starts working immediately after starting FrameMaker. It is useful for automatic document processing or remote controlling FrameMaker application.

C Types Implementation

After open FDK guide you’ll find out that there are a lot of different “standard” C types implementations. For example you can find IntT instead of int or StringT for unsigned char pointer. Using these types is not obligatory but recommended. It gives ability to build cross-platform application working with Windows, UNIX and MacOS. I spent some time getting into the way of using FDK types but now I find it sufficiently convenient. There are also a huge numbers of types that have no analogue in C language and can be very useful. For example working with hash tables and string lists can be done with instruments included in FDK without any additional code. So you can concentrate on task solving and not to think about searching additional libraries or writing well known algorithms.

After making project on FDK I think it’s a good and quick understanding way for document and word processing tools development in automatic and semi-automatic rate.


Nikolay Sh,
.NET team