attachment-0001
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2>This is a personal statement and demonstrates one view of how
to use the information stored in a UPDF device description.</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2><STRONG>Larger picture</STRONG></FONT></DIV>
<DIV><FONT size=2>I see manual duplex as part of some functionality I call
'Paper Path Preview'.</FONT></DIV>
<DIV><FONT size=2>This includes information to the end user on how to insert
print media properly into the tray (face-up/down, leading edge), what will
happen to the media in the device (flipped once or twice in a duplex unit) and
how the output bin will influence the path and the final face.</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>Manual duplex is just a very special case of using that
information twice.</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2><STRONG>Target module for implementation</STRONG></FONT></DIV>
<DIV><FONT size=2>1. priority: Spooler</FONT></DIV>
<DIV><FONT size=2>The number of conditions due to special behavior of input
trays, output bins and other factors is finite. As a matter of fact, it's not
overwhelming. A generic solution is the target. That would mean a device
description like the one in UPDF does not provide dialog information for manual
duplex. However it provides the proper attributes for the path the print media
takes. This is implemented in UPDF (I don't know of any other concept). Check
the attributes in features MediaInputTrayCheck, OutputBin, and
Sides.</FONT></DIV>
<DIV><FONT size=2>2. priority: Driver</FONT></DIV>
<DIV><FONT size=2>The driver may jump in as a substitute, if the spooler is not
capable. This may be operating system specific.</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2><STRONG>Features involved</STRONG> (from a UPDF point of
view)</FONT></DIV>
<DIV><FONT size=2>- feed orientation: saved with the media size
feature</FONT></DIV>
<DIV><FONT size=2>- page orientation: saved with the OrientationRequested
feature</FONT></DIV>
<DIV><FONT size=2>- long-edge/short-edge: saved with the Sides
feature</FONT></DIV>
<DIV><FONT size=2> - there is an extra attribute telling about
flipping</FONT></DIV>
<DIV><FONT size=2>- face-up/down (input): saved with the input tray</FONT></DIV>
<DIV><FONT size=2>- media flipped in output bin: saved with the output
bin</FONT></DIV>
<DIV><FONT size=2>- input trays available for the second path of manual duplex:
this can easily be covered by dependencies</FONT></DIV>
<DIV><FONT size=2>- output bins available for manual duplex: this can easily be
covered by dependencies</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2><STRONG>One special implementation
sample</STRONG></FONT></DIV>
<DIV><FONT size=2>1. Device settings of a pretty popular sample
device</FONT></DIV>
<DIV><FONT size=2>- input tray: short-edge first, face-up, landscape is 90
degrees anti-clockwise</FONT></DIV>
<DIV><FONT size=2>- output tray: top, media gets flipped once</FONT></DIV>
<DIV><FONT size=2>2. Implementation in spooler</FONT></DIV>
<DIV><FONT size=2>The spooler/driver has a number of text modules (in this
simple sample we do not think about animated pictures).</FONT></DIV>
<DIV><FONT size=2>For this sample the page orientation does not affect the
functionality. We can ignore it.</FONT></DIV>
<DIV><FONT size=2>2.1. short-edge</FONT></DIV>
<DIV><FONT size=2>Text module: something like 'remove the print medium from the
output tray and insert it without turning nor flipping.'</FONT></DIV>
<DIV><FONT size=2>
<DIV><FONT size=2>2.2. long-edge</FONT></DIV>
<DIV><FONT size=2>Text module: something like 'remove the print medium from the
output tray and insert it while turning it 180 degrees without
flipping.'</FONT></DIV></FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>I know the sample is simplistic, but that's about it. the rest
would be cosmetic.</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2><STRONG>Some details about the special device
description</STRONG> (as I would do it)</FONT></DIV>
<DIV><FONT size=2>- of course, fill out all paper path related attributes in the
description</FONT></DIV>
<DIV><FONT size=2>- filter out input trays you don't want to be available for
manual duplex</FONT></DIV>
<DIV><FONT size=2>- filter out output bins you don't want to be available for
manual duplex</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>You know of any other concept providing the necessary
information without a huge and dedicated function call? Tell me!</FONT></DIV>
<DIV><FONT size=2>This is a true data driven approach.</FONT></DIV>
<DIV><FONT size=2>I think when you see the UPDF paper path attributes, they are
almost self-explaining.</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>Regards</FONT></DIV>
<DIV><FONT size=2>Norbert Schade</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>Norbert Schade<BR>69 Prescott Drive<BR>North Chelmsford<BR>MA
01863<BR>phone: 1-978-251-1017<BR>email: <A
href="mailto:norbertschade@comcast.net">norbertschade@comcast.net</A></FONT></DIV></BODY></HTML>