• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Zuweisung Musterseite XML-Element-Knoten

Advocate ,
Dec 16, 2019 Dec 16, 2019

Copy link to clipboard

Copied

Hallo,
ich habe mal wieder ein Problem. Ich möchte Musterseiten anhand von Text zuweisen. Dazu habe ich folgendes Script:

var _dok = app.activeDocument; 
var allPages = _dok.pages; 
 
main() 
 
function main() { 
 
    //Zuordnung Text -> Musterseite 
    var _listMasterpage = [ 
        ["##Musterseite A", "A-Musterseite"], 
        ["##Musterseite B", "B-Musterseite"] 
    ] 
 
    //Schleife durch alle Seiten 
    for (var i = 0; i < allPages.length; i++) { 
        //Alle Seiten durchlaufen und Musterseiten zuweisen, "tf_zuordnung" Bezeichnung des Textrahmen, in dem der zu prüfenden Text steht 
        var curPage = allPages[i]; 
        if (curPage.textFrames.itemByName("tf_zuordnung").isValid) { 
            var tf = curPage.textFrames.itemByName("tf_zuordnung"); 
            var cont = tf.contents.replace(/\r/g, ""); 
            if (cont != 0) { 
                for (var j = 0; j < _listMasterpage.length; j++) { 
                    var curList = _listMasterpage[j][0]; 
                    if (cont == curList) { 
                        alert(cont) 
                        curPage.appliedMaster = _dok.masterSpreads.itemByName(_listMasterpage[j][1]); 
                        break; 
                    } 
                } 
            } 
        } 
    } 
} 

Klappt an sich auch super. Nun kommt aber eine XML ins spiel. Wenn ich in dem Beispiel das Element <test_1> bzw. <test_2> in den TR ziehe, arbeitet das Script, wie es soll.

grafik1.png

Ziehe ich nun <Konten1> in den TR, will er es nicht mehr.

grafik2.png

Hier die Beispieldateien (xml,js,idml)

Danke für die Hilfe.

Viele Grüße
Mario
TOPICS
Scripting

Views

649

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Contributor , Dec 16, 2019 Dec 16, 2019

Hi,

das Szenario, wo du das XML-Tag "Knoten1" auf einen Textrahmen funktioniert nicht, weil hier unsichtbare Steuerzeichen in Spiel kommen. Dadurch enstpricht der Textinhalt des Textrahmens nicht exakt "## Musterseite A" (bzw. B).

Lösungsvorschlag 1:

Wenn es nicht nötig ist, es ganz genau zu nehmen, ändere die Codezeile

 

if (cont == curList) {...}

 

in

 

if (cont.indexOf(curList) != -1) {...}

 

um.

 

Lösungsvorschlag 2:

Wenn aber wirklich nichts außer ##Musterseite A/B im Textrahmen stehen darf, musst du den

...

Votes

Translate

Translate
Contributor ,
Dec 16, 2019 Dec 16, 2019

Copy link to clipboard

Copied

Hi,

das Szenario, wo du das XML-Tag "Knoten1" auf einen Textrahmen funktioniert nicht, weil hier unsichtbare Steuerzeichen in Spiel kommen. Dadurch enstpricht der Textinhalt des Textrahmens nicht exakt "## Musterseite A" (bzw. B).

Lösungsvorschlag 1:

Wenn es nicht nötig ist, es ganz genau zu nehmen, ändere die Codezeile

 

if (cont == curList) {...}

 

in

 

if (cont.indexOf(curList) != -1) {...}

 

um.

 

Lösungsvorschlag 2:

Wenn aber wirklich nichts außer ##Musterseite A/B im Textrahmen stehen darf, musst du den Textinhalt einmal umkodieren, das Steuerzeichen löschen und wieder umkodieren:

 

var cont = tf.contents.replace(/\r/g, "");
cont_uri = encodeURI(cont);
cont_uri = cont_uri.replace(/%EF%BB%BF/g, "");
cont = decodeURI(cont_uri);

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 16, 2019 Dec 16, 2019

Copy link to clipboard

Copied

LATEST

Hallo,

vielen Dank für die Hilfe. Lösungsvorschlag 2 klappt sehr gut.

Viele Grüße
Mario

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines