首页 > 解决方案 > 批量导出所有文本框架时如何排除 MasterPage 项目

问题描述

当我从文件中导出所有文本框架时,脚本会看到母版页中的文本框架并弄乱计算并在最后给出错误,因为这些框架被锁定并且无法导出。

var myDoc = app.activeDocument;
var myFolder = myDoc.filePath;
var myImage = myDoc.textFrames;

var JPEGFolder = new Folder(myFolder+"/"+app.activeDocument.name+"_"+"JPEG");
if (!JPEGFolder.exists)
        JPEGFolder.create();  

var PromFolder = new Folder(myFolder+"/"+app.activeDocument.name+"_"+"Promethean");
if (!PromFolder.exists)
PromFolder.create();

var ToplamSoru = 0 ;

for (var i=0; myImage.length>i; i++)
    {
            app.select(myImage[i]);
            ToplamSoru = ToplamSoru +1;
    }

var Cevapli = (ToplamSoru/2-4);
alert(Cevapli);

app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.maximum;
app.jpegExportPreferences.exportResolution = 150;

for (var p=0; p < myDoc.pages.length; p++)
{
        for (var i=0; myImage.length>i; i++)
            {
                if ( i <= Cevapli -1){
                    if( i < 9)
                        {
                        app.select(myImage[i]);
                        var SoruNo  = myImage[i].contents.substring(1,2);
                        app.selection[0].exportFile(ExportFormat.JPG, File(JPEGFolder+"/"+SoruNo+".JPEG"), false);
                        }
                    else
                        {
                        app.select(myImage[i]);
                        var SoruNo  = myImage[i].contents.substring(1,3);
                        app.selection[0].exportFile(ExportFormat.JPG, File(JPEGFolder+"/"+SoruNo+".JPEG"), false);
                        }
                    }
                else{
                    //alert(Cevapli);
                    if( i < 9 + Cevapli+1) 
                        {
                        app.select(myImage[i]);
                        var SoruNo  = myImage[i].contents.substring(1,2);
                        app.selection[0].exportFile(ExportFormat.JPG, File(PromFolder+"/"+SoruNo+".JPEG"), false);
                        }
                    else
                        {
                        app.select(myImage[i]);
                        var SoruNo  = myImage[i].contents.substring(1,3);
                        app.selection[0].exportFile(ExportFormat.JPG, File(PromFolder+"/"+SoruNo+".JPEG"), false);
                        }
                    }

            }
        }
alert ("Done")

基本上,当我运行代码时,一切正常并按需要导出,但是当母版页中的文本框架数量超过固定数量时,它将再次被搞砸。

var Cevapli = (ToplamSoru/2-4);

是我减少变量值的地方,因为有 2 个母版页有 4 个不同的锁定文本框。

我怎样才能让代码完全排除母版页中的项目?

下面的工作代码:

var myDoc = app.activeDocument;
var myFolder = myDoc.filePath;
var TotalQuestions = 0 ;
var JPEGFolder = new Folder(myFolder+"/"+app.activeDocument.name+"_"+"JPEG");
var PromFolder = new Folder(myFolder+"/"+app.activeDocument.name+"_"+"Promethean");
var TotalPages = 0;
var Extension = prompt("Başına ne koyalım?","fen-");

if (!JPEGFolder.exists)
JPEGFolder.create();  

if (!PromFolder.exists)
PromFolder.create();

for (i=0; i< app.documents[0].pages.length; i++)
{
      TotalPages = TotalPages+1;
      for (ii=0; ii< app.documents[0].pages[i].textFrames.length; ii++)
      {
              app.select(app.documents[0].pages[i].textFrames[ii]);
              TotalQuestions = TotalQuestions +1;
        }
}
//alert(ToplamSoru);
var Cevapli = TotalPages/2;
//alert(Cevapli);

app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.maximum;
app.jpegExportPreferences.exportResolution = 72;
var result = confirm ("Devam?", false,"EU Thingie");

    if(result ==true){
        for (i=0; i < app.documents[0].pages.length; i++){
            // CEVAPLI //
            if(i < Cevapli){
            //alert(i+" "+ii+" IF");
                for (ii=0; ii < app.documents[0].pages[i].textFrames.length; ii++){
                var QID  = app.documents[0].pages[i].textFrames[ii].contents.substring(1,3);
                    if( QID < 10){
                        app.select(app.documents[0].pages[i].textFrames[ii]);
                        var Less  = app.documents[0].pages[i].textFrames[ii].contents.substring(1,2);
                        app.selection[0].exportFile(ExportFormat.JPG, File(PromFolder+"/"+Extension+Less+".JPEG"), false);
                    }
                    else{
                        app.select(app.documents[0].pages[i].textFrames[ii]);
                        var More  = app.documents[0].pages[i].textFrames[ii].contents.substring(1,3);
                        app.selection[0].exportFile(ExportFormat.JPG, File(PromFolder+"/"+Extension+More+".JPEG"), false)                        
                    }    
                }
            }
                // CEVAPSIZ //
            else{
                //alert(i+" "+ii+" ELSE");
                for (ii=0; ii < app.documents[0].pages[i].textFrames.length; ii++){
                    var QID  = app.documents[0].pages[i].textFrames[ii].contents.substring(1,3);
                    if( QID < 10){
                        app.select(app.documents[0].pages[i].textFrames[ii]);
                        var Less  = app.documents[0].pages[i].textFrames[ii].contents.substring(1,2);
                        app.selection[0].exportFile(ExportFormat.JPG, File(JPEGFolder+"/"+Extension+Less+".JPEG"), false);
                    }
                    else{
                        app.select(app.documents[0].pages[i].textFrames[ii]);
                        var More  = app.documents[0].pages[i].textFrames[ii].contents.substring(1,3);
                        app.selection[0].exportFile(ExportFormat.JPG, File(JPEGFolder+"/"+Extension+More+".JPEG"), false)   

                    }

                }
            }
        }
    }
//alert ("Done")

标签: javascriptadobe-indesign

解决方案


这将遍历页面和每个页面上的每个 textFrame。母版页中的文本框架将被忽略。

for (i=0; i< app.documents[0].pages.length; i++){

      for (ii=0; ii< app.documents[0].pages[i].textFrames.length; ii++){

              $.writeln(app.documents[0].pages[i].textFrames[ii].contents);
          }

    }

推荐阅读