簡體   English   中英

在設計腳本中正確轉義“&”

[英]Proper escape for “&” in an indesign script

我有一個用於indesign的腳本,該腳本用用戶指定的文本替換了文本元素中的某些文本。 有時,該文本包含& ,並且每次出現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);  
    }

嘗試轉義(“ Q&A”)。 參見: https : //www.w3schools.com/JSREF/jsref_escape.asp

 document.write(escape("Q&A")); 

修改了indesign文檔的字體和頁面布局后,該錯誤不再發生。 不能說是什么原因造成的,但是無論發生什么,我們都進行了更改。 感謝您的建議!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM