Connect failed: Connection timed out

[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Übersatztext löschen

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

Übersatztext löschen

MarioF
Beiträge gesamt: 390

28. Mai 2019, 02:56
Beitrag # 1 von 4
Bewertung:
(3706 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich stehe mal wieder auf'm Schlauch. Ich möchte Übersatztext löschen. So lange sich auf der Seite nur ein Textrahmen befindet, geht es, aber bei mehreren TR wird das Script nur beim zuletzt angelegten TR ausgeführt.
Code
var _dok = app.activeDocument; 
var _auswahl = app.selection;

if (
_auswahl.length == 0
) {
alert('Es wurde kein Objekt ausgewählt');
exit()
}

else {
var _story = _auswahl[0].parentStory;
var _letztesZeichen = _dok.stories[0].characters[-1];

if (
_letztesZeichen.parentTextFrames.length == 0
)
{
while (_story.overflows)
_story.characters.lastItem().remove();
}
}


Könnt ihr mir auf die Sprünge helfen?
X

Übersatztext löschen

Martin Fischer
  
Beiträge gesamt: 12779

28. Mai 2019, 07:30
Beitrag # 2 von 4
Beitrag ID: #570417
Bewertung:
(3679 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,

mit _auswahl[0].parentStory sprichst Du den Textabschnitt eines (einzigen) ausgewählten PageItems an.
Um die Textabschnitte aller ausgewählten Textrahmen zu adressieren brauchst Du eine Schleife durch die Elemente der _auswahl.

z.B.
Code
for (var i = 0; i < _auswahl.length; i++) 
{
var _story = _auswahl[i].parentStory;
// ...
}


Allerdings solltest Du dabei auch prüfen, ob das jeweilige Element der Auswahl auch einen Textabschnitt beinhaltet (hasOwnProperty('parentStory')). Denn es könnten sich ja auch Gruppen oder graphische Objekte (ohne Text) in der Auswahl befinden.

Ferner würde ich empfehlen, statt in einem Textabschnitt mit Übersatz von hinten herein der Reihe nach Zeichen für Zeichen zu löschen, bis der Übersatz beseitigt ist (was bei sehr umfangreichem Übersatz ziemlich lange dauern könnte), den Index des letzten Zeichens des Textabschnitts im letzten Textrahmen/Container desselben zu ermitteln und den Text vom nächsten Zeichen (das erste im Übersatz) bis zum letzten Zeichen des Textabschnitts zu löschen (itemByRange([Index erstes Zeichen im Übersatz], [Index letztes Zeichen des Textabschnitts]).

Bei Verwendung des Absatzsetzers müsstest Du freilich nach dem Löschen dieses Zeichenbereichs nochmal prüfen, ob der Übersatz damit tatsächlich beseitigt ist. Also das Löschen des Übersatzbereichs am besten in eine Schleife packen: while (_story.overflows) ...


als Antwort auf: [#570416]
(Dieser Beitrag wurde von Martin Fischer am 28. Mai 2019, 08:07 geändert)

Übersatztext löschen

MarioF
Beiträge gesamt: 390

28. Mai 2019, 08:37
Beitrag # 3 von 4
Beitrag ID: #570418
Bewertung:
(3664 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank für die Infos Martin. Werde mir es Malbuch Gemüte führen und sehen, ob ich es verstanden habe ;-)


als Antwort auf: [#570417]

Übersatztext löschen

MarioF
Beiträge gesamt: 390

28. Mai 2019, 14:42
Beitrag # 4 von 4
Beitrag ID: #570425
Bewertung: ||
(3615 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
An der Stelle hat mir der Beitrag https://www.hilfdirselbst.ch/foren/Mit_%DCbersatztext_arbeiten_P409818.html sehr weiter geholfen.

Danke!


als Antwort auf: [#570418]
X