ADC Home > Reference Library > Technical Q&As > Legacy Documents > Printing >

Legacy Documentclose button

Important: This document is part of the Legacy section of the ADC Reference Library. This information should not be used for new development.

Current information on this Reference Library topic can be found here:

LaserWriter 8.3 %%?BeginQuery: RBIAppleDevice Query


Q: I've been checking out LaserWriter 8.3fc2 for compatibility with our network printing products (NetWare for Macintosh Print Services and NetWare Client for Macintosh), and was dissapointed to see that it uses a new, nonstandard printer query (%%?BeginQuery: RBIAppleDevice) at Setup and Print time.

New queries, particularly non-standard ones not documented in the PostScript Language Reference Manual, are problematical for AppleTalk printer spoolers that use the Adobe Document Structuring Conventions to recognize and respond to queries. Unlike printers, which simply execute the PostScript code to generate the correct response to the query, spoolers need to be explicitly coded to handle any new query. Thus, products in the field are obsoleted when a new driver comes out that makes a query that hasn't been used or documented before. The spooler must use the default response encoded in the query instead of returning the correct information.

In this case, the new query is particularly annoying, because it is unnecessary. The query, which is presumably used to determine if the printer is an Apple device, merely has the printer scan its product name for the string "LaserWriter". This could have been just as easily accomplished on the Macintosh using the results of the "%%?BeginFeatureQuery: *Product" query. Why ask the printer for information you already have, especially since this breaks existing spoolers in the process?

Is it possible to remove remove this query, and if not, what adverse affects will result from the printer/spooler always returning "Unknown"?

A: The query comments are set up so that when a spooler doesn't recognize a comment, it returns the contents of the %%?EndFeatureQuery: line. Thus, adding new queries does not break correctly built spoolers. In the case of the RBIAppleDevice query, the spooler should return Unknown.

The RBIAppleDevice query is different from the product query in that the> RBIAppleDevice returns true or false. True is returned if the printer is an> Apple product. The reply to this query is used to decide whether JPEG data should be sent to the printer. We implemented the JPEG switch this way so that you can easily change the contents of the query to cause the driver to allow JPEG data to be sent to non-Apple printers.

The new query shouldn't cause any problems for spoolers, since they should return "unknown", and we send the normal image data to the spooler. The only adverse effect is the driver won't pass JPEG image data through to an Apple printer on the other side of a spooler. When we open JPEG up for everyone, the JPEG data will be passed through to both spoolers and non-Apple printers.

[Jul 01 1995]


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.