[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Inhalt von Textrahmen verschieben (CS6, Win7)

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Inhalt von Textrahmen verschieben (CS6, Win7)

cwenet
Beiträge gesamt: 1005

30. Mai 2015, 14:27
Beitrag # 1 von 3
Bewertung:
(1560 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

Hans hatte mir damals geholfen (danke nochmals sehr), Notizen mit dem passenden Inhalt zu verknüpfen:
http://www.hilfdirselbst.ch/gforum/gforum.cgi?post=504889#504889

Nun wollte ich das Script für neue Bedürfnisse anpassen.
Folgendes soll es können:

Es existieren im Dokument mehrere Flächen mit unterschiedlichem Inhalt.
Diese fließen nicht im Haupttext mit. Die Flächen selber haben jeweils ein eindeutiges Scriptetikett.
Im Fließtext befindet sich ein passendes Pendant in Form eines Absatzes. Dieser Absatz enthält den String, den auch das Scriptetikett hat.

Ein Demodokument liegt bei. Auf Seite 2 ist das Wunschergebnis zu sehen.
https://www.dropbox.com/s/65az5tmzeltz5hy/container.idml?dl=0

Mein angepasstes Script findet bereits die Pendants. (siehe alerts)
Es findet aber keine Verschiebung des Inhalts statt.

Code
// das Dokument im Vordergrund  
var curDoc = app.documents[0];
// die Anzahl Textketten
var nStories = curDoc.stories.length;
// eine Schleife durch die Textketten
for (s=nStories-1; s>-1; s--) {
nNotes = curDoc.stories.item(s).paragraphs.length;
for (var n=nNotes-1; n>-1; n--) {
try {
var curNote = curDoc.stories.item(s).paragraphs.item(n);
var curName = curNote.texts.item(0).contents;
curName = curName.replace('\r','');

if (curName.indexOf("CONTAINER_") != -1) {
alert(curName);
var curText = curDoc.textFrames.itemByName(curName).parentStory;
alert(curText.contents);
var allPara = curText.paragraphs;
var styleList = new Array ();
for (var p=0; p<allPara.length; p++) {
styleList.push(allPara[p].appliedParagraphStyle.name);
}
var newPara = curText.move(LocationOptions.AFTER, curNote.storyOffset.insertionPoints[-1]);
for (var p=0; p<styleList.length; p++) {
newPara.paragraphs[p].appliedParagraphStyle = styleList[p];
}
curDoc.textFrames.itemByName(curName).remove();
}

}
catch (e) {
}
}
}


Bitte um Hilfe.
Danke
Gruß
Christoph
X

Inhalt von Textrahmen verschieben (CS6, Win7)

Hans Haesler
  
Beiträge gesamt: 5805

30. Mai 2015, 18:46
Beitrag # 2 von 3
Beitrag ID: #540137
Bewertung:
(1498 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

das Script – etwas modifiziert – funktioniert wie erwartet:

Code
// das Dokument im Vordergrund 
var curDoc = app.documents[0];
// die Anzahl Textketten
var nStories = curDoc.stories.length;
// eine Schleife durch die Textketten
for (s=nStories-1; s>-1; s--) {
nParas = curDoc.stories.item(s).paragraphs.length;
// eine Schleife durch die Absätze
for (var n=nParas-1; n>-1; n--) {
try {
var curPara = curDoc.stories[s].paragraphs[n];
var curName = curPara.texts[0].contents;
curName = curName.replace("\r","");
if (curName.indexOf("CONTAINER_") != -1) {
var curCont = curDoc.textFrames.itemByName(curName).parentStory;
curPara.insertionPoints[-1].contents = "\r";
curCont.move(LocationOptions.AFTER, curPara.insertionPoints[-1]);
curDoc.textFrames.itemByName(curName).remove();
}
}
catch (e) {
}
}
}

Gruss, Hans


als Antwort auf: [#540133]

Inhalt von Textrahmen verschieben (CS6, Win7)

cwenet
Beiträge gesamt: 1005

31. Mai 2015, 04:48
Beitrag # 3 von 3
Beitrag ID: #540138
Bewertung:
(1425 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen lieber Hans,

vielen Dank für Deine Anpassung.
Es funktioniert.

Einen schönen Sonntag
Grüße
Christoph


als Antwort auf: [#540137]

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PM

Veranstaltungen
02.08.2021 - 03.08.2021

Digicomp Academy, Bern,Basel
Montag, 02. Aug. 2021, 08.30 Uhr - Dienstag, 03. Aug. 2021, 17.00 Uhr

Kurs

In diesem Advanced-Kurs erlernen Sie weitergehende Methoden im Dokumentenaufbau, der Typografie und im Bereich Layouttechniken. Nach diesem Kurs können Sie strukturierte Dokumente erstellen oder bestehende effizienter anpassen.

Preis: 1'400.– zzgl. 7.7% MWST
Dauer2 Tage

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberater AT digicomp DOT ch