Showing results for 
Search instead for 
Did you mean: 
3 Replies

Re: Postscript: know what I need, no clue how to do it

0 Kudos

Re: Postscript: know what I need, no clue how to do it

It's been 20 years or more since I've coded any PS files so I can't help with your code. However, if you understand PS but not Xerox, I suggest you take a look at the PDL guide for the printer model you are working with as it will show you all of the available PCL and PS commands. Here is a link to one of the guides for our 8100 series,

The PDL guide shows that  <</MediaPosition int >> is the command to use to call the tray. With 1 - 6 being the tray number. So if you want to pull from tray four it should be <</MediaPosition 4 >>

I'm sure wilth a little trial and error, you'll be able to get this to work.


Community Manager
Community Manager

Re: Postscript: know what I need, no clue how to do it

Hello Xamaa,

This is something you would need to speak with a Network Specialist regarding: 1-800-821-2797.

Community Manager

Be sure to click Kudos for those who have helped you.
Select Accept as Solution for posts that have helped to solve your issue(s)!
New Member
New Member

Postscript: know what I need, no clue how to do it

Product Name: Other - specify product in post
Operating System: Windows 10

We create printfiles by gluing ps and eps files together and overlay data to print customer forms.. and then send those files to the printer.

As Printers have changes we have to adjust the scripts.. We are now looking at XEROX printers and they are very different animal..

We've built a procedure that sets the tray to print from and it needs a change..

/Pagedv exch def
#ifdef :OK431
/DriverOps /ProcSet 2 copy resourcestatus{pop pop findresource Pagedv exch /setinputslot get exec}{pop pop}ifelse globaldict /OK@_CustTray 0 put
#elif :O4600
/PageSub Pagedv 1 sub def currentpagedevice /InputAttributes get PageSub known{ Pagedv statusdict /setpapertray 2 copy known{ get {exec}stopped {pop}{globaldict /OK@_CustTray PageSub put}ifelse (<<) cvx exec /Policies (<<) cvx exec /PageSize 7 (>>) cvx
exec (>>) cvx exec setpagedevice }{pop pop pop}ifelse }if
#elif :HPPRO
currentpagedevice /InputAttributes get Pagedv <</MediaPosition Pagedv >> setpagedevice
<<currentpagedevice /InputAttributes get Pagedv get {}forall /InputAttributes << /Priority [Pagedv] >> >> setpagedevice

Xerox doesn't use a number according to the PPD it uses a string (ie Tray-1)

Pagedv is an integer so I need to append (concatenate) the literal "Tray-" onto it before we return it to the caller 

> #elif :XRX
> currentpagedevice /InputAttributes get Pagedv << (Tray-Pagedv) xerox$MediaInputTray >> setpagedevice

I have a concatenate procedure I'm just not sure how to use it in this case.

/concatstrings % (a) (b) -> (ab)
{ exch dup length
2 index length add string
dup dup 4 2 roll copy length
4 -1 roll putinterval
} bind def


Labels (1)
0 Kudos