0 Replies Latest reply on Jul 26, 2014 2:32 AM by hasvi

    How to 'import xml' in my script

    hasvi Level 1

      Hi All,

       

      Below "Script 1" is working fine, now I want to call the '.xml' file which was placed in Template folder(see script code).

      How to import xml in 'New.indd' file("Line 27:-->var source = File(path + '/New.indd')".

       

      Please add import xml code in 'Script 1"

       

      Script 1:

      var path = Folder.selectDialog ("Select folder"); 
      if(path==null) 
      { 
      exit(); 
      }
        
      var files = path.getFiles(/\.(indd?|indt?)$/i);
      
      
      if(files==0)   
      {
        alert("There is no 'indd'/'indt' file in your folder");
        exit();
      }
      
      app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT; 
      try 
      { 
      myDocument = app.open(new File(files)); 
      MasterpageScriptLabel();
      TableCellStyleCreation(); 
      
      
      myDocument.save(new File(path + "/New.indd")); 
      
      
      var folder = new Folder(path + '/Updated_Folder'); 
      folder.create(); 
      myDocument.close(); 
      var source = File(path + '/New.indd'); 
      var dest = new File(folder + '/New.indd'); 
      source.copy(dest); 
      source.remove(); 
      } 
      catch(e) 
      { 
      alert ("Your folder permissible only one file of 'INDD' or 'INDT' file"); 
      exit(); 
      } 
      
             
      function MasterpageScriptLabel()
      {
      var myDoc=app.activeDocument;
      var myXMLElement=myDoc.xmlElements[0];
      if(myXMLElement.isValid)
      {
          var myParentStory=myXMLElement.parentStory;
          var myTextContainers=myParentStory.textContainers;
              
          for(var i=0;i<myTextContainers.length;i++)
          {
              myTextContainers[i].label="S_TF";
              }
           }
      
      
      
      
      var myDoc=app.activeDocument;
      var mspreads=myDoc.masterSpreads;
      for (i=0;i<mspreads.length;i++)
      {
      if(mspreads[i].textFrames.length>1)
      {
          var txfmlength=mspreads[i].textFrames;
          for (j=0;j<txfmlength.length;j++)
          {
              if(txfmlength[j].nextTextFrame!=null)
              {txfmlength[j].label="S_TF";}
              if(txfmlength[j].previousTextFrame!=null)
              {txfmlength[j].label="S_TF";}
              }
          }
      }
      }
      
      
      function TableCellStyleCreation()
      {
          var cestyle = myDocument.cellStyles;
          var array = ["TBL_COLH", "TBL_BODY"];
          var i = array.length;
          while(i--)
          {
                  try{
                      var style = myDocument.cellStyles.add();
                      style.name = array[i++];
                  }
                  catch(e)
                  {
                      style.remove();
                      alert("'" + array[i-1] + "'"+ " Already exists in the document.")
                      }
                  i--;
              }
      }
      
      
      
      
      main();
      function main(){
            var progress_win = new Window ("palette");
      var progress = progress_bar(progress_win, 2, 'Processing ... Completed');
          delay(1);
            progress.value = progress.value+1;
          delay(1);
          progress.parent.close();
          }
      // delay function found here
      //found here http://www.wer-weiss-was.de/theme157/article1143593.html
        function delay(prmSec){
        prmSec *= 1000;
        var eDate = null;
        var eMsec = 0;
        var sDate = new Date();
        var sMsec = sDate.getTime();
        do {
        eDate = new Date();
        eMsec = eDate.getTime();
        } while ((eMsec-sMsec)<prmSec);
        }
      /**
      * Taken from ScriptUI by Peter Kahrel
      *
      * @param  {Palette} w    the palette the progress is shown on
      * @param  {[type]} stop [description]
      * @return {[type]}      [description]
      */
      function progress_bar (w, stop, labeltext) {
      var txt = w.add('statictext',undefined,labeltext);
      var pbar = w.add ("progressbar", undefined, 1, stop);
      pbar.preferredSize = [300,20];
      w.show ();
      return pbar;
      }
      
      

       

      by

      hasvi