3 Replies Latest reply on Sep 29, 2014 12:46 PM by CarlosCanto

    Batch insert filename in textpath script crashes Illustrator

    J.Liviu

      Hi everyone!

      First off: I am not a programmer. Just playing around with code and trying to get it to work for a specific task:

       

      Here is a script made for the purpose of inserting a text with the file name in over 600 pdf files. This is suppose to work on all files in a selected folder.

       

      The problem: Illustrator crashes.

       

      A first test code worked but after a few edited files Illustrator crashed, so I tried to introduce a delay after each save in order to slow down the batch process.

      $.setTimeout(function () {sourceDoc.close(SaveOptions.SAVECHANGES)}, 1000);

      Unfortunately I did not save the working (almost working ) first test code.

       

      No idea what to do next. The code works if I delete this line: sourceDoc.close(SaveOptions.SAVECHANGES);

       

      Here is the complete script:

       

      var destFolder, sourceFolder, files, fileType, sourceDoc, layers, writeText, finLabel;
      
      // Select the source folder.
      sourceFolder = Folder.selectDialog( 'Select the folder with Illustrator files you want to convert to PNG', '~' );
      
      // If a valid folder is selected
      if ( sourceFolder != null )
      {
      files = new Array();
      fileType = prompt( 'Select type of Illustrator files to you want to process. Eg: *.ai', '*.pdf' );
      
      // Get all files matching the pattern
      files = sourceFolder.getFiles( fileType );
      
      if ( files.length > 0 )
      for ( i = 0; i < files.length; i++ )
      {
          sourceDoc = app.open(files[i]); // returns the document object
          layers = unlock();
          writeText = getFilename();
          finLabel = remText();
          sourceDoc.close(SaveOptions.SAVECHANGES);   //if save command line is deleted the code works   WTF???
          $.setTimeout(function () {sourceDoc.close(SaveOptions.SAVECHANGES)}, 1000); // still crashes using delay ...
      }
      //alert( 'Files are saved as PNG in ' + destFolder );
      
      else
      {
      alert( 'No matching files found' );
      }
      }
      
      function unlock()
      {
         //get the total number of layers in the active document
      doc = app.activeDocument;
      var totalLayers = doc.layers.length;
      
      //looping on layers to create one artboard per layer
      for ( var i = 0 ; i < totalLayers ; i++){
          
          var currentLayer = doc.layers[i];
          
          //We don't want to deal with hidden layers
          if(currentLayer.visible == false) continue;
          
          //Unlock the layer if needed
          currentLayer.locked = false;
      
      }
          }
      
      function getFilename()
      {
      // Write text
      var pointTextRef = app.activeDocument.textFrames.add();
      pointTextRef.contents = app.activeDocument.name + "\n" + "YBS";
      pointTextRef.top = 0;
      pointTextRef.left = 0;
      app.activeDocument.textFrames[0].textRange.characterAttributes.textFont=app.textFonts[31];
          
          }
      
      function remText()
      {
      // This works for search and replace :))))))
      
          var active_doc = app.activeDocument;  
            
          var search_string = /_Template.pdf/gi; // g for global search, remove i to make a case sensitive search  
          var replace_string = '';  
            
          var text_frames = active_doc.textFrames;  
            
          if (text_frames.length > 0)  
          {  
              for (var i = 0 ; i < text_frames.length; i++)  
                {  
                    var this_text_frame = text_frames[i];  
                     var new_string = this_text_frame.contents.replace(search_string, replace_string);  
                       
                     if (new_string != this_text_frame.contents)  
                         {  
                              this_text_frame.contents = new_string;  
                         }  
                }  
          }      
       }
      

       

      Any ideas about what makes Illustrator crash?

      Note: The application crashes after opening the first file.

      Thanks for helping out!