Quantcast
Channel: Adobe Community : Popular Discussions - Illustrator Scripting
Viewing all articles
Browse latest Browse all 12845

Batch insert filename in textpath script crashes Illustrator

$
0
0

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!


Viewing all articles
Browse latest Browse all 12845

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>