27 Replies Latest reply on Aug 27, 2008 5:44 PM by (mmedeiros)

    INDESIGN TEMPLATE INSERT DATE  CS3 PROMBLEM

      I have a indesign template with a text box that is filled by the script - The date looks like this -

      Friday, August 22, 2008

      The script worked perfect in CS2 when I upgraded to CS3 it no longer works???? Not sure about this one????

      ------------------------------------
      BELOW IS THE ERROR I'M GETTING
      ------------------------------------

      JavaScript Error!

      Error Number: 24
      Error String: aDoc.search is not a function
      Line:29
      Source: aDoc.search("", false, false, dateString,{appliedCharacterStyle:cStyleName});

      ------------------------------------

      --------------------------------------------------

      //DESCRIPTION: Use to insert date/time into document.

      if (app.documents.length == 0) { exit() }
      insertDTs(app.documents[0]);

      function insertDTs(aDoc) {
      var curPrefs = aDoc.characterStyles[0].extractLabel("dtprefs");
      if (curPrefs == "") {
      // Doc has no prefs; use saved prefs
      curPrefs = getCurPrefs(File(getScriptPath().absoluteURI.replace(/Insert\.jsx/, "Prefs.txt")));
      } // end if curPrefs
      var prefParts = curPrefs.split("\n");
      if (prefParts[2] != "[None]") {
      insertIt(aDoc, prefParts[0], prefParts[2]);
      }
      if (prefParts[3] != "[None]") {
      insertIt(aDoc, prefParts[1], prefParts[3]);
      }

      function insertIt(aDoc, formString, cStyleName) {
      var formStrings= ["Day, Month, Year"]
      var theFuncs = [dayMonthYear]
      var charStyleStrings = aDoc.characterStyles.everyItem().name
      if (indexOf(charStyleStrings, cStyleName) < 1) { return } // style not found or is No Style
      var func = indexOf(formStrings, formString);
      if (func < 0) { return } // requested form not recognized
      var dateString = theFuncs[func](new Date());
      aDoc.search("", false, false, dateString, {appliedCharacterStyle:cStyleName});
      } // end insertIt

      function dayMonthYear(date) {
      date.setDate(date.getDate()+1);
      // returns dayName, monthName date, year
      var myDateString = date.toLocaleDateString();
      myParts = myDateString.split(" 0");
      if (myParts.length != 1) {
      myDateString = myParts[0] + " " +myParts[1];
      }
      return myDateString.slice(0,-5) + "," + myDateString.slice(-5);

      }


      function indexOf(array, find,offs) {
      for( var i = offs == undefined ? 0 : offs; array.length > i; i++ ) {
      if( array[i]==find ) {return i}
      }
      return -1;
      }

      function getScriptPath() {
      // This function returns the path to the active script, even when running ESTK
      try {
      return app.activeScript;
      } catch(e) {
      return File(e.fileName);
      } // end try
      } // end getScriptPath

      } // end insertDTs

      --------------------------------------------------