Error: limitcheck

Explorer ,
May 13, 2011 May 13, 2011

Copy link to clipboard

Copied

I created postscript program to read and generate PDFD from line data stream

the PS routine just read the file from line one till the end , format and output the line .

It works well with file with 1000 up to 4,000  and suddenly when I encounter large file - up to 20,000 pages I had this error by distiller

Error: limitcheck; OffendingCommand: def

def  is the postscript part used as /VAR  xxx def    etc

So it is built in PS command.

Why suddenly it is not accepted !!

I split the large  files into two files and both ripped correct and the PDF generated by distiller.

I touhgt it is memory problem but I jhave 4 GB of ram!! and perhaps some internal memory allocation of PS !!!

Regards

Dr. Adam.

TOPICS
Programming

Views

5.7K

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
May 13, 2011 May 13, 2011

Copy link to clipboard

Copied

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
May 13, 2011 May 13, 2011

Copy link to clipboard

Copied

Unless you have a very old version of Distiller, you should not find any file size limitation at 2GB or 4GB.

     - Dov

- Dov Isaacs, former Adobe Principal Scientist (April 30, 1990 - May 30, 2021)

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
May 13, 2011 May 13, 2011

Copy link to clipboard

Copied

Dov,

I am running Distiller Server 6.0.1 - Is there a file size limitation with it?

- Marvin

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
May 13, 2011 May 13, 2011

Copy link to clipboard

Copied

Distiller 6? In our book, that is an ancient version. I believe all Acrobat components had file size limitations removed in Acrobat 7.

     - Dov

- Dov Isaacs, former Adobe Principal Scientist (April 30, 1990 - May 30, 2021)

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
May 13, 2011 May 13, 2011

Copy link to clipboard

Copied

Dov,

Does Adobe offer a "Distiller Server" license beyond 6.0.1? The key word here is "Server".

- Marvin

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
May 13, 2011 May 13, 2011

Copy link to clipboard

Copied

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

- Dov Isaacs, former Adobe Principal Scientist (April 30, 1990 - May 30, 2021)

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
May 13, 2011 May 13, 2011

Copy link to clipboard

Copied

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
May 13, 2011 May 13, 2011

Copy link to clipboard

Copied

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
May 13, 2011 May 13, 2011

Copy link to clipboard

Copied

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.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
May 13, 2011 May 13, 2011

Copy link to clipboard

Copied

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

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
May 13, 2011 May 13, 2011

Copy link to clipboard

Copied

LATEST

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.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines