Hallo liebes Forum! Einen (markierten) Textrahmen mit einzelnen Absätzen – einzeilig und ein Absatzformat ist zugewiesen – möchte ich in einzelne, nicht verkettete Textrahmen umwandeln. Der Text soll danach manuell an andere Positionen verschoben werden. Da ich diesen Fall sehr häufig habe, wäre ein Skript sehr hilfreich. Gibt es für diesen Zweck schon ein Skript? Ich habe in diesem Forum gesucht und nichts passendes gefunden. Ich bin dankbar für hilfreiche Hinweise.
Vielen Dank, aber leider funktioniert dieses Skript nicht. Ich bekomme eine Fehlermeldung: "Please select a story containing more than one text frame and try again." Ich weiß nicht, was das Skript hier mit "story" meint. Anscheinend etwas, wo mehr als ein Textrahmen enthalten sein soll. Und: Meine betreffenden Textrahmen gehen nicht über mehrere Seiten. Aber selbst wenn ich das testhalber so anlege, kommt die gleiche Meldung.
Wenn man das SplitStory-Skript so anwendet, bringt das nichts, weil ja bereits alles in einem Textrahmen ist.
Was aber funktioniert: im Absatzformat > Umbruchoptionen > in nächstem Rahmen oder so hinterlegen. Jetzt hat der Textrahmen einen Übersatz, der mit dem schwarzen Pfeil aufgenommen werden kann. Anschließend bei gedrückter Alt-Taste neue Rahmen erzeugen u. dann das SplitStory-Skript laufen lassen. Alternativ kann man die verketteten Rahmen auch vorher im Raster erzeugen und den Text einfach per Drag&Drop reinschieben.
Ich erinnere mich dunkel, dass es auch ein kostenloses Skript vom ajar productions (Justin Putney) gibt, dass das kann.
Ich arbeite mit ID CC (13.1. x64) auf WIN 10. Es gibt auf einer Seite einen Textrahmen mit vielen Absätzen. Diese Absätze möchte ich in einzelne Textrahmen umwandeln, damit ich sie als Beschriftungen zu einer Grafik an die betreffenden Stellen der Grafik setzen kann. Das sind ca. 20-50 Einträge pro Grafik. Unter den Skripten, die InDesign mitbringt habe ich nichts Passendes gefunden. Ich habe auch schon danach im www gesucht. Aber anscheindend ist es doch etwas, was nicht standardmäßig gebraucht wird. Ich bin auch bereit, einen kostenpflichtigen Auftrag zu erteilen. Grüßle queenmum
Hallo queenmum,
Meine betreffenden Textrahmen gehen nicht über mehrere Seiten.
Also gibt es auf einer Seite mehrere verbundene Textrahamen.?
Mit welcher ID-Version arbeitest Du? Schau doch mal in Deine mitgelieferten Beispielskripte.
Gruß Quarz ------------------------------ | Win7/64 Prof. | CS6 ver 8.1 |
Quarz, das Skript passt nicht, zumindest wenn ich nach der Überschrift (selektiert) gehe.
Edit: Ich hänge hier noch mal einen Screen an, wie ich das mache. Es kann sein, dass dan ein Return übrig bleibt, der den Rahmen nicht richtig anpassen lässt. Den kriegt man aber mit einen S&E vor dem Anpassen raus.
Aufwand für deine 50 Einträge: Wahrscheinlich unter 1 Min.
Hallo Kai, klar kann ich mit Umbruchoptionen den Text dahin beeinflussen, dass er in den nächsten Textrahmen fließen soll. Für einen anderen Zweck habe ich das auch schon so ausgeführt. Aber in meinem jetzigen Fall habe ich erst einmal nur einen Textrahmen. Und gerne würde ich mit einem Mausklick aus diesem einen Textrahmem für jeden Absatz, der sich darin befindet, einen eigenen Textrahmen erzeugen. Selbstverständlich kann ich das auch über kopieren/ausschneiden und Strg + V ausführen. Das bedarf dann aber x Mausklicks. Und diesen Aufwand will ich verringern. Ist jemand aus dem Forum bereit, so ein Skript gegen Entgelt zu erstellen und wenn ja, wieviel würde es kosten? Gruß queenmum
Quarz, das Skript passt nicht, zumindest wenn ich nach der Überschrift (selektiert) gehe.
Edit: Ich hänge hier noch mal einen Screen an, wie ich das mache. Es kann sein, dass dan ein Return übrig bleibt, der den Rahmen nicht richtig anpassen lässt. Den kriegt man aber mit einen S&E vor dem Anpassen raus.
Aufwand für deine 50 Einträge: Wahrscheinlich unter 1 Min.
hast Du das von mir empfohlene 2. Script ausprobiert? Ich habe es getestet. > Absatz markieren > Script ausrufen Das ist schon alles :-) Der Text wird ausgeschnitten und in einen eigenen Textrahmen gesetzt.
Gruß Quarz ------------------------------ | Win7/64 Prof. | CS6 ver 8.1 |
Hallo Quartz, beim Lesen der Antworten hatte ich den chronologischen Faden verloren und daher deinen Hinweis auf das zweite Skript übersehen. Jetzt habe ich es installiert und ausprobiert. Es ist ein Schritt in die richtige Richtung. Der Haken ist allerdings, dass ich vorher jeden Absatz einzeln markieren muss und da kommen schon ordentlich viele Klicks zusammen.
@Kai: Was ich brauche bedarf tatsächlich noch einer Überarbeitung des Skripts. Ich schreibe dir noch persönlich.
Danke an alle, die sich mit meiner Anfrage beschäftigt haben. Gruß queenmum
Hallo queenmum,
hast Du das von mir empfohlene 2. Script ausprobiert? Ich habe es getestet. > Absatz markieren > Script ausrufen Das ist schon alles :-) Der Text wird ausgeschnitten und in einen eigenen Textrahmen gesetzt.
Gruß Quarz ------------------------------ | Win7/64 Prof. | CS6 ver 8.1 |
Ich würde natürlich nicht Stephans Skript verwenden, da hier der Rahmen auch nicht angepasst wird. Ich würde ein vorhandenes Skript von mir umschreiben :)
Hi, hier wäre eine Variante von "SelectedTextToNewFrame".
Setzt voraus: einen einzelnen selektierten Textrahmen mit Paragrafen, ohne Übersatz. Erzeugt dann jeden einzelnen Paragrafen daraus in einen eigenen Textrahmen an gleicher Stelle und löscht anschließend den selektierten Textrahmen.
Kein Problem wenn Kai das hinter der Bühne schon erledigt hat, hat das sicher eine höhere Qualität - hier nur die krude schnelle Lösung.
liebe Grüße, Stephan
// paragraphsToOwnFrames.jsx #target indesign
// Script expects a single selected textframe with one or more paragraphs. It will copy each paragraphs into their own snug fitting textframes at the same location, and then remove the source textframe.
Paragraph.prototype.toOwnFrame = function () { var tf = this.parentTextFrames[0]; var nf; // new frame var uJustification = this.justification; this.justification = Justification.LEFT_ALIGN; var hProps = [ this.horizontalOffset - this.leftIndent - this.firstLineIndent, tf.textFramePreferences.textColumnFixedWidth ]; nf = this.parentTextFrames[0].parent.textFrames.add(); nf.geometricBounds = [this.lines[-1].baseline, hProps[0], this.lines[0].baseline - this.lines[0].ascent, hProps[0] + hProps[1]]; nf.textFramePreferences.firstBaselineOffset = FirstBaseline.ascentOffset; this.duplicate(LocationOptions.atBeginning, nf.insertionPoints.item(0)); nf.insertionPoints.item(0).paragraphs[0].justification = uJustification; }
if (app.documents.length != 0) { var s = app.selection; if (s.length === 1 && s[0].constructor.name === "TextFrame" && s[0].paragraphs.length >= 0) { if (!s[0].overflows) { var ps = s[0].paragraphs; // store old ruler origin and app.textwrap setting for new frames var uRuler = app.activeDocument.viewPreferences.rulerOrigin; app.activeDocument.viewPreferences.rulerOrigin = RulerOrigin.SPREAD_ORIGIN; var uWrap = app.activeDocument.textWrapPreferences.textWrapMode; // do all paragraphs in one step var sT = "app.activeDocument.textWrapPreferences.textWrapMode = TextWrapModes.NONE;\nfor (var i=0; i < ps.length; i++) {ps[i].toOwnFrame()}\ns[0].remove();\napp.activeDocument.textWrapPreferences.textWrapMode = uWrap;\n"; app.doScript(sT, ScriptLanguage.JAVASCRIPT, [], UndoModes.ENTIRE_SCRIPT, "Paragraphs to own frames"); // restore stored settings app.activeDocument.viewPreferences.rulerOrigin = uRuler; } else { alert('Please make sure the textframe isn\'t overflowing.'); } } else { alert('Please select a single Textframe with at least one paragraph.'); } }
(Dieser Beitrag wurde von Martin Fischer am 14. Mai 2019, 11:47 geändert)
Kein Problem wenn Kai das hinter der Bühne schon erledigt hat, hat das sicher eine höhere Qualität - hier nur die krude schnelle Lösung.
Obs eine höhere Qualität hat, weis ich nicht, aber ich habe in der Tat im April eine – kostenpflichtige – Variante erstellt, die mit mehreren Rahmen umgeht, auch Übersatz behandelt, neue x/y-Koordinaten setzt (ohne Textumfluss), die Rahmen an den Text anpasst und überflüssige Returns löscht.
@ Stephan: Prüf mal deinen Code. Dein Skript wirft so einen Fehler in der Variablen "sT"
Hallo Kai, wir haben es bei Variable sT mit einem String zu tun, dessen Zeilenschaltungen über \ funktionieren. Dieser wird über doScript() als erstes Argument ausgeführt. Wenn das korrekt "formatiert" ist, bzw. korrekt "umzäunt" (=fencing), dann funktioniert das wie beabsichtigt. ***** Mit herzlichem Gruß, Uwe Laubender