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&nbsp;device description.</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</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&nbsp;(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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp; - 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>&nbsp;</DIV>
<DIV><FONT size=2><STRONG>One special implementation 
sample</STRONG></FONT></DIV>
<DIV><FONT size=2>1. Device settings of a pretty popular&nbsp;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&nbsp;while turning it 180 degrees without 
flipping.'</FONT></DIV></FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</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>&nbsp;</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>&nbsp;</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&nbsp;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>&nbsp;</DIV>
<DIV><FONT size=2>Regards</FONT></DIV>
<DIV><FONT size=2>Norbert Schade</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2></FONT>&nbsp;</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>