Как ИСКЛЮЧИТЬ элементы MasterPage при массовом экспорте всех текстовых фреймов - PullRequest
0 голосов
/ 21 января 2019

Когда я экспортирую все текстовые фреймы из файла, сценарий видит текстовые фреймы на главной странице, портит вычисления и выдает ошибку в конце, потому что эти фреймы заблокированы и не могут быть экспортированы.

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")

1 Ответ

0 голосов
/ 06 февраля 2019

Это будет перебирать страницы и каждый текстовый фрейм на каждой странице.Текстовые фреймы из мастер-страниц будут игнорироваться.

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);
          }

    }
...