peram@cs.tamu.edu (Suresh B Peram) (03/05/91)
Hi, We have a problem with printing large postscript files on our LPS20 heavy duty laser printer. This particular file was generated and sent to the printer directly by a package called KMS that we use here. The document doesn't get printed and the printer gives out an error message "Dictionary full". The same document gets printed without any problems on other smaller laser printer like the 'Apple laser writer'. Any suggestions regarding how to solve this problem or directions as to where to look for will be greatly appreciated. Thanx in advance Suresh
jj1h+@andrew.cmu.edu (Joseph Jackson) (03/06/91)
After reading some of DEC's PostScript, I've noticed that they are very good about creating their own dictionary before defining a bunch of new entries. This is a good idea for anyone generating PostScript since you never can be sure how much room is going to be left in the default user dictionary when your code runs. On my Apple LaserWriter, the default user dictionary (userdict) has a maximum size of 200 entries with only 25 things being defined by the system in an idle state. DEC's printers may have a smaller userdict or may have more things already defined in it. Print this to get the numbers for your printer: %! 72 720 moveto /Times-Roman findfont 14 scalefont setfont (Max length: ) show userdict maxlength 10 string cvs show ( Current number of entries: ) show userdict length 10 string cvs show showpage Since you're getting a "dictionary full" operator, I'd guess that your application's PostScript code is doing its work in userdict and that the LPS20 has less space available there than does a LaserWriter. If that's turns out to be the problem, perhaps you can modify your application so that it emits "200 dictionary begin" and "end" at the correct points to create and discard the needed work space. Joe Jackson Distributed Workstation Services Carnegie Mellon University Internet: jj1h+@andrew.cmu.edu Bitnet: jj1h+@ANDREW AT&Tnet: (412) 268-8799
woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) (03/06/91)
In article <13024@helios.TAMU.EDU>, peram@cs.tamu.edu (Suresh B Peram) writes: > Hi, > > We have a problem with printing large postscript files > called KMS that we use here. The document doesn't get printed > and the printer gives out an error message "Dictionary full". I'd look at the output file and check the number of entries in it's dictionaries. In addition, I'd load the userdict onto the stack, and then do a length operation on it to see what it's limits are. I have encountered situations with this kind of error, and almost invariably it traces back to the userdict being full. CEXEC code, such as in older fonts etc, puts userdict on the stack first, and within the cexec code, you sometimes have to work around this. I'd also look through the file (grep it or whatever), for all occurances of begin and end, and see what dictionary they are starting and ending. I'd then determine the size of those dictionaries. Cheers Woody