[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Textrahmen per Script verketten

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

Textrahmen per Script verketten

vanlent
Beiträge gesamt: 153

7. Jun 2010, 13:16
Beitrag # 1 von 22
Bewertung:
(10894 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Indesign-Scripter,

habe ziemlich lange gesucht, aber mein altes CS2-Script "Join-all.js" funktioniert nicht mehr mit CS4. Es hat stets alle Textrahmen (auch aus der Datenzusammenführung;-)) in der richtigen Reihenfolge miteinander verkettet, so daß alle Texte via Absatzmarken in einem Textabschnitt zusammengefaßt wurden.

Ich habe versucht, einfach nur *.jsx hintendranzuhängen. Das alleine hilft nicht!?

Grüße
Frank
X

Textrahmen per Script verketten

Martin Fischer
  
Beiträge gesamt: 12311

7. Jun 2010, 13:24
Beitrag # 2 von 22
Beitrag ID: #443866
Bewertung:
(10889 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Frank,

was macht Dein altes Skript statt dessen?

Wie sieht es aus?
Ist der Code irgendwo einsehbar?


> Ich habe versucht, einfach nur *.jsx hintendranzuhängen.

CS3 und höher akzeptieren *.js undj *.jsx gleichermaßen.
*.jsx kann mit dem ExtendScript Toolkit verknüpft werden, damit sich bei Klick auf eine jsx-Datei dieses mit der geklickten Datei öffnet.

Viele Grüße
Martin




als Antwort auf: [#443864]

Textrahmen per Script verketten

vanlent
Beiträge gesamt: 153

7. Jun 2010, 13:45
Beitrag # 3 von 22
Beitrag ID: #443868
Bewertung:
(10872 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

der Quellcode lautet:
Code
//join_stories.js  
if(app.documents.length != 0){
var myDoc = app.activeDocument;
for (oneStory=myDoc.stories.length-1;oneStory>0;oneStory--){
// fügt am Ende des Textflusses eine Absatzschaltung ein,
// wenn der Textfluß nicht bereits mit einer Absatzschaltung endet.
if (myDoc.stories[oneStory-1].characters.length>0){
if (myDoc.stories[oneStory-1].characters[-1].contents!="\r") myDoc.stories[oneStory-1].insertionPoints[-1].contents="\r";
}
// Verknüpfung des letzten Textrahmens des vorherigen Textflusses (oneStory-1)
// mit dem ersten Textrahmen des aktuellen Textflusses (oneStory)
myDoc.stories[oneStory-1].textFrames[-1].nextTextFrame = myDoc.stories[oneStory].textFrames[0];
}
}


Die Fehlermeldung lautet:
http://www.reinzeichnen.de/mat/fehlermeldung.png

Grüße
Frank


als Antwort auf: [#443866]

Textrahmen per Script verketten

Martin Fischer
  
Beiträge gesamt: 12311

7. Jun 2010, 14:11
Beitrag # 4 von 22
Beitrag ID: #443871
Bewertung:
(10850 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Frank,

versuch's mal mit textContainers an Stelle von textFrames.

Seit CS3 sind die Textrahmen, die ein Textabschnitt durchläuft, textContainers, um sie von den verankerten textFrames im Textabschnitt zu unterscheiden.

Viele Grüße
Martin




als Antwort auf: [#443868]
(Dieser Beitrag wurde von Martin Fischer am 7. Jun 2010, 14:15 geändert)

Textrahmen per Script verketten

der-markus
Beiträge gesamt:

17. Aug 2010, 14:22
Beitrag # 5 von 22
Beitrag ID: #449018
Bewertung:
(10538 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

habe es mal mit dem geänderten Script versucht. Leider kommt da auch eine Fehlermeldung. Bin allerdings absoluter Script-Unwissender.... Gibt es ein funktionierendes Script für CS4 um die Textrahmen zu verketten? Habe nämlich nach einer Datenzusammenführung zwar die Textrahmen auf einer Seite, möchte diese aber gene verketten.

Grüße


als Antwort auf: [#443871]

Textrahmen per Script verketten

Hans Haesler
  
Beiträge gesamt: 5791

18. Aug 2010, 16:44
Beitrag # 6 von 22
Beitrag ID: #449225
Bewertung:
(10490 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Markus,

Martin ist anscheinend abwesend (oder hat Deine Frage nicht gesehen).

Das textFrames muss an zwei Stellen durch textContainers ersetzt werden.

Zusätzlich muss man nach dem ersten Vorkommen das [-1] in [0] ändern: textContainers[0]

Code
//join_stories.js 
if(app.documents.length != 0) {
var myDoc = app.activeDocument;
for (oneStory=myDoc.stories.length-1; oneStory>0; oneStory--) {
// fügt am Ende des Textflusses eine Absatzschaltung ein,
// wenn der Textfluß nicht bereits mit einer Absatzschaltung endet.
if (myDoc.stories[oneStory-1].characters.length>0) {
if (myDoc.stories[oneStory-1].characters[-1].contents!="\r") {
myDoc.stories[oneStory-1].insertionPoints[-1].contents="\r";
}
}
// Verknüpfung des letzten Textrahmens des vorherigen Textflusses (oneStory-1)
// mit dem ersten Textrahmen des aktuellen Textflusses (oneStory)
myDoc.stories[oneStory-1].textContainers[0].nextTextFrame = myDoc.stories[oneStory].textContainers[0];
}
}

So funktioniert es hier mit CS4.

Gruss, Hans


als Antwort auf: [#449018]

Textrahmen per Script verketten

der-markus
Beiträge gesamt:

19. Aug 2010, 08:02
Beitrag # 7 von 22
Beitrag ID: #449290
Bewertung:
(10462 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Hans,

wunderbar! Hat funktioniert, großes Lob und vielen Dank.

Frohes Schaffen noch.


als Antwort auf: [#449225]

Textrahmen per Script verketten

vanlent
Beiträge gesamt: 153

7. Sep 2011, 10:51
Beitrag # 8 von 22
Beitrag ID: #479726
Bewertung:
(9389 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ihr Lieben,

ich verstehe nicht, warum dieses Script nicht mehr funktioniert?
Die dazugehörige Fehlermeldung ist: http://www.reinzeichnen.de/fileadmin/data/JS-Fehler.png
Habe ganz bewußt als Basis eine Datei genommen, die funktioniert hat.
Hat jemand eine Idee, was dieser Fehler besagt?

Verzweifelte Grüße
Frank


als Antwort auf: [#449290]

Textrahmen per Script verketten

vanlent
Beiträge gesamt: 153

7. Sep 2011, 10:55
Beitrag # 9 von 22
Beitrag ID: #479727
Bewertung:
(9385 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ha!
Habe den Fehler gefunden. Es war ein verankerter leerer Textrahmen.
Habe ihn in einen Grafikrahmen umgewandelt, und jetzt läufts wieder!

Hurra!

Grüße
Frank


als Antwort auf: [#479726]

Textrahmen per Script verketten

cwenet
Beiträge gesamt: 957

15. Sep 2019, 11:39
Beitrag # 10 von 22
Beitrag ID: #571878
Bewertung:
(3819 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

bin hier gerade drüber gestolpert. Danke, das Script hilft.

Ich würde es gerne etwas einschränken wollen.

Es sollen nur Rahmen verknüpft werden, die ein Scriptetikett besitzen.

Ich habe diese Ausnahme eingebaut:

Code
 if (myDoc.stories[oneStory-1].textContainers[0].label =="mein_ScriptEtikett"){ 


Der gelbe Textrahmen auf Seite 1 wird dennoch irgendwie mit dem Textrahmen von Seite 6 verknüpft.
Testdokument:
https://www.dropbox.com/...erknuepfen.idml?dl=0

Mit der Bitte um Hilfe
Grüße
Christoph


als Antwort auf: [#449225]

Textrahmen per Script verketten

Hans Haesler
  
Beiträge gesamt: 5791

15. Sep 2019, 12:06
Beitrag # 11 von 22
Beitrag ID: #571879
Bewertung:
(3806 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

der zu prüfende Rahmen sollte jener sein, welcher als nächster verknüpft wird.

Also: In Deiner Zeile das '[oneStory-1]' zu '[oneStory]' ändern:

Code
if (myDoc.stories[oneStory].textContainers[0].label == "mein_ScriptEtikett") { 

Und es funktioniert wie gewünscht.

Gruss, Hans


als Antwort auf: [#571878]

Textrahmen per Script verketten

cwenet
Beiträge gesamt: 957

15. Sep 2019, 12:21
Beitrag # 12 von 22
Beitrag ID: #571880
Bewertung:
(3798 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank Hans,

irgendwie ist da noch ein Durcheinander drin, was die Reihenfolge angeht.
Wie wird denn beim Verknüpfungsvorgang die Reihenfolge festgelegt?

Kann es sein, dass Indesign weiss, in welcher Reihenfolge die Textrahmen zuvor erstellt wurden?

In meinem Fall ist ja pro Seite 1 Textrahmen mit dem bestimmten Scriptetikett.

Wie kann ich die Reihenfolge beeinflussen?

Grüße
Christoph


als Antwort auf: [#571879]

Textrahmen per Script verketten

cwenet
Beiträge gesamt: 957

15. Sep 2019, 12:50
Beitrag # 13 von 22
Beitrag ID: #571881
Bewertung:
(3791 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nochmal ich,

es ist vielleicht der sichere Weg, wenn ich die Textrahmen alle der Reihe nach neu erzeuge und dann verknüpfe.

So mache ich es.

Einen schönen Sonntag
Danke und Gruß
Christoph


als Antwort auf: [#571880]

Textrahmen per Script verketten

WernerPerplies
Beiträge gesamt: 2521

15. Sep 2019, 13:31
Beitrag # 14 von 22
Beitrag ID: #571882
Bewertung:
(3778 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

Zitat Wie kann ich die Reihenfolge beeinflussen?


Die Reihenfolge bestimmst doch ausschließlich Du, indem Du Dir einen Textrahmen nimmst und in die Eigenschaft previousTextFrame den Vorgängertextrahmen und in die Eigenschaft nextTextFrame den Nachfolgertextrahmen einträgst.

Übrigens:
Mit meinem Skript WpsCreateAnchoredFrames kann man automatisch Textrahmen erzeugen und die Rahmen dann ebenfalls automatisch in der Reihenfolge der Erzeugung automatisch verketten.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#571881]

Textrahmen per Script verketten

Hans Haesler
  
Beiträge gesamt: 5791

15. Sep 2019, 13:53
Beitrag # 15 von 22
Beitrag ID: #571883
Bewertung:
(3772 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

die Reihenfolge wird durch die Schichtung der Rahmen bestimmt.

Wenn letztere schön brav von Seite eins bis zur letzen und auf jeder Seite von links oben nach rechts unten erzeugt wurden, dann können die Rahmen mit einer Schleife der Reihe nach abgearbeitet werden.

Wenn aber auf jeder Seite nur ein Textrahmen mit dem Label "mein_ScriptEtikett" existiert, dann könnte folgendes Script benutzt werden.

Code
if (app.documents.length != 0) { 
var allPages = app.documents[0].pages;
var nPages = allPages.length;
var labeledFrames = [];
for (p=0; p<nPages; p++) {
var allTextFrames = allPages[p].textFrames;
var nFrames = allTextFrames.length;
for (var t=0; t<nFrames; t++) {
var curFrame = allTextFrames[t];
if (curFrame.label == "mein_ScriptEtikett") {
labeledFrames.push(curFrame);
break;
}
}
}
var nLabeled = labeledFrames.length;
var curFrame = labeledFrames[0];
for (var n=1; n<nLabeled; n++) {
curFrame.nextTextFrame = labeledFrames[n];
curFrame = labeledFrames[n];
}
alert ("Fertig.", "");
}
else {
alert ("Ein Dokument öffnen.", "");
}

Gutes Gelingen!

Gruss, Hans


als Antwort auf: [#571881]
X

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
04.09.2020 - 05.03.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 04. Sept. 2020, 13.00 Uhr - Freitag, 05. März 2021, 12.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. Mit dem Abschluss «Publisher Professional – Profil «Multimedia» verliehen durch die Digicomp Academy AG, bestätigen Sie Ihre Praxiserfahrungen und Qualifizierung in den genannten Themengebieten gegenüber Ihrem Arbeitgeber sowie Ihren Kunden.

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

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/publishing-lehrgaenge/lehrgang-publisher-professional-profil-multimedia

Veranstaltungen
02.10.2020 - 11.12.2020

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 02. Okt. 2020, 13.00 Uhr - Freitag, 11. Dez. 2020, 15.00 Uhr

Lehrgang

Steigen Sie in die Welt des Publishings ein und erlangen Sie die Zertifizierung von publishingNETWORK. Lernen Sie in diesem Lehrgang Druckmedien professionell zu erarbeiten, druckfertige PDFs zu erstellen und CI/CD-Vorgaben umzusetzen. Mit dem Abschluss «Publisher Basic» verliehen durch die Digicomp Academy AG, bestätigen Sie Ihre Praxiserfahrungen und Qualifizierung in den genannten Themengebieten gegenüber Ihrem Arbeitgeber sowie Ihren Kunden.

Preis: CHF 6'300.-
Dauer: 18 Tage (ca. 126 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/publishing-lehrgaenge/lehrgang-publisher-basic

Neuste Foreneinträge


Excel-Tabelleninhalte via Incopy in InDesign Vorlage aktualisieren

Programmabsturz beim Veröffentlichen als PDF (FM 2019 unstrukturiert)

In die/eine Auswahl einfügen!

Dropdown Farbmenu

RTF Export Fußnoten (CC2020[15.1.1],WIN10)

InDesign-Settings (Adobe Cloud) von einem anderen Mac übernehmen

Werkzeugleisten verschwunden

Konvertierung von Framemaker 2019 nach Word

Indesign Fußnoten/Endnoten bei Buchfunktion

JavaScript mit IF Else um Email Adresse auszwählen
medienjobs