2017-08-10 34 views
0

我有一个用于插入的脚本,用用户指定的文本替换文本元素中的一些文本。有时候,该文本包含&,并且每当有这个问题时,这个indesign脚本就会被拧紧。我试过所有常见的转义字符"/,\,^,..."等,但它们不起作用。 有趣的是,如果我通过indesign接口在文本中添加&符号替换对话框,我不需要转义它。任何人都知道如何解决这个问题?我试过Google搜索,并没有任何相关的事情出现。正确转义为“&”在一个不确定的脚本

//@target indesign 
    //open template 
    var template = app.open("/Users/pad/Desktop/PAD Master Templates/B-MASTER.indd"); 
    main(); 
    function main(){ 
     //hide all layers 
     var doc = app.activeDocument; 
     for (var i = 0; i < doc.layers.length; i++) { 
      var item = doc.layers[i]; 
      item.visible = false; 
     } 

    //show appropriate design layer 
    var padFont = doc.layers.item("Font"); 
    padFont.visible = true; 
    var padArt = doc.layers.item("Artwork"); 
    padArt.visible = true; 
    var links = doc.links; 
    var link; 
    var update = false; 
    for (var i = links.length-1; i >= 0; i--) { 
     link = links[i]; 
     if (link.name == 'some_design.eps') { 
      newLink = new File(link.filePath.replace('some_design.eps', "new_design.eps")); 
      update = true; 
     }   
     if (update == true && newLink.exists) { 
      link.relink(newLink); 
      try { 
       link.update(); 
      } 
      catch(err) {}     
     }  
    } 
     //Find and replace text. 
     app.findTextPreferences = NothingEnum.NOTHING; 
     app.changeTextPreferences = NothingEnum.NOTHING; 
     app.findChangeTextOptions.caseSensitive = true; 
     app.findChangeTextOptions.includeFootnotes = false; 
     app.findChangeTextOptions.includeHiddenLayers = false; 
     app.findChangeTextOptions.includeLockedLayersForFind = false; 
     app.findChangeTextOptions.includeLockedStoriesForFind = false; 
     app.findChangeTextOptions.includeMasterPages = false; 
     app.findChangeTextOptions.wholeWord = false; 
     app.findTextPreferences.findWhat = "line 1"; 


//this is a line where I need to escape the "&" 

     app.changeTextPreferences.changeTo = "R&T"; 
     doc.changeText(); 
     app.findTextPreferences.findWhat = "line 2"; 


//this is a line where I need to escape the "&" 


     app.changeTextPreferences.changeTo = "Q&A"; 
     doc.changeText(); 
     //Exprt as jpeg 
     doc.exportFile(ExportFormat.JPG, "/path/name.jpg"); 
     //Close the file without saving. 
     doc.close (SaveOptions.NO); 
    } 
+0

'&'? (我不知道) – Bergi

回答

0

与InDesign文档的字体和页面布局摆弄后,该错误不再发生。不能说是什么原因造成的,但是我们改变了所发生的一切。感谢您的建议!