-
1. Re: Error: limitcheck
Mr. Horton May 13, 2011 1:04 PM (in response to Dr.Adam)Check the following:
65,535 is the Maximum capacity of a dictionary, in key-value pairs (this seems generous for a well coded PostScript file) - Make sure you don't have a recursive or looping operator definition in your input file.
There is an input file size limit for Distiller and I think it is either 2 or 4 GBytes - Make sure your input file is smaller than the limit.
- Marvin
-
2. Re: Error: limitcheck
Dov Isaacs May 13, 2011 1:08 PM (in response to Mr. Horton)Unless you have a very old version of Distiller, you should not find any file size limitation at 2GB or 4GB.
- Dov
-
3. Re: Error: limitcheck
Mr. Horton May 13, 2011 1:12 PM (in response to Dov Isaacs)Dov,
I am running Distiller Server 6.0.1 - Is there a file size limitation with it?
- Marvin
-
4. Re: Error: limitcheck
Dov Isaacs May 13, 2011 1:19 PM (in response to Mr. Horton)Distiller 6? In our book, that is an ancient version. I believe all Acrobat components had file size limitations removed in Acrobat 7.
- Dov
-
5. Re: Error: limitcheck
Mr. Horton May 13, 2011 1:23 PM (in response to Dov Isaacs)Dov,
Does Adobe offer a "Distiller Server" license beyond 6.0.1? The key word here is "Server".
- Marvin
-
6. Re: Error: limitcheck
Dov Isaacs May 13, 2011 1:41 PM (in response to Mr. Horton)There is Distiller Server 8 (see http://www.adobe.com/products/acrdis/?promoid=DJDVN) which can be licensed. Future development and features for PDF creation via distillation of PostScript on a server will be via the Adobe LiveCycle® PDF Generator ES server product (see <http://www.adobe.com/products/livecycle/pdfgenerator/> for further details).
- Dov
-
7. Re: Error: limitcheck
Dr.Adam May 13, 2011 2:00 PM (in response to Mr. Horton)I run distiller 10
There is one main loop to read each line and format it and the print it .
I even started the loop with clear and end it with cleartomark in order to ensure no leakage in memory
I don't build dictionary for parameters I use the user dictionary and stack !!!
If the error due to the limitation of 65 K dictionary size then it should be the user dictionary and number of variables and procedures saved there !!
If I build several user dictionaries perhaps I can avoid this error ?
Perhaps every time the loop advanced the more variables store into the dictionary !! when it is redfined
for example /VAR1 exch def
if this line executed once per loop , well the same variable - memory space was ovverite or simply additional version and space dedicated to it !! that is a question that might answer why I rich the 65K limitation.
Regards'
Dr. Adam
-
8. Re: Error: limitcheck
Mr. Horton May 13, 2011 2:42 PM (in response to Dr.Adam)Dr. Adams,
The example code you posted - " /VAR exch def" could be the culprit due to the preceding object on the stack, how large or what type of object.
If you are willing to post (or email) a complete set of your processing code it would probably take the guess work out of it.
- Marvin
-
9. Re: Error: limitcheck
Dr.Adam May 13, 2011 8:59 PM (in response to Mr. Horton)here is the main code
{
mark
currentfile 500 string readline
{
/MYLINE exch def'
/COUNTER COUNTER 1 add def
..
...
---
There are many /XXX mmmm def operators
}
{
exit
} ifelse
cleartomark
} loop
If the variable is overwritten more than once e.g /COUNTER'
Would that occupy double space ! or the Entepreter (here distiller V 10x) simply overwrite the value that was before !!! (I tried all options Standard , Press quality etc )
It seems every time I re-write /COUNTER the engine create new variable without removing the older one ! and that's why the the user dictionary run out of space quickly.
-
10. Re: Error: limitcheck
Mr. Horton May 13, 2011 9:46 PM (in response to Dr.Adam)Dr. Adam,
The /MYLINE exch def' has a single quote at the end - is that a typo?
If the same dictionary (userdict) is the current dictionary then the redefinition of an operator should not use more memory unless the definition itself consumes more memory. In your example "/COUNTER COUNTER 1 add def" statement I believe the value of COUNTER is going to use the same memory space for the integer whether the value is 0 or the maximum 2**32 - 1.
If your string length of 500 characters was too short to contain a complete readline including end-of-line chars, then you would get a rangecheck error, so the file you are gettting your data from must not be exceeding this.
Is there a reason that you aren't setting up all your operators in a procedure that is called like this and placed directly in front of the data to parse?:
/ITER {/COUNTER COUNTER 1 add} def
/ProcessStd { {markcurrentfile 500 string readline {/MYLINE exch def ITER}{exit}ifelse cleartomark}loop } def
ProcessStd
......
......
......
...end-of-file
Without seeing if you remapped currentfile it appears that the readline is going to read in "{" first and then "/MYLINE exch def" second, etc. etc., so I would recommend using the example I wrote above instead and see if that fixes the problem.
- Marvin
-
11. Re: Error: limitcheck
Dr.Adam May 13, 2011 10:20 PM (in response to Mr. Horton)yes the quote it is mistyping
Well this is what I expect but I wanted to be sure that PS engine would not double the memory upon definition of the same variable.



