[comp.windows.x] Printing on X-terminals

STODOLA@FCCC.EDU (Bob Stodola) (07/12/90)

After reviewing the recent flurry of activity concerning printers attached to
x-terminals, I'd like to add a vote in favor of it.  I think most of the
objections to it (at least based on the alternatives), assume that the norm
will be a workstation on every desk.  In practice, I don't see this in the
near future.  Looking at my own organization, there are many applications
that can and will benifit from the X user interface which will not justify
the cost of a workstation -- nursing stations, patient rooms (physician order
entry, etc.), accounting clerks, lab data entry stations.  In practice, what
is required in this area is an inexpensive X-station (<$1000).  Currently,
many such locations have terminals with printers attached, and the printer
is a required part of the package.  Regardless of the "political soundness"
or lack thereof of including this in the X protocol, I see the cost of not
doing so to be very high.  I can more easily write an application which
addresses the local printer through an already established X-server connection 
than by identifying, opening, and addressing a separate path to a printer --
especially if the manufacturers of X-terminals all choose separate interfaces
to the local printer.  Without quibbling over whether Xterm is itself a bug,
I have many VT100 terminal based programs which print through to the printer
port.  Unless this issue is addressed as part of the standard, I don't see
being able to do this universally.  Its very difficult to explain to someone
how much better the X-terminal is when it can't do something that they require
and are used to having.

The good news is that most of these locations already have serial lines strung
to them for printers.  I don't view this as a permanent solution. :-)

Network printers are not a very good model for local printers -- it is typically
desireable to have them personally under the control of the current user
of the terminal.  The same security concerns as access to the X-terminal itself!
What a coincidence! :-)

In short, I would plead for R5 to address this, regardless of philosophical
objections, simply to put an end to the various hacks being designed by
X-terminal manufacturers to address this much needed functionality.

Reply to:
  stodola@fccc.edu               Robert K. Stodola, Manager
                                 Research Computing Services
  Phone: (215) 728-3660          The Fox Chase Cancer Center
                                 7701 Burholme Avenue
                                 Philadelphia, PA  19111
                                 USA

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (07/13/90)

    Regardless of the "political soundness"
    or lack thereof of including this in the X protocol, I see the cost of not
    doing so to be very high.

No, you see the cost of not having a printing mechanism as high.  I'll
agree with that assessment, but it is independent of whether the mechanism
is through an X protocol extension.

    I can more easily write an application which addresses the local printer
    through an already established X-server connection than by identifying,
    opening, and addressing a separate path to a printer -- especially if the
    manufacturers of X-terminals all choose separate interfaces to the local
    printer.

You shouldn't waste your time writing an application.  It should be possible
to use an existing network protocol (the one that lpr uses).  You should be
able to use lpr.

    Unless this issue is addressed as part of the standard, I don't see
    being able to do this universally.

You are falling into the typical hole of "Gee, X has somebody who makes
standards, so let's take anything related to distributed computing and
call it part of X so we can get a standard."  I'm exaggerating in your
particular case, but I do believe it is the same hole.

    Its very difficult to explain to someone
    how much better the X-terminal is when it can't do something that they
    require and are used to having.

It's even more difficult to explain why existing mechanisms (like lpr) can't
be utilized.  I have various systems here that don't run X but speak the
lp network protocol.  I'd sure like to be able to print from them to the
printer attached to my X terminal.

    Network printers are not a very good model for local printers -- it is
    typically desireable to have them personally under the control of the
    current user of the terminal.

That's fine, and there's no reason why it can't be done.

    The same security concerns as access to the X-terminal itself!
    What a coincidence! :-)

I have the same security concerns about the resources attached to the
workstation sitting on my desk, wherein my X server is executing, but
I don't think you would suggest that all access to them should be done
through an X extension in order to make the security "common".

    In short, I would plead for R5 to address this, regardless of philosophical
    objections, simply to put an end to the various hacks being designed by
    X-terminal manufacturers to address this much needed functionality.

In short, I disagree.

guy@auspex.auspex.com (Guy Harris) (07/15/90)

>You shouldn't waste your time writing an application.  It should be possible
>to use an existing network protocol (the one that lpr uses).  You should be
>able to use lpr.

I don't know that "lpr" is necessarily the right choice - it may assume
that the printer is willing to queue up lots of print jobs, but an X
terminal may not want to do that (you might have some other protocol,
with an "lpr" back end that talks the protocol)...

...but I'll definitely agree that X doesn't become the right choice just
because the same piece of hardware to which you can attach the printer
also happens to provide X services.

>    In short, I would plead for R5 to address this, regardless of philosophical
>    objections, simply to put an end to the various hacks being designed by
>    X-terminal manufacturers to address this much needed functionality.
>
>In short, I disagree.

And I agree - with Robert Scheifler, not with the original poster.  I
don't see the "various hacks" being a fatal problem (almost said
"terminal problem" :-)); printer port access on ordinary dumb terminals
ain't standardized - different terminals have different escape sequences
they use. 

jcp@ciba-geigy.ch (Joseph C Pistritto) (07/17/90)

Just briefly, let me put in my 2 pfennigs worth in favor of some
mechanism in the X protocol to utilize manufacturer provided local
RS-232 connections attached to the X terminal.

I use X in a process control application, where the X terminal
may be located anywhere in a plant relative to where the server
is, and sometimes hundreds of meters away.  The cost of running
distinct RS-232 out to each location is non-trivial, (I already
have the Ethernet strung everywhere for other reasons, so the
cost of using it is not high).

In many of our applications, there is ALWAYS a character printer
provided for every operator position, (for alarm messages, etc.),
so the RS232 from the X terminal is very handy.  Certainly standardizing
the way of accessing it among manufacturers would be A Good Thing.

In addition to printing, by the way, the other handy application we
have is for doing RS-232 input, usually from authentication devices
like card or barcode readers.  Once again, standardization, (and the
ability for 'standard programs' like xterm to be able to use the
device) would be handy.
                                        -jcp-
--
Joseph C. Pistritto (bpistr@ciba-geigy.ch, jcp@brl.mil)
 Ciba Geigy AG, R1241.1.01, Postfach CH4002, Basel, Switzerland
 Tel: +41 61 697 6155 (work) +41 61 692 1728 (home)   GMT+2hrs!

dricejb@drilex.UUCP (Craig Jackson drilex1) (07/20/90)

About printing on X-Terminals:

Guy Harris is right; others don't really know lpr.  The lpr protocol is
basically a spooler-to-spooler protocol, not a user-to-printer protocol,
nor a spooler-to-printer protocol.  People with things like Annex boxes
need additional software (output filters) which open up a net connection
and talk to the printer.

Point 1: The Internet community sure could use a standard spooler-to-printer
protocol.  It could then be implemented by X terminals.


However, there does seem to be a deficiency in the X regime: X provides
a useful, standard means of displaying text and graphics on a computer
screen.  However, if one wishes to render that same text and graphics
in another environment, particularly hard copy, X provides no assistance.
Duplicate sets of code are required, one to call XDrawLine, etc, and 
one to create Postscript, PCL, or whatever your printer's religion is.
On the Mac, all one needs to do is direct a graphport at the printer
instead of the screen, and Quickdraw is still the language.

Point 2: There should be some standard extension to the X windowing system
which would allow programs to use the same interface to create hardcopy
as they use to create screen images.

Note: I don't consider a screendump to be a real answer to the hardcopy
problem.  Unless your bitmaps are routinely done at 2540 bits per inch
or greater, there are hardcopy devices with more resolution.
-- 
Craig Jackson
dricejb@drilex.dri.mgh.com
{bbn,axiom,redsox,atexnet,ka3ovk}!drilex!{dricej,dricejb}

mouse@LARRY.MCRCIM.MCGILL.EDU (der Mouse) (07/21/90)

> X provides a useful, standard means of displaying text and graphics
> on a computer screen.  However, if one wishes to render that same
> text and graphics in another environment, particularly hard copy, X
> provides no assistance.

Only because nobody has implemented such a thing.  There would be
absolutely nothing wrong with providing an X server which has, say,
display 0 being the CRT and display 10 using the page buffer for a
laser printer, where display 10 supports an extension corresponding to
PostScript's showpage operator.  (I have a guess at how useful it would
be.  But my guess is irrelevant and likely wrong; a thousand guesses
aren't worth one trying it and finding out.)

> Point 2: There should be some standard extension to the X windowing
> system which would allow programs to use the same interface to create
> hardcopy as they use to create screen images.

Using something like the above paradigm, all that'd be necessary would
be one very simple extension (the showpage analog).  The CRT display
should probably have some indicator of the existence of the printer
display.  Maybe the extension could support three calls: (1) showpage,
(2) get printer display number, and (3) get CRT display number.  (1 and
3 would be useful on only the printer display, with 2 useful on only
the CRT display, of course.)

> Note: I don't consider a screendump to be a real answer to the
> hardcopy problem.  Unless your bitmaps are routinely done at 2540
> bits per inch or greater, there are hardcopy devices with more
> resolution.

Well, what I proposed above amounts to a screendump, but of a second
screen.  If the code is carefully written to use the resolution values
from the two screens, everything should work just fine.  (Not much
current code does this because present resolution values are nearly
worthless; this would obviously have to be fixed for the above to be
very useful.)

					der Mouse

			old: mcgill-vision!mouse
			new: mouse@larry.mcrcim.mcgill.edu

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (07/22/90)

    Guy Harris is right; others don't really know lpr.  The lpr protocol is
    basically a spooler-to-spooler protocol, not a user-to-printer protocol,
    nor a spooler-to-printer protocol.

That's fine.  I would say it has been used essentially as a user-to-spooler
protocol (that's roughly how I would characterize the way a Symbolics machine
uses it), and I'm not sure the calling end could really tell the difference
between taking a long time to spool and actually printing directly.  That's
may undoubtedly be stretching the original purpose of the protocol, but then
adding a printer extension to X would be stretching the X protocol. :-)

    However, there does seem to be a deficiency in the X regime: X provides
    a useful, standard means of displaying text and graphics on a computer
    screen.  However, if one wishes to render that same text and graphics
    in another environment, particularly hard copy, X provides no assistance.

Point well taken.  You can look at the Andrew system for one attempt to
deal with this issue.  Another answer is to use a higher-level graphics
package, like PHIGS or GKS, instead of directly using X graphics calls.
But I would argue that this issue is a client-side issue, not a server-side
issue.

dricejb@drilex.dri.mgh.COM (Craig Jackson drilex1) (07/22/90)

Bob Scheifler said:
>I said:
>> Guy Harris is right; others don't really know lpr.  The lpr protocol is
>> basically a spooler-to-spooler protocol, not a user-to-printer protocol,
>> nor a spooler-to-printer protocol.
> 
> That's fine.  I would say it has been used essentially as a user-to-spooler
> protocol (that's roughly how I would characterize the way a Symbolics machine
> uses it), and I'm not sure the calling end could really tell the difference
> between taking a long time to spool and actually printing directly.  That's
> may undoubtedly be stretching the original purpose of the protocol, but then
> adding a printer extension to X would be stretching the X protocol. :-)

It's not too hard to think of using lpr as a user-to-spooler protocol; the 
user task needs simply to take over some of the function of the originating
spooler.  It might be possible to twist this into a spooler-to-printer
protocol, as well; I don't know it that well.  

I don't think that the printer protocol should be part of the basic X
protocol.  It should be sufficient either to recommend a standard auxiliary-
device protocol, or *perhaps* to add sort of 'external device control'
extension to the basic X protocol.  This is really for the IETF to
solve in conjunction with the research & development community.  However,
I'm sure that some leadership from the Consortium would accelerate things.

>> However, there does seem to be a deficiency in the X regime: X provides
>> a useful, standard means of displaying text and graphics on a computer
>> screen.  However, if one wishes to render that same text and graphics
>> in another environment, particularly hard copy, X provides no assistance.
> 
> Point well taken.  You can look at the Andrew system for one attempt to
> deal with this issue.  Another answer is to use a higher-level graphics
> package, like PHIGS or GKS, instead of directly using X graphics calls.
> But I would argue that this issue is a client-side issue, not a server-side
> issue.

I don't think the argument is 100% either way; I can conceive of several
implementations.  (Der Mouse mentioned a second 'screen' which is a printer,
at a different resolution, as a possible server-side solution.)  Once
again, this is an area which needs leadership & direction in its resolution.

-- 
Craig Jackson
dricejb@drilex.dri.mgh.com
{bbn,axiom,redsox,atexnet,ka3ovk}!drilex!{dricej,dricejb}

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (07/23/90)

    Der Mouse mentioned a second 'screen' which is a printer,
    at a different resolution, as a possible server-side solution.

Not really a very good solution, in my opinion.