gnustep-dev
[Top][All Lists]
Advanced

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

GSCUPS and GNUstep Printing


From: Chad Hardin
Subject: GSCUPS and GNUstep Printing
Date: Thu, 10 Jun 2004 00:16:36 -1000

Now that GSCUPS is coming along fine I'm starting to think more of how it can be put into GNUstep. I'm not sure that a printing backend is the way to go, it seems overly complicated. Correct me if I'm wrong but basically the only things we have to worry about are:

Doing things the UNIX way:   Parsing PPDs, using lp(r) or cups.

And doing things the Windows way: However the heck that is, I doubt it has anything to do with reading PPDs, I may be wrong though, wouldn't be the first time.

So maybe this is more of an #ifdef #elif type thing.... Comments? How do people feel about making CUPS the sole supported printing system on UNIX machines? If people really object to that, then there could be three setups: UNIX like it is now, UNIX with CUPS, and Windows.

More on GSCUPS. While it is true that GNUstep could work fine using CUPS without actually being aware of CUPS (because it provides the usual lpr type executables, etc), using the CUPS libraries has two big advantages. One is that CUPS can maintain and handle the PPDs, it can actually send the PPDs of the printers it serves to the client via HTTP. That's one big headache gone. You have to use libcups to get that.

The other thing is that CUPS has its own PPD parser and it turns the PPD file into a very fine-grained collection of c language structs. Of course GSCUPS represents these as objective-c Objects. So, we have a very good way to handle PPDs, for free. Alternatively, the current PPD Parser could be used with the PPD file received from CUPS. Obviously you need libcups for that too.

Right now GSCUPS is actually two things rolled into one. It is a set of classes for doing simple querying of printers and the actual printing and a much more complicated set of classes for interacting with CUPS servers for the administration of the printers (which can also include printing, it's lower level stuff). I think that if GSCUPS does get put into GNUstep, it should get split into two frameworks; the more complicated server administration part should be a separate framework. If that is the case, then I'm talking about a very small patch for GNUstep itself.

By writing GSCUPS I've become pretty up to speed with CUPS, so I could probably add CUPS support for GNUSTEP using libcups directly, no need for an objective-c wrapper (If that would bother you all)

Comments?

Chad





reply via email to

[Prev in Thread] Current Thread [Next in Thread]