[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 16
Bewertung:
(8006 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
Hier Klicken X

Textrahmen per Script verketten

Martin Fischer
  
Beiträge gesamt: 12253

7. Jun 2010, 13:24
Beitrag # 2 von 16
Beitrag ID: #443866
Bewertung:
(8001 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 16
Beitrag ID: #443868
Bewertung:
(7984 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: 12253

7. Jun 2010, 14:11
Beitrag # 4 von 16
Beitrag ID: #443871
Bewertung:
(7962 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 16
Beitrag ID: #449018
Bewertung:
(7650 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: 5766

18. Aug 2010, 16:44
Beitrag # 6 von 16
Beitrag ID: #449225
Bewertung:
(7602 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 16
Beitrag ID: #449290
Bewertung:
(7574 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 16
Beitrag ID: #479726
Bewertung:
(6501 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 16
Beitrag ID: #479727
Bewertung:
(6497 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: 915

15. Sep 2019, 11:39
Beitrag # 10 von 16
Beitrag ID: #571878
Bewertung:
(931 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: 5766

15. Sep 2019, 12:06
Beitrag # 11 von 16
Beitrag ID: #571879
Bewertung:
(918 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: 915

15. Sep 2019, 12:21
Beitrag # 12 von 16
Beitrag ID: #571880
Bewertung:
(910 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: 915

15. Sep 2019, 12:50
Beitrag # 13 von 16
Beitrag ID: #571881
Bewertung:
(903 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: 2424

15. Sep 2019, 13:31
Beitrag # 14 von 16
Beitrag ID: #571882
Bewertung:
(890 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: 5766

15. Sep 2019, 13:53
Beitrag # 15 von 16
Beitrag ID: #571883
Bewertung:
(884 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]
Hier Klicken X

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
07.02.2020 - 11.09.2020

Digicomp Academy AG, 8005 Zürich
Freitag, 07. Feb. 2020, 13.00 Uhr - Freitag, 11. Sept. 2020, 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
22.02.2020 - 04.07.2020

Lehrgang zielgerichtet auf die Zertifizierung zum Publisher Basic

Schulungsraum PubliCollege, Kronenhalde 9d, 3400 Burgdorf
Samstag, 22. Feb. 2020, 13.14 Uhr - Samstag, 04. Juli 2020, 13.15 Uhr

Projektseminar/Lehrgang

Ziele In der Medienproduktion unter Einbezug der aktuellen Publishing-Programme mitarbeiten. Voraussetzungen Sie möchten gestalterisch tätig sein und eigene grafische Ideen kompetent entwickeln sowie umsetzen; Medienproduktionen professionell planen und ausführen. Kompetenzen Nach Abschluss dieses Lehrgangs können Sie Printpublikationen aller Art von der Gestaltung über die Umsetzung bis zu druckfertige PDFs erstellen. Sie sind fähig, CI/CD-Vorgaben umzusetzen. Sie lernen die Grundlagen der grafischen Gestaltung kennen und setzen diese mit Adobe Photoshop, InDesign und Illustrator effizient um.

15 Halbtage, jeweils am Samstag von 08.30 bis 14 Uhr im Kursraum des PubliCollege, 3400 Burgdorf


Daten
Samstag, 22.2., 29.2., 14.3., 21.3., 28.3., 4.4., 25.4., 2.5., 9.5., 16.5., 6.6., 13.6., 20.6., 27.6., 4.7. 2020
Reservedatum am 23.5. 2020

Ja

Organisator: PubliCollege GmbH, 3400 Burgdorf

Kontaktinformation: Beat Kipfer, E-Mailinfo AT publicollege DOT ch

https://www.publicollege.ch/kursangebote/20-publisher-basic