11 Replies Latest reply: May 13, 2011 10:20 PM by Dr.Adam RSS

    Error: limitcheck

    Dr.Adam Community Member

      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.

       

       

       

        • 1. Re: Error: limitcheck
          Mr. Horton Community Member

          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 Employee Hosts

            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 Community Member

              Dov,

               

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

               

              - Marvin

              • 4. Re: Error: limitcheck
                Dov Isaacs Employee Hosts

                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 Community Member

                  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 Employee Hosts

                    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 Community Member

                      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 Community Member

                        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 Community Member

                          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 Community Member

                            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 Community Member

                              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.