help-gnu-emacs
[Top][All Lists]
Advanced

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

Re: Printing from WindowXP version of emacs


From: Eli Zaretskii
Subject: Re: Printing from WindowXP version of emacs
Date: Tue, 20 Dec 2005 22:21:22 +0200

> From: Peter Boettcher <boettcher@ll.mit.edu>
> Date: Tue, 20 Dec 2005 09:45:00 -0500
> 
> There are many printers out there now which do not support PostScript,
> do not support PCL, and do not, in fact, even support plain text.
> They are often called "winprinters" because the windows drivers
> perform all the processing on the host CPU, and send simple rasterized
> data to the printer.

True.

> The printer itself will not even print "a" when told to.

That depends on the exact meaning of ``when told to''.  If by that you
mean (what I meant) that the character `a' is written to a port, such
as LPT1, which is captured by the OS and redirected to the printer
interface, then the printer _will_ print ``when told to''.

> On Linux, these printers are accessed via the normal lpr print spools,
> but they have filters set up to rasterize the input PS or raw text
> before outputing.

Similar things happen on MS-Windows; see this page for a more detailed
description:

  
http://www.microsoft.com/resources/documentation/Windows/XP/all/reskit/en-us/Default.asp

> The question on windows is: how does one access the driver which (in
> some cases) must rasterize the input, rather than going directly to
> the device.

This is a misunderstanding, and if I somehow caused it by inaccurate
or misleading wording, I'm sorry: you do NOT ``go directly to the
device'' on MS-Windows, at least not on its modern versions.  Direct
access to devices is only possible for privileged code, one that
normally runs in the kernel address space or in a device driver.

When, on Windows, Emacs writes to a port such as PRN or to a share
name such as \\server\printer, as if they were normal files, this
creates a printer job that passes through a series of processors (see
the URL above) and only in the end is sent through the wire to the
physical device.

In other words, these names are not some door to the wire that goes to
the printer, they are special names that the OS watches and whose
traffic is captured and processed extensively before it gets to the
device.  Same as on Unix.

> Copying plain text to the network name of the printer seems not to
> do the right thing universally

But not for the reasons that the plain text somehow gets untranslated
to the printer: that is simply impossible on Windows.  There's some
other factor at work here.




reply via email to

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