[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Apple raster, PWG raster and non-free filters/drivers



On 12/16/2016 04:15 PM, Brian Potkin wrote:
In

 https://lists.debian.org/debian-printing/2016/12/msg00089.html

Till Kamppeter wrote

 > So if you really want to have a Brother printer, make sure that
 > it does IPP Everywhere or AirPrint. These are driverless printing
 > methods which are in Ubuntu from version 17.04 (Zesty) on and
 > they are also in current Debian Experimental.

We are looking at fairly recent printers, of course, and choosing one
with AirPrint is not hard.

AirPrint exists already for several years. It was originally inteneded to allow driverless printing from iOS devices. AFAIK also Mac OS X supports printing on such printers. Thre are more than 2600 models listed by Apple:

https://support.apple.com/en-us/HT201311

The printer from the cited mail thread, the Brother DCP-J925N is on this list, meaning that it works as an AirPrint printer (at least when connected via network).

By the way, if someone has access to this printer, can he connect it via USB and run

sudo /usr/lib/cups/backend/usb

and post the output here? This will tell me whether the printer can also do driverless via USB.

There will probably be a logo on the box and
the specifications will advertise AirPrint as a language or under
"mobile printing".

I did not check but it is probably the case as AirPrint exists already for longer time.

But what about IPP Everywhere? How is a user easily
to know the printer is capable of it? Looking at the specifications for
the ones listed at www.pwg.org (the DesignJet T830, for example) I can
see nothing which indicates PWG raster is supported.


There is also a list for IPP Everywhere:

http://www.pwg.org/dynamo/eveprinters.php

with currently 25 model entries from HP (actually 7 distinct printers, the 25 names come from regional variations, like for example different power plugs, front panel languages, ...).

Printers get added here whenever a manufacturer self-certifies their appropriate new (or firmware-updated) models.

Note that the standard is only some weeks old and therefore there are not may models listed yet.

The PWG has issued a logo which the manufacturers can put on their IPP-Everywhere self-certified products.

Then there is the matter of whether a printer which does support PWG
raster is an IPP Everywhere printer. Apparently the Lexmark CS720de
understands PWG raster (https://github.com/apple/cups/issues/4932), but
does this make it an IPP Everywhere printer?

I am in contact with Lexmark developer Aveek Basu (who also represents Lexmark on PWG meetings). I am working together with him so that he tests whether Lexmark's printers work with the current development state of the art of the Linux printing stack, especially AirPrint and IPP Everywhere support and he will also run the self-certification for IPP Everywhere soon. The Lexmark CS720de is actually working as an IPP Everywhere printer, Aveek only needs to run it through the self certification.

The CUPS bug report is a result from my collaboration with Aveek. The tests serve both for Lexmark to know that their printers work driverless (AirPrint and/or IPP Everywhere) and for Mike Sweet and me that the support we implement in CUPS and cups-filters is working correctly.

On the other hand, it seems
that a PDL key with "image/urf" means it is (almost?) certainly an
AirPrint printer. Or does it matter when it comes to driverless methods
if "image/pwg-raster" in the PDL is equated with "IPP Everywhere"?


The raster formats Apple Raster and PWG Raster were developed to implement driverless printing. Formerly, only complex high-level Page Description Languages (PDLs) were standardized and due to their complexity not always cleanly implemented in all printers. There was no simple raster format to make up a standardized raster language for cheaper printers. So cheap printers always used proprietary raster formats requiring a driver and even higher-end printers needed a driver because their language implementations had quirks and one also could not poll printer-specific capabilities from the printers.

With one of the two raster formats as PDL, IPP 2.0 to allow for querying the capabilities info from the printer, and Bonjour/DNS-SD to find the printers in the network we have everything for driverless printing.

Keep in mind that a driver is any kind of printer-model-specific software or data.

Apple Raster came first and was the raster PDL of AirPrint. Later the PWG created a public standard with the more sophisticated PWG Raster as raster PDL. The rest of AirPrint and IPP Everywhere is practically identical: Bonjour to advertise printers on the network, IPP 2.0 for polling capability info and send option settings as IPP attributes, and PDF and JPEG as further allowed PDLs (the raster PDL is required, the others are optional, clients are supposed to prefer PDF if the printer supports it).

Even Apple Raster and PWG Raster are very similar. The difference is that PWG Raster has more sophisticated page headers.

So as implementer as a good part of the client (cups-filters) I can consider AirPrint and IPP Everywhere simply as "driverless" printing with both PWG Raster and Apple Raster as supported PDLs (in addition to PDF and JPEG).

Also as the two raster formats are developed for being used for driverless printing, you can assume that a printer supporting them supports also the corresponding driverless printing method.

A user can always use avahi-browse to get the printer's capabilities but
this is an after the event method. Some vendors do specfify PWG in their
literature but many don't, even when it is present.


To recognize a driverless printer via avahi-browse, check the "pdl" entry in the TXT record. It lists the MIME types of the supported PDLs. "image/pwg-raster" stands for PWG raster and so for IPP Everywhere, and "image/urf" stands for Apple Raster and so Airprint.

Both are supported in both Debian Experimental and Ubuntu Zesty and they need a lot of testing.

cups-browsed sets up driverless printers completely automatically if in /etc/cups/cups-browsed.conf

CreateIPPPrinterQueues driverless

or

CreateIPPPrinterQueues all

is set.

With http://localhost:631/ or system-config-printer one can set up driverless printing by selecting the printer under the discovered network printers using the entry containing "driverless" and in the step to select the PPD/driver also select the entry containing "driverless" (requires Debian Experimentsl or Ubuntu Zesty with all the latest updates).

   Till


Reply to: