For environments in which users are confronted with a myriad of printers to choose from, HP SharedPrint provides a simple graphical interface that enables users to select a target printer and a set of options without encountering the typical problems associated with this process. &*+ &$',+) ,*)* % %+.&)" &$',+) %- )&%$%+ +" )+ % *'+* & + *0*+$ &) )%+2*' ##0 *) )*&,)* *, * *"* % ') %+)* *)* /'+ +* )*&,)* +& .&)" #.#**#0 . +&,+ %0 &%)% &) %+))% &% + ) ')+ %&)+,%+#0 + # * %&+ #.0* '&** # *' ##0 &) ') %+)* ) %+)* &+% ## ) *&)+ & ,*)* /'++ &%* ,* & + * . '# *'1 # $'* * &% ')&- % )&,*+ *01+&1,* ') %+ % *&#,+ &% &) &.) & ,%)*+% + &.) ') %+ % *&#,+ &% + * )*+ %**)0 +& /$ % + ,%$%+#* & *'&&# ') %+ % *0*+$ *&.* + '** % * &')+ &%* & *'&&# ') %+ % *0*+$ ,*) &%+)&#* + *' + &% '* 0 *#+ % % &,+',+ - )&$ # *+ ')&- 0 + *0*+$ &!+ # +& ') %+ &)$* *&% ')+ & + + !& *' 1 + &% %##0 %0 &'+ &%* ++ &%+)&# + '')% & + %# &,+',+ *&,# %&+ &'+ &%* $0 ,* +& &%+)&# .% + !& * ') %+ +& % + * ) 1 " +& *#+ *&$ +,) & + &,+',+ - &) +& *' 0 + %# '')% & + ') %+ &,+',+ (,, % &%+)&# '* * %# 0 + %+ - *'&&#1 % *0*+$ + '"* + ,*)* !& *' + &% #&+* + +)+ $ % *+# ** + &$$,% + &% '+ % '#* + !& % (,, *'&&# % *0*+$ -%+,##0 (,,* + !& %-&" % + ,%+ &%* ++ ')&** + !& % )+* + &,+',+ +& + ') %+) *'&&# % *0*1 +$ #*& %#* (,)0 % &%+)&# )(,*+* )&$ + ,*) ')&- % + " )(, ) &) )&,*+ *0*+$ ')&** % '* ')&)$* + )# .&)" % ') %+ % *,*0*+$ * '* * % + + 0 + *'&&#) . *+)+* ')&** ++ &%%+* (,, # +& + ')&** %',+ % + ') %+) + '&)+ +& +* &,+',+ '&)+ ')&1 ** % '* ')&)$* + +)%*#+ &% % &)$++ % & + %',+ + *+)$ ''#0 % &'+ &%* * '')&') + % *% % &,+ ') %+) &%+)&# ,%+ &%* +& + *#+ ') %+) .% %**)0 & +* +) *+'*2*' + &% (,,&%+)&# % ')&** %2* ')&#$* ++ % )% )&$ %, *% *1 *,* *, * + ') %+) * &,+ & '') +& &$'+ )"1 &.% & + ') %+ % *,*0*+$ * )&#$* % + *' + &% '* %#, + % &) + ,*) *,$ ++ % ') %+ !& +& *'% + $ % % + %$* % ' # + * & - ## ') %+)* % *'% % $&) + $ #)% % &. +& *' # ') %+) &%+)&# &'+ &%* +& ') %+ )(,*+ &'+ &%* - + ,*) $&) &%+)&# &-) + %# #&&" & + &,$%+ ,, % &%+)&# ')&#$* %#, $ % $# +& %& 1 " &% + *++ & !& &) ') %+) #,)* ) &+% %&+ )'&)+ +& + ,*) - % + '')% ++ !&* !,*+ *'') )&$ + (,, $ % *+) % + *'&&# % *0*+$ % ,#+ +*" *+'* +& ') %+) ) %&+ &- &,* % $& 0 % ') %+)* ,#+ - &) )1 (, )* $&) "%&.# &,+ + ') %+) % ')&)$$ % +% + ,*) $0 .%+ +& "%&. Processing Specification User • Select Output Device • Print File • Job Options User’s Job Specification Queue and Control • • • • • Spooling • Locate Printer • Set Up Communication Path Format Filter Apply Device Control Dequeue and Output Queue Feedback Output to Printer ') # .#++1") &,)%# * &')+ &% & *'&&# ') %+ % *0*+$ Specifications User • Unclear or Wrong Device Specified • Unclear or Wrong Options Processing Confused Job Specifications Queue and Control • Wrong Filters • Hung Devices • Hung Processes • No Feedback • Poor Administration Queue No Feedback &(%"#) $%+$*( +($ * &(%))$ &) $ * #%)* +"* *% $%) $ . %$)( ** * &($* % &(%)) ) !(%+$ &(%)) (+$$$ %$ )(,( - ) %*$ (#%* (%# * +)( * -(%$ %&(*%$) ( &(%(# %$ &($* % * ()+"* $ +$ )&%%"$ )/)*# $% %+*&+* %( &) % +)")) %+*&+* (%# * &($*( *(#$$ * "+( ('+() $*#* !$%-" % * )&%%"$ )/)*# $ $/ )"" )(&*) %( &(%(#) * )&%%" )/)*# .+*) &%-( &($*$ )+)/)*# ) ) %$ * (($* &(%+* * )%",) #$/ % * &($*$ &(%"#) #$*%$ %, / &(%,$ (%+)* )/1*%1+) )+)/)1 *# "/( %$ *%& % )&%%"$ )/)*# (1 ($* )%"+*%$ ())) * )&*%$ &) / &(%,$ (&" +)( $*( *%%" ** $"+) ")* % &($*() *% %%) (%# $ "* ")* % %&*%$) ** $ )& %( &(*+"( &($*( ) Wrong Output (%"#) ))%* -* )%# )&%%" &($*$ )/)*#) (($* &(%,) *%%") ** $" * )/)*# #$)1 *(*%( *% )* +& &($*( )"/ $ '+!"/ #!$ +)*%#1 0*%$ *(," $%*( (&" +)( $*( *%%" &(%,) ("1*# )**+) % &($* %) $ &($*() "%$ -* %$*(%" +$*%$) *% $" &($* %) %( "* &($*() $ #%/ &($*() +"* ,%( ) %* % *) *%%") ( )( $ *" "*( $ *) (*" (($* &(%))$ #%+") "#$* * # %( &(%"#) ** +) )/)*# #$)*(*%() $ $ +)() )% #+ *(%+" $ $*""$* )(,( &(%,) &($* % &(%1 ))$ ) %$ $ "%(*# ** /$#""/ +") $ .+*) * "#$*) $))(/ *% $" * % &(%&("/ +"*1$ ((%( **%$ "% ) +) *% &(%, (1%&/ #)) *% * +)( *"$ $/ &(%"#) $ &(%))$ * % (($* ) "$*1)(,( (**+( "$* %#&%$$*) $"+ * *-% (&" +)( $*( )($) (($* (&" +)( $*( )%-$ ")* % ,"" &($*() &(" -"**1!( %+($" SharedPrint feedback server 2 and 3 . The feedback server hands sprint a set of valid options based on the user's inputs 4 . The option information is used to validate which options the user can select for the current job. After completing the job specification, the user selects the OK button in the sprint window to queue the job for printing. At this point the job request moves to the line printer spooler (lp) client 5 . The lp client packages the print request and connects to the lpsched daemon located on the lp server 6 . The lpsched daemon places the job request in the printer queue and at the appropriate time starts the HP SharedPrint job processor to process the job 7 . HP SharedPrint's graphical user interface for system administration. The HP SharedPrint server includes the HP SharedPrint job processor, configuration files that specify various mappings, filters, and drivers that perform translation and formatting, and the HP SharedPrint feedback server. Data from the conĆ figuration files is used by the feedback server and the job processor. The feedback server uses the data to provide opĆ tion information to the sprint user interface, and the job proĆ cessor uses the data to define the processing steps. The job processor invokes the filters and drivers to finish processing a job. The filters translate and format data files going to the selected printer, and the drivers place deviceĆspecific control information in the data stream going to the printer. mentioned above. Fig. 5 shows a highĆlevel view of the HP SharedPrint client/server system. The job specification client communicates with the HP SharedPrint server via the base spooling system. The server provides realĆtime feedback to the user about what options are valid for a specific job and printer combination. One of the major features of HP SharedPrint is its ability to print many of the common file types† transparently on any of the supported printers. This functionality eliminates the need for the user to know which file types can be printed on which devices. The HP SharedPrint server, being highly configurable, can be used to drive smart as well as dumb printers. Also, because of its highly modular design, the server can be layered on any spooling system. Fig. 6 shows a detailed view of the main components that make up the HP SharedPrint client/server system. The HP SharedPrint client contains the graphical user interface proĆ grams sprint (HP SharedPrint print) and spadmin (HP SharedĆ Print administration). Sprint prompts the user for the file to print ( 1 in Fig. 6) and the designated printer and then uses NCS (network computing services) to connect to the HP • • • • The sprint print client enhances the basic HP VUE printing model by providing an easyĆtoĆuse graphical interface. Sprint does not alter or replace the current HPĆUX* spooling system functionality but is layered on top of the spooling system. This leads to a smooth transition from the standard HPĆUX printing models to HP SharedPrint. The sprint graphical user interface allows users to: Select a file to print via a drag and drop operation from the HP VUE file manager interface Select a printer from a displayed list of printers Set options based on realĆtime feedback Save groups of options for reuse later on similar print jobs. † A file type is a special data format required of all printers, such as PCL image files, RTL (raster transfer language), PostScript, or applications (image or text). HP-GL 2 Images Text PostScript PCL File Types File Printers Graphical User Interface Printer and Options Screen Job Specification Client System Administration Screen HP SharedPrint Server Base Spooling System Client Side Feedback PostScript PCL Dumb Raster HP-GL 2 April 1994 HewlettĆPackard Journal Server Side A highĆlevel view of HP SharedPrint's client/server architecture. Printer Location Information 3 HP SharedPrint Client Global Location Broker HP SharedPrint Server Register Printer, File 2 4 Options Feedback Server HP SharedPrint Configuration Files NCS HP SharedPrint Job Processor User 1 spadmin Enable/ Disable Cancel sprint lpstat lp 5 Queue Job Process Job 6 7 lpsched Daemon HP-UX Spool System Information lp Client lp Database Control Processed Output I/O Driver Printer Feedback LAN ! -() %/% "'-+ (+ sprint ", ,!(0' "' " ! "&& .--(', +)+,'- .'/"%% "-&, (+ 1&)% -! &'. "-& PaperSource ", "&& -( "'"- -!- -! ,3 %- )+"'-+ (, '(- ,.))(+- &.%-")% ))+ -+2, ! .--(' &+$ Options 0"%% -$ -! .,+ -( -! ,+' ,!(0' "' " !", ,+' )+(/", '(-!+ ,- ( ()-"(', !, ()-"(', + ,'- -( sprint 2 -! $ ,+/+ Printer lp Server -"% %($ " +& ,!(0"' -! (&)(''-, -!&$ .) !++"'-, %"'- ,+/+ ,2,-& ! !++"'- &"'",-+-"(' spadmin +)!"% .,+ "'-+ ", ,!(0' "' " %-"' -! )+"'-+ "(' +(& -! +('- )'% -"/-, -! spadmin %"'- +"'- +3 *.,- (+ )+"'-+ ,--., "'(+&-"(' ", ",)%2 ' .)- /+2 ,(', ! Administer &'. '%, &(+ (&)%1 -,$, ,.! , "-"' )+"'-+ ('" .+-"(' "%, "' ' %-"' )+"'-+, ' &$"' (-!+ !' , -( -! )+"',)((%+ ,-- ! !++"'- (+ ,+/+ (&)(''-, + ,!(0' "' " ! (+ ,+/+ )+(+&, -! )+(,,"' (+ )+"'#( ' )+(/", -! ()-"(', $ -( -! .,+ 0( +(.), ( ('" .+-"(' "%, + ., (+ )+(,,"' #( ' +(.) ('-"', "'(+&-"(' -!- "', #( )+(,,"' ' $ +.%, ! (-!+ +(.) ('-"', )+"'-+ ('" 3 .+-"(' "'(+&-"(' -!- "', -! .%- ,--"' , ' Job Processing and Feedback Rules* Feedback Server HP SharedPrint Job Processor Printer Configuration File* • • • • File Type Indentifier Print Path Builder Filters Diagnostics Printer Drivers Printer I/O Port (stdout) Standalone Programs Printer Model Files* ! Options ,+' -!- ,!(0, -! ()-"(', /"%% (+ +-"' )+"'-+ * HP SharedPrint Configuration Files !++"'-, (+ ,+/+ (&)(''-, )+"% 0%--3$+ (.+'% • $,'%6 0#/' ':6'05+10 (+.' *+5 (+.' %106#+05 # .+56 1( '064+'5 6*#6 /#2 (+.' ':6'05+10 8#.7'5 61 (+.' 6;2'5 14 ':#/2.' (+.'5 9+6* 6*' ':6'05+10 .c 5174%' (+.'5 917.& $' /#22'& 61 #0 (+.' 6;2' • +2'.+0' (+.' *+5 %10(+)74#6+10 (+.' 52'%+(+'5 # (+.6'4 2+2'.+0' *' %14' 5'48'4 %105+565 1( 691 5'2#4#6' 241%'55'5 6*#6 5*#4' 241%'55 (14 '#%* %1/$+0#6+10 1( +0276 #0& 176276 (+.' 6;2' # %1//10 5'6 1( &#6# #0& 51/' %1//10 (70%6+105 *'5' #%* 1( 6*' (+.6'4 52'%+(+%#6+105 %#0 +0%.7&' 126+105 #0& 241%'55'5 #4' 6*' ,1$ 241%'5514 #0& 6*' (''&$#%- 5'48'4 *' 9*+6' 52#%' ,1$ 241%'5514 +5 +081-'& $; 6*' 24+06 &#'/10 lpsched 9+6* 6*' • 26+105 /#2 (+.' *+5 (+.' .+565 5722146'& 126+105 (14 '#%* #4)7/'065 (+.6'4 14 &4+8'4 job_id user_name title copies options files • 26+105 (+.' *+5 (+.' .+565 -0190 126+105 #0& #.+#5'5 • ;2'5 (+.' *+5 (+.' .+565 -0190 (+.' 6;2'5 #0& #.+#5'5 *' (+456 (174 #4)7/'065 4'24'5'06 6*' ,1$ 07/$'4 6*' 75'4 9*1 37'7'& 6*' ,1$ 6*' 6+6.' 1( 6*' ,1$ #0& 6*' 07/$'4 1( *'5' .#56 (+8' %10(+)74#6+10 (+.'5 /#-' 72 6*' (+.'5 .#$'.'& %12+'5 61 24+06 *' options #4)7/'06 %106#+05 <'41 14 /14' #5 ,1$ 241%'55+0) #0& (''&$#%- 47.'5 +0 +) 61-'05 '#%* 4'24'5'06+0) #0 126+10 52'%+(+'& $; 6*' 75'4 Filters. +.6'45 #4' 241)4#/5 6*#6 64#05(14/ # &#6# (+.' (41/ 37'7'+0) 6*' ,1$ 14 ':#/2.' –charheight 8 –orientation landscape 10' (14/#6 61 #016*'4 +.6'45 2'4(14/ '+6*'4 64#05.#6+10 14 #4' 6;2+%#. 61-'05 +0 6*' options #4)7/'06 *'5' 126+105 #4' (14/#66+0) 4#05.#6145 %*#0)' 6*' '0%1&+0) 1( 6*' +0(14/#= 5'6 +0 6*' sprint %.+'06 14 10 6*' lp %1//#0& .+0' $; 24'2'0&= 6+10 +0 6*' &#6# (+.' 9+6*176 %*#0)+0) +65 #22'#4#0%' 14 +0) 6*' .'66'4 –o 61 6*' 126+10 564+0) *' files #4)7/'06 +5 # ':#/2.' +0 %108'46+0) 6':6 61 156%4+26 (14/#6 6*' .+56 1( 10' 14 /14' (+.'5 61 $' 24+06'& 6':6 4'/#+05 6*' 5#/' $76 6*' (+.' +5 ':2#0&'& 61 %106#+0 *' ,1$ 241%'5514 5'48'5 #.. 6*' 5722146'& 24+06'45 $; 156%4+26 %1//#0&5 14/#66'45 /1&+(; *19 6*' +0(14/#= &;0#/+%#..; %10(+)74+0) +65'.( (14 '#%* 24+06 ,1$ *' +0(14= 6+10 +0 6*' &#6# (+.' 9+.. $' 4'0&'4'& 10 6*' 2#)' 14 ':#/= /#6+10 0''&'& (14 6*+5 12'4#6+10 %1/'5 (41/ 6*' 24+06'4 2.' # (14/#66'4 /+)*6 416#6' 14 5%#.' #0 +/#)' #&& %1/= %10(+)74#6+10 (+.' #%* 24+06'4 4'37+4'5 # 70+37' 24+06'4 %10= /#0&5 (14 /7.6+%1.7/0 6':6 24+06+0) 14 #&& (116'45 #0& (+)74#6+10 (+.' 9*+%* +5 %4'#6'& 9*'0 # 24+06'4 +5 #&&'& 61 *'#&'45 61 # &1%7/'06 *'5' (+.6'45 1(6'0 *#8' 126+105 6*#6 6*' 5;56'/ *+5 %10(+)74#6+10 (+.' %#0 $' /1&+(+'& #6 #0; 6*' 75'4 %#0 5'6 61 %10641. 6*' (+0#. #22'#4#0%' 6+/' 8+# 6*' *#4'&4+06 %.+'06 spadmin 14 $; 75+0) #0; +.6'45 #4' +081-'& $; 6*' ,1$ 241%'5514 #%* (+.6'4 4'#&5 6':6 '&+614 (41/ 56#0&#4& +0276 #0& 94+6'5 61 56#0&#4& 176276 9+6* '4414 *' ,1$ 241%'5514 75'5 51/' %10641. 241)4#/5 61 4'#& 6*' /'55#)'5 $'+0) 5'06 61 56#0&#4& '4414 *' (+.6'45 5722146'& %10(+)74#6+10 (+.'5 61 &'6'4/+0' 9*+%* 5'6 1( (+.6'45 61 ':'%76' $; *#4'&4+06 +0%.7&' 61 24+06 # ,1$ 2412'4.; '6#+.5 1( 6*'5' 56'25 #4' &'5%4+$'& • txpcl *+5 (+.6'4 (14/#65 #0& 64#05.#6'5 6':6 &1%7/'065 +061 .#6'4 24+06'4 %10641. .#0)7#)' (14/#6 *' (14/#66+0) 12= 6+105 #..19 75'45 61 %*#0)' 21+06 5+<' 24+06 21464#+6 14 .#0&= *' 16*'4 241%'55 +0 6*' %14' 5'48'4 6*' (''&$#%- 5'48'4 +5 5%#2' 2'4(14/ &17$.' %1.7/0 24+06+0) #&& *'#&'45 #0& 470 10 '8'4; 5;56'/ 9*'4' #0 *#4'&4+06 24+06'4 +5 (116'45 #0& %*#0)' 6*' 6;2'(#%' #0& 5;/$1.=5'6 /#22+0) +056#..'& *+5 5'48'4 2418+&'5 6*' sprint +06'4(#%' 9+6* (''&= • txps *+5 (+.6'4 (14/#65 #0& 64#05.#6'5 6':6 61 156%4+26 6 $#%- 10 9*#6 126+105 #4' 8#.+& (14 # 52'%+(+% (+.' #0& 24+06'4 #.51 57221465 /156 1( 6*' 126+105 +0%.7&'& +0 6*' 6':6=61= %1/$+0#6+10 (+.6'4 txpcl *' (''&$#%- 5'48'4 +5 #761/#6+%#..; 56#46'& 9*'0 6*' (+456 • cgmhpgl2 *+5 (+.6'4 4'#&5 $+0#4; %1/276'4 )4#2*+%5 /'6#(+.' (14/#6 #0& 241&7%'5 #0 = $;6' 564'#/ 6 +5 *#4'&4+06 24+06'4 +5 #&&'& 61 6*' 5;56'/ 6*'4 *#4'&4+06 24+06'45 10 6*' 5#/' 5;56'/ 75' 6*' 5#/' 75'& 61 1$6#+0 )4#2*+%5 176276 (41/ 6#4#5' 14 = (+.'5 *#4'&4+06 5'48'4 • psrip *+5 (+.6'4 #..195 75'45 61 24+06 # 156%4+26 (+.' 10 # Configuration Files. *' %10(+)74#6+10 (+.'5 5*190 +0 +) 010=156%4+26 24+06'4 *' (+.6'4 4'#&5 # .'8'.= 156%4+26 #4' 6':6 (+.'5 6*#6 2418+&' #.. 6*' +0(14/#6+10 0'%'55#4; 61 (+.' #0& %4'#6'5 # 4#56'4 +/#)' (14 '#%* 2#)' *' 4#56'4 241%'55 #0; 1( 6*' 5722146'& (+.' 6;2'5 10 #0; 1( 6*' 572= +/#)' +5 ('& 61 # &'8+%'=52'%+(+% (14/#66'4 9*+%* #&&5 6*' 2146'& 24+06'45 !5'45 %#0 /1&+(; #0; 1( 6*'5' (+.'5 75+0) #224124+#6' %10641. 14 %1//#0& %1&'5 (14 6*' 6#4)'6 #0 '&+614 14 +0 6*' %#5' 1( 6*' 24+06'4 %10(+)74#6+10 (+.' 6*' &'8+%' *#4'&4+06 5;56'/ #&/+0+564#6+10 76+.+6; spadmin *' • pclrip *+5 (+.6'4 2'4(14/5 6*' 5#/' (70%6+10 #5 6*' psrip (+.6'4 %10(+)74#6+10 (+.'5 +0%.7&' 10 (+.'5 *' .'8'. %#0 $' .'8'. 6*417)* #0& %#0 • 4+06'4 /1&'. (+.'5 *'5' (+.'5 %106#+0 +0(14/#6+10 (14 52'= +0%.7&' 6*' .'8'.= 5%#.#$.' 6;2'(#%'5 75'& $; %+(+% 24+06'4 /1&'.5 14 #0; 2#46+%7.#4 24+06'4 /1&'. 6*+5 6*' #+06'6 #+06'6 " #0& '5-'6 24+06'45 +5 016 (+.' +0%.7&'5 6*' 126+105 5722146'& &'(#7.6 8#.7'5 (14 #0; 5722146'& $; 6*+5 64#05.#614 *' = ':6'05+10 61 (+.6'45 #0& 6*' (+.' 6;2'5 6*' 24+06'4 /1&'. %#0 *#0&.' .'8'.= +5 #.51 016 5722146'& $; 6*+5 64#05.#614 • 4+06'4 %10(+)74#6+10 (+.' *+5 (+.' %106#+05 +0(14/#6+10 • ilFilter *+5 +5 #0 +/#)' .+$4#4; (+.6'4 6*#6 %108'465 #.. #$176 # 52'%+(+% 24+06'4 *' (+.' +5 %4'#6'& (41/ 10' 1( 6*' 19'4 5722146'& +/#)' (14/#65 # .'8'.= 156%4+26 (+.' 14 24+06'4 /1&'. (+.'5 9*'0 # 24+06'4 +5 #&&'& 61 6*' 5;56'/ # (+.' +061 # 1565%4+26 14 (+.' *' (+.6'4 +5 !5'45 %#0 /1&+(; 6*+5 (+.' 61 4'(.'%6 %*#0)'5 /#&' 61 6*' %1/215'& 1( 6*4'' 56#)'5 # 241&7%'4 6*#6 %108'465 6*' +0276 24+06'4 57%* #5 59#22+0) 2#2'4 64#;5 14 +05'46+0) (106 1$,'%6 +061 #0 +/#)' .+$4#4; (14/#6 10' 14 /14' (+.6'45 6*#6 %#464+&)'5 *#0)'5 6#-' '(('%6 #6 6*' 0':6 24+06 ,1$ $'*#8+14 (14 # 2#46+%7.#4 24+06'4 *'4' +5 10' 24+06'4 %10(+)= 74#6+10 (+.' (14 '#%* 24+06'4 %100'%6'& 61 6*' 5;56'/ +.6'45 #0& &4+8'45 #4' 56#0&#.10' 241)4#/5 +081-'& $; 6*' %14' 5'48'4 61 241%'55 # 24+06 ,1$ 24+. '9.'66=#%-#4& 1740#. "#%*!) ) '()' " # $#(*"' )) $#+')( ) " !''. $*)%*) )$ $()'%) $' ! Drivers. *#)$# $ '+' ( )$ $ $#)'$! #$'/ ")$# )$ ) ) ()'" %'$* . ) !)'( ) $( #$) #)'%') $' # ) ) ()'" *) ( %'#)'/(% $""#( )$ ) .) ()'" # $ ) '+' ( #!# %'#)'/(% *#)$#( ,'( !)'( #! !#*/ (% *#)$#( $ $#)'$! #$'")$# %#( $# ) )') %'#)' $ $#)'$! )*' # ) %'#)' # (!) $' () . ) (.()" "#()')$' ,# ) %'#)' ( $#*' $' (% . *('( # )' %'($#! $%)$#( !( # "$() (( ) '+' ,!! (# ' ,) #. $ $#)'$! #$'")$# )# cat ) #%*) ()'" '$" ) !)'( )$ ) $*)%*) ()'" # ($" (( ) '+' ,!! + )$ -"# ) '() , .)( $ ! )$ ( )' ' #. '() $#)'$! ')'( )) ") #)'' ,) ) '+' ' ()'" $' #()# !( ". $#)# # ESC E )) '()( ) %'#)' ()) '+' ,!! + )$ ()'% )( .)( ' "*() (#) Command Line → <Job, User, Title, Copies, Options, Files > Parse Command Line Printer Configuration File Options Options From Command Line File Type Determined No Print Error Page Yes Printer File Type Data File Type Build Pipeline Abort Job Send Mail to User Execute Pipeline Get Next Copy Get Printer Type. . ()% # %'$%'!. %'$((# $ ( )$ #$, ) ')'()( $ ) )') + # (* %'#)' ')'() ( ) ).% $ !#*( $' ! ).%( ) %'#)' *#'()#( Build Options List. $ #!*( !() $ $%)$#( # (/ ($) +!*( $%)$#( !() ( *!) '$" *!) +!*( # # ) %'#)' $#*')$# ! +!*( %(( . ) *(' $' +!*( . ) !)'( ('/(% $%)$#( $+'' $%)$#( # # ) %'#)' $#*')$# ! $' ) !)'( Print Banner Page Get File Type "# %*'%$( $ )( "$*! ( )$ #!$( ) (%( $ (%$$!# (.()" # $# !$)$# ($ )) ) %'$(( $ %$')# ''#) )$ #, (%$$!# (.()" ,$*! #+$!+ ## $#!. )( "$*! %'#)' ! ).%( ' !() # ) %'#)' $#*')$# ! , ( ') ,# %'#)' ( )$ ) (%$$!# (.()" ( ()% #+$!+( %'(# ) $#*')$# ! $' ) )') %'#)' #$ !/).% #)'. -()( # ) $#*'/ )$# ! $' ) $#*')$# ! ##$) !$) # ''$' % ( (#) )$ ) %'#)' ) %'#)' ( (! # "! "(( ( (#) )$ ) *(' ,$ &** ) $ Build Options Front Banner Page $' %'#) $ ) ''#) $ %'$(($' -/ *)( ) !$')" $*)!# # $ ) ()%( # '%'(#)( "$*! $' #!# $ #+$!+ # %'$((# $ Parse Command Line. ( ()% ( ) #)' )$ ) ( (%$$!# (.()" (%$$!# (.()" %((( ) $ ) )$ ) %'$((# "$*!( # ,!!/# $'" $' ) / (%$$!# (.()" ) $ %'$((# "$*! ( !! + ) lpsched "$# ,) ) (- $""# !# '*"#)( (' '!' $""# !# #$'")$# , #!*( ) *(' #" %'#)' #" $ $%)$#( # !( )$ %'#) ( $!!) # ()$' # ) $ %'$(($' $' *( ( %%'$%') Get Printer Type Last Copy? No Get Next File Yes Last File? No Yes Print Rear Banner Page $ %'$((# !$')" ('/(% $%)$#( # %(( '$" sprint + ) lp $""# !# # ) ''#) $%)$# #"( ' %'! ,!))/ ' $*'#! PostScript banner page. fullĆlength strings, a set of aliases, which are defined in the options configuration file, can be used on the lp command line. The buildĆoptionsĆlist operation will expand the aliased strings when the options list is built. Front Banner Page. This step involves building and sending a banner page to the printer. This function creates a banner page file, then recursively calls the job processor to send it to the printer. In this way, any type of banner page can be sent to any printer. HP SharedPrint includes a banner page program for PostScript, PCL 5, and ASCII text. Fig. 10 is an example of the PostScript banner page. The sprint dialog box asking about file type. the file type if the job processor cannot determine the file type. In this case sprint will pop up the dialog box shown in Fig. 11, asking the user to select one of the values. • File type reader. This method compares the spooled file's contents with a predefined set of patterns for specific file types. These patterns are coded as C programs or Korn shell scripts. Each one of these programs or scripts expects a file as input. If the file type matches the defined pattern, the program or script writes the type string to standard output and returns an exit code of 0 to the calling routine. If there Get File Type. This step determines the spooled file's file type. is no match, the program or script returns an exit code of 1. The job processor must know the file type of a job to deterĆ mine if any processing is necessary to format the spooled A special fileĆtype program, based on the image library, is file for the target printer. For instance, a PostScript file must used for identifying image files. The image library includes a be converted to PCL to print on an HP LaserJet printer. The set of functions that allow programmers to open a file and fileĆtyping process uses the following three methods (in the determine if it is a file type that is supported by the image order given) to determine the file type for a job: library. If the image library can process the file, the image • Command line switch fileĆtype program writes the string bitmap" to standard • File type reader output and exits with a status code of 0. • File extension value. The module that determines a job's file type executes each of When a file type is found from any of these methods, the the fileĆreading programs and scripts located in a directory fileĆtyping process terminates. If the file type cannot be deĆ called filetypes until a match is found. If no match is found termined from any of the above methods, an error page is after all the programs have been invoked, the file extension printed, and the job is aborted. mechanism is used to determine the file type. • Command line switch. With this method if the user includes the fileĆtype option flag (–file_type) on the command line, the fileĆtype value will be set to the value following the –file_type flag. In this case HP SharedPrint assumes the user has some knowledge of the file's content that HP SharedPrint cannot determine. The sprint program will also prompt the user for April 1994 HewlettĆPackard Journal • File extension value. File extensions are used by HP VUE to map file types to actions. For example, the extension .au is associated with the audio server, a process that plays or records audio files. HP SharedPrint uses many of the same extension values, mapping them to a file type in the object name extension file. The extension value is extracted from HP-UX Pipes Print Driver Filters Data File (File to Be Printed) Printer $+ '$) ./" . - / 0-$)" /# +$+ '$) 0$'$)" ./ + $) /# %* +-* ..$)" +#. Job Options /# ' ! )( *! /# *-$"$)' !$' /#/ $. +.. 4 sprint $) /# lp .+**' - /$/' *+/$*) 2-$/ . '' --*- *- 2-)$)" ( .." . /* ./)- --*- # %* +-* ..*- - $- /. /#$. / 3/ /* /# --*- '*" Build Pipeline. # +-* ..$)" +$+ '$) + -!*-(. /# /0' 2*-& *! " //$)" !$' +-$)/ *) /# /-" / 1$ # +$+ 8 '$) *).$./. *! *) *- (*- !$'/ -. ) -$1 - 2$/# /# *0/+0/ *! # ./" +$+ $)/* /# $)+0/ *! /# ) 3/ ./" . .#*2) $) $" / /# --*--*--*/# / # +$+ '$) $. -$1 !-*( /# +-$)/ - !$' /4+ ) /# / !$' /4+ # +$+ '$) 0$' - .). /# +$+ '$) *)!$"8 0-/$*) !$' '**&$)" !*- !$' /4+ (/# . *- # (/# *) *- (*- !$'/ -. $. .+ $!$ /* + -!*-( /# /-).'/$*) ! )* (/# $. !*0) !*- /# .+ $!$ !$' /4+ . ) --*- +" $. +-$)/ ) /# %* $. *-/ $")*./$ $)!*-(/$*) $. $)'0 $) /# /# )'4.$. *! /# +-*' ( # +$+ '$) $. / -($)/ 4 $)" -$1 - (*0' /* /# !$'/ - +$+ '$) # -$1 - $. / -($) !-*( /# +-$)/ - *)8 !$"0-/$*) !$' # +$+ '$) ./-$)" / /#$. +*$)/ 2$'' #1 /# !*-(/ !$'/ -767!$'/ -767-$1 - */ /#/ # !$'/ - ($"#/ !$'/ - )( !*''*2 4 .*( *+/$*). /#/ *)/-*' #*2 /# !$'/ - $. 3 0/ # +$+ '$) $. *(+' / 4 $)" /# ++-*+-$/ *+/$*). /* # !$'/ - ) /# -$1 - # !$'/ - *+/$*). !$' (+. *+8 /$*). /#/ ++'4 /* # !$'/ - *- -$1 - .* /#/ /# *-- / -"0( )/. - +.. /* /# !$'/ -. # !$)' +$+ '$) ./-$)" ($"#/ '**& '$& txpcl –charheight 8 –orientation landscape | lj3.sh –copies 1 Execute Pipeline. # +$+ '$) - / $) /# 0$'8+$+ '$) ./" $. )*2 3 0/ # *0/+0/ !-*( /# './ ./" *! /# +$+ '$) $. . )/ /* ./)- *0/+0/ 2#$# 2$'' /# *)) /$*) /* /# +-$)/ - ! )4 --*-. *0- $) /# +$+ '$) 3 0/$*) +#. /# 4 *'' / ) +' *) ) --*- +" 2#$# $. +-$)/ / /# ) *! /# %* # --*- +" !0)/$*) $. '' 2# ) .*( 0)- *1 -' 1 )/ *0-. .+ $' '*" !$' *)/$). '' /# *0/+0/ !-*( /# +-$)/ .-$+/ # !$'/ - *- -$1 - *(+' /$*) *! /# %* /# %* +-* ..*- .). /# '*" ! )4 $)!*-(/$*) *- ( .." . - !*0) $) /# '*" /# %* +-* ..*- 0$'. / 3/ +" *)/$)$)" /# ( .." . ) .*( 0" $)!*-(/$*) ) /# ) +-$)/. 3/ +" *) /# +-$)/ - --*- +" /* $ $) Final Steps. # './8*+4 ./ + 3 0/ . /# +$+ '$) "$) $! )*/# - *+4 $. ) ) /# './8!$' ./ + 4' . /# .-$+/ & /#-*0"# +-* ..$)" /# ) 3/ !$' $! /# - - (0'/$+' !$' . /* +-$)/ # ) - 4'$)" $. - ,0$- /# $)$/$' .// *! /# *+/$*). +-$)/ - *)!$"0-/$*) !$' ) *0/+0/ /4+ - 8 ($) /# .( ) * )*/ ) /* - '0'/ $)''4 /# - - )) - ./ + 2#$# $. $ )/$' /* /# !-*)/ )) +" (4 0. /* +-$)/ %0./ .#*-/ /-$' - *- $) /# . *! +-$)/ -. /#/ +-$)/ ! 0+ /# )) - +" .#*0' +-$)/ # - # ! & . -1 - # '+. 0. -. .+ $!4 %* +-( / -. /#/ *+/$($5 /# #-8*+4 *0/+0/ !*- "$1 ) %* $/#*0/ /#$. ! & 0. -. ) .$'4 *1 -2# '( 4 /# '-" )0( - *! 1$'' *+/$*). 4 )'$)" *)'4 /#*. *+/$*). /#/ ++'4 /* /# 0-- )/ %* /# ! & . -1 - "0$ . /# 0. - /#-*0"# /# %* .+ $!$/$*) +-* .. # ! & +-* .. .#*2) $) $" "$). 2$/# /# 0. . ' /$)" !$' /* +-$)/ *) .+ $!$ +-$)/ - # sprint +-*8 "-( 0. . /# ) /2*-& *(+0/$)" . -1$ . /* *)) / /* /# . -1 - ) .& !*- '$./ *! 1'$ *+/$*). # ! & . -1 - 3 0/ . /# '"*-$/#( .#*2) $) $" ) - /0-). '$./ *! 1'$ *+/$*). /* /# '$ )/ # sprint +-*"-( /# ) )8 ' . /# 0. - /* . ' / *)'4 /# *+/$*). - /0-) 4 /# ! & . -1 - $.''*2$)" 4 $(($)" . ' /$*). *) /# ( )0 */# - *+/$*). /* /# 0. - LAN Feedback Server Printer File and Printer User Options List Sprint Network Computing Services File Get Printer Type Get File Type Build Pipeline Copies, Columns, Orientation Return Options # ! & . -1 /$*) ) / !'*2 +-$' 2' //8&- *0-)' %&)%$( )) &&". )% +$ &'$) % ' *$)%$ % $%) %$". ) )') &'$)' *) "(% $. ")'( )) #. &'%0 (( ) % $ ) (#&"() ()*)%$ " ,%( ).& #)( ) &'$)' ).& $ ($) ,)%*) $. ")'$ $ )( ( ) () % +" %&)%$( ,"" *$)%$ % ) &.(" )*'( % ) &'$)' (* ( *&"- %' &&' )'. (")%$ +$ $ ) ( $ , ) " ).& #)( ) &'$)' ")'( $ $(') )% &'%'# (%# &'&'%(($ %' %'#))$ %' -#&" %()'&) %*#$) $ &(( )'%* ")' )) &"( #%' )$ %$ "%" & %$ &.(" & ''$) &'%#&*)( ) ")'( )) ,"" *( )% &'%(( % ( $%'#)%$ ( )$ *( )% -)') ) (*&&%') %&)%$( '%# %$ % ) "( %$)$$ ) % &'%(($ $ ! '*"( ) ( )( () % %&)%$( )) ) *(' (( $ ) '&" *(' $)' "%$ ,) %&)%$ ( ) +"* )) )% )) %&)%$ ")' &'%(($ ) % #*() %) $ %&)%$ $ +"* (%*' % ) +"* %#( '%# %$ % )' "%)%$( ) *(' ) &'$)' %$*')%$ " %' ) ")' $ ($$ %'' %' -#&" ) *(' (&( $ %&)%$ $ +"* )( &' ( &(( )% ) ")' )',( +"* -()( $ ) %$*')%$ " ) ( *( $"". $ %&)%$ $ +"* ' $%) &(( )% ")' ) ")' *(( &'" ,"))0!' %*'$" *")0$ *") +"* %' ) %&)%$ $ )( ,. ) 0 +%' % ")' ( %$)'%"" '() . ) *(' )$ ) (.(0 )# #$()')%' + ) %$*')%$ " $ $"". ) &'%'##' $ &'%"# ,) %&)%$( ( )) )' ( $% *$ $#$ (# ,% ")'( #. &'%+ ) (# *$)%$"). $ *( '$) ()'$( )% $%) $ %&)%$ ''$) '((( )( . &'%+$ ) %&)%$( " )% "( ")' %&)%$ $#( )% () % $#( $ . ''$) ''$) &'%+( %,' ,) '%*() &'$)$ (%"*)%$ ('( $ ' $ '%& $. %,' % ) )% $. &'$)' $ *( ) ''$) '&" *(' $)'0 )% %$)'%" ) &'$)$ &'%(( '&" *(' $)'0 '(( *(' '*()')%$ &'%+$ $ (.0)%0*( &'$)$ $)' $)""$) ('+' "%,'( ) (.()# #$()')%$ *'$ . "#$)$ )()'%& "*'( $ &'%+$ ) "-"). )% *()%#/ &'$)'( +%' PostScript is a trademark of Adobe Systems Incorporated which may be registered in certain jurisdictions. HP-UX is based on and is compatible with UNIX System Laboratories’ UNIX* operating system. It also complies with X/Open’s* XPG3, POSIX 1003.1 and SVID2 interface specifications. UNIX is a registered trademark of UNIX System Laboratories Inc. in the U.S.A. and other countries. X/Open is a trademark of X/Open Company Limited in the UK and other countries.