Technical data
For example, if the command for a translation filter is /usr/pd/my-filter
-d${document-format} and the command for a modification filter is
/usr/pd/your-filter -o${content-orientation} -n${number-up}
and a user requests modification and translation, a child process would be
executed with a command such as the following:
/usr/pd/my-filter -simple-text|/usr/pd/your-filter
-oportrait -n2
8.1.3 Invoking a Filter
The rules the supervisor uses to invoke a filter are the following:
• If the no-filtering attribute is true, no filters are invoked.
• If the modification-filter attribute has a value, that filter is chosen
and its command line is processed
• If the translation-filter attribute has a value, that filter is chosen
and its command line is processed.
• If the document format is not included on the printer’s
native-document-formats-ready attribute, the list of defined
filters is searched until the supervisor finds a translation filter
whose input-format is the document’s document-format
and whose output-format is any document-formats on the
native-document-formats-ready. This filter’s command line is
processed.
• If both the translation-filter and modification-filter
attributes have a value, the modification filter is chosen first, and its
output is fed to the translation filter.
• The supervisor constructs a command to invoke the chosen filter or
filters, forks a child process with this command, and constructs pipes for
transferring document data to and from the filter process.
8.1.4 Error Handling
In general, errors that occur while setting up, invoking, or executing a
filter result in the job (not just the document) being aborted. Some of the
conditions that result in an aborted job include:
• Invocation of a nonexisting filter.
• Failure to find an appropriate translation filter.
• Errors in the child process.
The supervisor notifies the user of these conditions by way of event
notification (job-aborted-by-server), through messages stored in the
Document Data Filtering 8–7










