Component interactions

The Generate PDF service converts native file formats by invoking the application associated with the file format and then interacting with the application to print the document using the default printer. The default printer must be set up as the Adobe PDF printer.

This illustration shows the components and drivers involved with native application support. It also mentions the XML grammars that influence the interactions.

Grafik in Originalgröße anzeigen
Component interactions for native file conversion

This document uses the term native application to indicate the application used to produce a native file format, such as Microsoft Word or Visio.

AppMon is an enterprise component that interacts with a native application in the same way a user would navigate through the dialog boxes presented by that application. The XML grammars used by AppMon to instruct an application, such as Microsoft Word, to open and print a file involve these sequential tasks:

  1. Opening the file by selecting File > Open

  2. Ensuring that the Open dialog box appears; if not, handling the error

  3. Providing the file name in the File Name field and then clicking the Open button

  4. Ensuring that the file actually opens

  5. Opening the Print dialog box by selecting File > Print

  6. Ensuring that the Print dialog box appears

AppMon uses standard Win32 APIs to interact with third-party applications in order to transfer UI events such as key-strokes and mouse clicks, which is useful to control these applications to produce PDF files from them.

Due to a limitation with these Win32 APIs, AppMon is not able to dispatch these UI events to some specific kinds of windows, such as floating menu-bars (found in some applications such as TextPad), and certain kind of dialogs whose contents cannot be retrieved using the Win32 APIs.

It is easy to visually identify a floating menu-bar; however it might not be possible to identify the special types of dialogs just by visual inspection. You would require a third-party application such as Microsoft Spy++ (part of the Microsoft Visual C++ development environment) or its equivalent WinID (that can be downloaded free of cost from http://www.dennisbabkin.com/php/download.php?what=WinID) to examine a dialog to determine if AppMon would be able to interact with it using standard Win32 APIs.

If WinID is able to extract the dialog contents such as the text, sub-windows, window class ID, and so on, then AppMon would also be able to do the same.

This table lists the type of information used in printing native file formats.

Information type

Description

Modifying/creating entries related to native files

Administrative settings

Includes PDF settings, security settings, and file type settings.

File type settings associate file name extensions with the corresponding native applications. File type settings also specify native application settings used to print native files.

To change settings for an already supported native application, the system administrator sets the File Type Settings in the Administration Console.

To add support for a new native file format, you must manually edit the file. (See Adding or modifying support for a native file format.)

Script

Specifies interactions between the Generate PDF service and a native application. Such interactions usually direct the application to print a file to the Adobe PDF driver.

The script contains instructions that direct the native application to open specific dialog boxes and that supply specific responses to fields and buttons in those dialog boxes.

The Generate PDF service includes script files for all supported native applications. You can modify these files using an XML editing application.

To add support for a new native application, you must create a new script file. (See Creating or modifying an additional dialog XML file for a native application.)

Generic dialog box instructions

Specifies how to respond to dialog boxes that are common to multiple applications. Such dialog boxes are generated by operating systems, helper applications (such as PDFMaker), and drivers.

The file that contains this information is appmon.global.en_US.xml.

Do not modify this file.

Application-specific dialog box instructions

Specifies how to respond to application-specific dialog boxes.

The file that contains this information is appmon.[appname].dialog.[locale].xml (for example, appmon.word.en_US.xml).

Do not modify this file.

To add dialog box instructions for a new native application, see Creating or modifying an additional dialog XML file for a native application.

Additional application-specific dialog box instructions

Specifies overrides and additions to application-specific dialog box instructions. The section presents an example of such information.

The file that contains this information is appmon.[appname].addition.[locale].xml. An example is appmon.addition.en_US.xml.

Files of this type can be created and modified using an XML editing application. (See Creating or modifying an additional dialog XML file for a native application.)

Important: You must create additional application-specific dialog box instructions for each native application your server will support.