[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

cwenet
Beiträge gesamt: 945

15. Sep 2019, 14:49
Beitrag # 16 von 22
Beitrag ID: #571884
Bewertung:
(2152 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner, hallo Hans,

danke Euch beiden für die sonntagliche Hilfe.

Da es ein fremdes Dokument ist, gehe ich doch auf Nummer sicher.
Ich habe die Textrahmen automatisch etikettiert und dann verkettet.

Das Script von Hans ist prima.


Einen schönen Sonntag
Christoph


als Antwort auf: [#571883]
X

Textrahmen per Script verketten

Kari
Beiträge gesamt: 2

17. Apr 2020, 21:09
Beitrag # 17 von 22
Beitrag ID: #574956
Bewertung:
(1723 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

wie muss das Script unten angepasst werden, wenn es auf jeder Seite mehrere Textrahmen gibt?

Vielleicht kannst du mir weiterhelfen. :-)

Dankeschön!


als Antwort auf: [#571883]

Textrahmen per Script verketten

Hans Haesler
  
Beiträge gesamt: 5790

17. Apr 2020, 21:53
Beitrag # 18 von 22
Beitrag ID: #574957
Bewertung:
(1714 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kari,

herzlich willkommen in der Adobe InDesign Skriptwerkstatt! :-)

Ich werde gerne versuchen, Dir zu helfen. Damit die Aufgabe klarer ist:
Würdest Du mir bitte ein Beispieldokument zustellen? Mit zwei oder drei Seiten.
Meine Adresse findest Du in meinem Profil.

Gruss, Hans


als Antwort auf: [#574956]

Textrahmen per Script verketten

Hans Haesler
  
Beiträge gesamt: 5790

25. Apr 2020, 15:06
Beitrag # 19 von 22
Beitrag ID: #575025
Bewertung:
(1420 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kari,

danke für das Beispiel-Dokument. Gut, dass ich es verlangte, denn so hatte ich es mir nicht vorgestellt. :-)

Ich habe Dir via WeTransfer eine erste Version des Scripts zugestellt. Hier funktioniert es wie erwartet mit Deinem Beispiel-Dokument.

Bitte durchgeben, falls Änderungen gewünscht sind. Dann werde ich es hier veröffentlichen.

Gruss, Hans


als Antwort auf: [#574957]

Textrahmen per Script verketten

Kari
Beiträge gesamt: 2

2. Mai 2020, 16:18
Beitrag # 20 von 22
Beitrag ID: #575137
Bewertung:
(1213 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

das Script tut genau, was es tun sollte, deshalb nochmals ein Dankeschön hierfür. Ich bedanke mich auch für die ausführliche Erklärung. :-)

Darüber hinaus ein Lob für deine überaus große Hilfe und den netten Kontakt mit dir. ;-)

Viele Grüße

Kari


als Antwort auf: [#575025]

Textrahmen per Script verketten

Hans Haesler
  
Beiträge gesamt: 5790

2. Mai 2020, 17:33
Beitrag # 21 von 22
Beitrag ID: #575138
Bewertung:
(1197 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kari,

bitte sehr, gern geschehen. Besten Dank für Deine Rückmeldung.

*****
An interessierte Scripter: Weil es eine spezielle Aufgabe war, werde ich das Script vorerst nicht veröffentlichen. Auf jeder Seite sind vier Textrahmen. Jeder enthält eine Tabelle. Diese sind unterschiedlich hoch. Bei einigen Textrahmen ergibt das einen Überlauf.
Das Verketten diente dazu, alle Textrahmen in einen einzigen Textrahmen zu verfrachten. Das Script führt dazu folgende Schritte aus:

Code
1. Auf jeder Seite werden die Textrahmen verkettet. 
2. Eine erneute Schleife durch die Seiten und auf jeder wird der letzte
Rahmen mit dem ersten Rahmen der nächsten Seite verkettet.
3. Auf der ersten Seite wird die Verkettung des ersten Rahmens annulliert.
Ergebnis: Alle Tabellen befinden sich in diesem ersten Rahmen.
4. Neue Schleife durch die Seiten. Auf jeder Seite ab Rahmen 2 alle
Rahmen entfernen.
Und die Höhe aller ersten Rahmen auf die Höhe des Satzspiegels ändern.
5. Nochmals eine Schleife durch die Seiten und die Textrahmen verketten.
6. Auf der Musterseite den Textrahmen entfernen.
7. Mit einer "while"-Schleife Seiten einfügen und jedes Mal einen
Textrahmen und diesen verketten: Solange, bis der Textrahmen der
letzten Seite keinen Überfluss aufweist.

Ziemlich genial. Nicht wahr? ;-)

*****
Später werde ich hier die Version des Scripts veröffentlichen, welches ich schrieb, bevor ich das Beispiel-Dokument erhielt.

Gruss, Hans


als Antwort auf: [#575137]

Textrahmen per Script verketten

Hans Haesler
  
Beiträge gesamt: 5790

3. Mai 2020, 20:45
Beitrag # 22 von 22
Beitrag ID: #575145
Bewertung:
(1097 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter,

und hier ist das angekündigte Script, welches alle Textrahmen eines Dokuments verkettet. Bedingung ist, dass die Textrahmen der Reihe nach – und von links oben nach rechts unten – erzeugt wurden. Denn wenn die Schichtung nicht regelmässig ist, wird das Ergebnis nicht zufriedenstellend sein.

Code
//TextRahmen_verketten_01d.js 
//© 03.05.2020 / Hans Haesler, Châtelard 52, CH-1018 Lausanne

// vorbeugenderweise das Anzeigen von Dialogen aktivieren
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;

// prüfen, ob ein Dokument geöffnet ist
if (app.documents.length == 0) {
alert ("Es ist kein Dokument offen.", "Achtung");
exit();
}

// das Dokument im Vordergrund
var curDoc = app.documents[0];

// alle Seiten ...
var allPages = curDoc.pages;
// ... und deren Anzahl
var nPages = allPages.length;

// vier Variablen
var allTextFrames, nFrames, stopVal, lastChar;

// eine Vorwärtsschleife durch die Seiten
for (var p=0; p<nPages; p++) {
// alle Textrahmen der aktuellen Seite ...
allTextFrames = allPages[p].textFrames;
// ... und deren Anzahl
nFrames = allTextFrames.length;
if (p == nPages-1) {
stopVal = 0;
}
else {
stopVal = -1;
}
// eine Rückwärtsschleife durch die Rahmen; wenn leer: Leerschlag einfügen
for (n=nFrames-1; n>stopVal; n--) {
if (allTextFrames[n].contents == "") {
allTextFrames[n].contents = " ";
}
}
// eine Rückwärtsschleife durch die Rahmen
for (n=nFrames-1; n>stopVal; n--) {
// das letzte Zeichen im aktuellen Textrahmen
try {
lastChar = allTextFrames[n].parentStory.characters[-1].contents;
if (lastChar*1 != 1397125698) {
allTextFrames[n].parentStory.insertionPoints[-1].contents = 1397125698;
}
}
catch (e) {
}
// den aktuellen Rahmen mit dem nächsten verketten
try {
allTextFrames[n].nextTextFrame = allTextFrames[n-1];
}
catch (e) {
}
}
}

// eine Vorwärtsschleife durch die Seiten
for (var p=0; p<nPages-1; p++) {
// den letzten Rahmen der aktuellen Seite
// mit dem ersten Rahmen der nächsten Seite verketten
try {
allPages[p].textFrames[0].nextTextFrame = allPages[p+1].textFrames[-1];
}
catch (e) {
}
}

// das Ende der Aktion verkünden
var dlog = new Window("palette");
dlog.size = [320,100];
dlog.add("statictext", [80, 100, 320, 116], "Fertig.");
dlog.show();
// eine kleine Pause
$.sleep(999);
// das Fenster schliessen
dlog.close();

Falls die Anordnung der Rahmen nicht der oben genannten Vorgabe entspricht, müsste das Script erweitert werden, damit es die Reihenfolge aufgrund der Y- und X-Positionen herausfinden kann.

Gruss, Hans


als Antwort auf: [#575138]
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
06.07.2020 - 07.07.2020

Digicomp Academy AG, Zürich oder virtuell
Montag, 06. Juli 2020, 08.30 Uhr - Dienstag, 07. Juli 2020, 17.00 Uhr

Kurs

Adobe Experience Design, kurz XD ist das neue Programm für UX/UI-Design. Mit XD lassen sich visuelles Design und klickbare Prototypen nahtlos verbinden. Lernen Sie die wichtigsten Funktionen vom Entwurf am Bildschirm bis zum online geteilten Prototypen.

Preis: CHF 1'400.-
Dauer: 2 Tage

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/web-publishing/adobe-xd-cc/kurs-adobe-xd-basic

Veranstaltungen
08.07.2020 - 09.07.2020

Digicomp Academy AG, Basel, Bern oder virtuell
Mittwoch, 08. Juli 2020, 08.30 Uhr - Donnerstag, 09. Juli 2020, 17.00 Uhr

Kurs

Mit After Effects können Sie visuelle Effekte und Animationen für Video, Web, DVD und Blu-Ray erzeugen. In diesem Kurs lernen Sie die Grundlagen kennen und sehen inspirierende Anwendungsbeispiele, die Ihnen helfen, Ihre eigenen Ideen umzusetzen.

Preis: CHF 1'700.-
Dauer: 2 Tage

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/video-und-audio-publishing/adobe-after-effects-cc/kurs-adobe-after-effects-basic

Neuste Foreneinträge


Tabelle Zeile einfügen, Zellformat anwenden, Tabelle in neuen Textrahmen, Objektformat zuweisen

ID CC 2019 und 2020: Crash beim Startvorgang

Sämtliche Programme der Adobe CC verlieren Farbeinstellungen

Ausgabevorschau lässt Acrobat abstürzen

Problem mit Script: Leere Bildrahmen im entfernen

Auflistung aller Verknüpfungen

Keine Berechtigung zum Senden von Apple-Events an SatimageOSAX

Word-Dokument nach QXP importieren

Benutzerdefinierte Eigenschaft in Formularfeld schreiben

Font aktiv aber nicht in allen Dokumenten angezeigt
medienjobs