Highlighted

Batch create .article files?

jeffreyp6484616

25-08-2015

Since you can't batch update the files in a folio any longer from within InDesign, is it possible to batch create .article files, preferably from the book palate? (Export as PDF doesn't give the option, at least in CC 2014.)

Replies

Highlighted

Vintage-uk

Employee

25-08-2015

Hi,

You could do this via InDesign scripting.

This sample script will ask you to select a folder and will then generate .article files for all the Indd files in that folder.

You may need to modify this script for your environment and setup.

var srcFolder = Folder.selectDialog("Please select path to the InDesign files"); // get source folder

srcFolderContents = srcFolder.getFiles("*.indd"); // get a list indd file

for (var i = 0, n = srcFolderContents.length; i != n; i=i+1) // for each indd file create an article

{

   var articleName = srcFolder + "/" + srcFolderContents[i].name.replace(".indd",".article");

   var doc = app.open(srcFolderContents[i], false);

   var dpsArticleP= [

    [ "assetformat", "pdf"],           // pdf, png, jpg or auto (auto chooses between png and jpg)

    [ "showprogressbar", false ]     

       ];

    app.exportDpsArticle (File(articleName), doc, dpsArticleP); // export article

    doc.close;

}

Highlighted

jeffreyp6484616

25-08-2015

Thanks. I'll give that a shot.

Of course, that means the DPS Classic file organization--one file per folder--doesn't exactly work with this...

Highlighted

Neil_Enns_-_Ado

Employee

25-08-2015

Challenge accepted Here's a modified version of Rupert's script that loops through the first level of subfolders in your selected starting folder and generates a .article file from the .indd files inside those folders. The resulting .article file is saved into the subfolder.

var srcFolder = Folder.selectDialog("Please select path to the InDesign files"); // get source folder

srcSubfolders = srcFolder.getFiles(onlyFolders);

for (var i = 0, n = srcSubfolders.length; i != n; i=i+1)
{
    srcFolderContents = srcSubfolders[i].getFiles("*.indd"); // get a list indd file
    for (var j = 0, m = srcFolderContents.length; j != m; j=j+1) // for each indd file create an article
    {
       var articleName = srcFolder + "/" + srcSubfolders[i].name + "/" + srcFolderContents[j].name.replace(".indd",".article");
       var doc = app.open(srcFolderContents[j], false);
       var dpsArticleP= [
        [ "assetformat", "pdf"],           // pdf, png, jpg or auto (auto chooses between png and jpg)
        [ "showprogressbar", false ]     
           ];

        app.exportDpsArticle (File(articleName), doc, dpsArticleP); // export article
        doc.close;
    }
}

function onlyFolders(f) {
  if (f.constructor.name == "File") {
    return false;
  } else {
    return true;
  }

Neil

Highlighted

rperez_bonnier

26-08-2015

Thanks Neil!

I'm testing as I type this and it seems to be working!

The only thing I'm noticing at the moment is that all the indd files have lock files (as they do when a user opens the file) and the lock files are remaining in place while the script continues to loop through the rest of the folders.

At the moment I don't know if this is good or bad. Just something curious. Do you think it's leaving the files open in the background until the loop ends? I see the doc.close; statement so it should be closing them.

Just wondering if it is something that can be tweaked or if it's nothing to worry about. I'm testing on CS6 BTW if that helps.

Highlighted

francisconeto

26-08-2015

Don't work in Indesign 2015

Give error in this line:

        app.exportDpsArticle (File(articleName), doc, dpsArticleP); // export article

Highlighted

rperez_bonnier

26-08-2015

The script looped successfully and created a corresponding .article file for every inDesign file using CS6.

However the lock files remain and:

- If a user on the same computer that ran the script double clicks one of the inDesign files, the file opens normally--then manually closing the inDesign file will cause the lock file to go away.

- If a user on a computer other than the computer that ran the script double clicks one of the inDesign files (which are on a local server), the inDesign file will not open (as expected) and we get the message regarding someone else using the file.

The copy of inDesign on the "source" computer does not show any open documents.

Almost there! This script will be very very helpful to many folks once it is tweaked.

Highlighted

NMarroquin

Employee

26-08-2015

The lock file issue is because the doc isn't actually closed. Change line 14 from "doc.close;" to "doc.close();" and that will clear that up.

franciscon89715259‌ the script worked fine in with my install. Are you certain the DPS plug-ins are installed?

Highlighted

francisconeto

26-08-2015

Hi Nathan

With Indesign2014, work perfect

In 2015, give error.

Screen Shot 2015-08-26 at 16.50.35.png

And how can i be sure that the plugins is installed correctly?