2 Replies Latest reply on Jul 23, 2010 11:11 PM by RidNath

    Problem: Exporting to tagged text

    RidNath Level 1

      Hi All,

       

      When I am try to export the indd files to tagged text format it shows following errors while using the below script.

       

      kindly advice me where is the problem appears.

      Picture 2.png

      Picture 3.png

      //ExportAllText.jsx
      //An InDesign CS3 JavaScript
      //
      //Exports all of the text in the active document as a single
      //text file. To do this, the script will create a new document,
      //combine the stories in the new document using export/import,
      //and then export the text from the new document.
      if(app.documents.length != 0){
      if(app.documents.item(0).stories.length != 0){
      myGetFileName(app.documents.item(0).name);
      }
      }
      function myGetFileName(myDocumentName){
      var myFilePath = File.saveDialog("Save Exported File As:");
      if(myFilePath != null){
      myDisplayDialog(myDocumentName, myFilePath);
      }
      }
      function myDisplayDialog(myDocumentName, myFilePath){
      //Need to get export format, story separator.
      var myExportFormats = ["Text Only", "Tagged Text", "RTF"];
      var myDialog = app.dialogs.add({name:"ExportAllStories"});
      with(myDialog.dialogColumns.add()){a
      with(dialogRows.add()){
      with(dialogColumns.add()){
      var myExportFormatDropdown = dropdowns.add({stringList:myExportFormats, selectedIndex:0});
      }
      }
      with(dialogRows.add()){
      var myAddSeparatorCheckbox = checkboxControls.add({staticLabel:"Add separator line", checkedState:true});
      }
      }
      var myResult = myDialog.show();
      if(myResult == true){
      var myExportFormat = myExportFormats[myExportFormatDropdown.selectedIndex];
      var myAddSeparator = myAddSeparatorCheckbox.checkedState;
      myDialog.destroy();
      myExportAllText(myDocumentName, myFilePath, myExportFormat, myAddSeparator);
      }
      else{
      myDialog.destroy();
      }
      }
      function myExportAllText(myDocumentName, myFilePath, myExportFormat, myAddSeparator){
      var myStory;
      var myTempFolder = Folder.temp;
      var myTempFile = File(myTempFolder + "/tempTextFile.txt");
      var myNewDocument = app.documents.add();
      var myDocument = app.documents.item(myDocumentName);
      var myTextFrame = myNewDocument.pages.item(0).textFrames.add({geometricBounds:myGetBounds(myNewDocument, myNewDocument.pages.item(0))});
      var myNewStory = myTextFrame.parentStory;
      for(myCounter = 0; myCounter < myDocument.stories.length; myCounter++){
      myStory = myDocument.stories.item(myCounter);
      //Export the story as tagged text.
      myStory.exportFile(ExportFormat.taggedText, myTempFile);
      //Import (place) the file at the end of the temporary story.
      myNewStory.insertionPoints.item(-1).place(myTempFile);
      //If the imported text did not end with a return, enter a return
      //to keep the stories from running together.
      if(myCounter != myDocument.stories.length -1){
      if(myNewStory.characters.item(-1).contents != "\r"){
      myNewStory.insertionPoints.item(-1).contents = "\r";
      }
      if(myAddSeparator == true){
      myNewStory.insertionPoints.item(-1).contents = "----------------------------------------\r";
      }
      }
      }
      switch(myExportFormat){
      case "Text Only":
      myFormat = ExportFormat.textType;
      myExtension = ".txt"
      break;
      case "RTF":
      myFormat = ExportFormat.RTF;
      myExtension = ".rtf"
      break;
      case "Tagged Text":
      myFormat = ExportFormat.taggedText;
      myExtension = ".txt"
      break;
      }
      myNewStory.exportFile(myFormat, File(myFilePath));
      myNewDocument.close(SaveOptions.no);
      myTempFile.remove();
      }
      function myGetBounds(myDocument, myPage){
      var myPageWidth = myDocument.documentPreferences.pageWidth;
      var myPageHeight = myDocument.documentPreferences.pageHeight
      if(myPage.side == PageSideOptions.leftHand){
      var myX2 = myPage.marginPreferences.left;
      var myX1 = myPage.marginPreferences.right;
      }
      else{
      var myX1 = myPage.marginPreferences.left;
      var myX2 = myPage.marginPreferences.right;
      }
      var myY1 = myPage.marginPreferences.top;
      var myX2 = myPageWidth - myX2;
      var myY2 = myPageHeight - myPage.marginPreferences.bottom;
      return [myY1, myX1, myY2, myX2];
      }

      thanks