hilfdirselbst.ch
Facebook Twitter gamper-media

Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Textbox nur in der Höhe an den Inhalt anpassen

 



Stefan Oe p
Beiträge: 26

21. Jan 2012, 10:25

Beitrag #1 von 7
Bewertung:

(556 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textbox nur in der Höhe an den Inhalt anpassen


Hallo,
mit folgender Skriptzeile passe ich die Höhe von Textrahmen dem jeweiligen Inhalt an:

_auswahl.fit (FitOptions.FRAME_TO_CONTENT)

Ich möchte erreichen, dass die Textrahmen ausschließlich in der Höhe angepasst werden und die Satzbreite beibehalten wird. Bei mehrzeiligen Texten funktioniert das, bei einzeiligen Texten wird auch die Breite reduziert. Gibt es einen Befehl, der sich ausschließlich auf die Höhe auswirkt? Also vergleichbar mit einem Doppelklick auf den unteren oder oberen mittleren Anfasser eines Textrahmens?

Ich arbeite mit OSX und InDesign CS5.

Viele Grüße, Stefan Oe
Top

-hans-
Beiträge: 391

21. Jan 2012, 11:13

Beitrag #2 von 7
Beitrag ID: #488231

Bewertung:

(539 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textbox nur in der Höhe an den Inhalt anpassen


Nein, soweit ich weiß.


Sie müssen den text overflow abgreifen und die Höhe des Rahmens in einer Schleife solange vergrößern bis dieser false ist ...

Herr Singelmann hat ein solches Script in seinem Blog (auf hds ist es glaub' auch ...). Es werden auch mehrspaltige Textrahmen verarbeitet.




Lieben Gruß

Hans-Gerd Claßen
Lieben Gruß

Hans-Gerd Claßen

als Antwort auf: [#488230]

(Dieser Beitrag wurde von -hans- am 21. Jan 2012, 11:17 geändert)
Top

WernerPerplies
Beiträge: 1036

21. Jan 2012, 11:25

Beitrag #3 von 7
Beitrag ID: #488232

Bewertung:

(532 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textbox nur in der Höhe an den Inhalt anpassen


Hallo Stefan,

zusätzlich zu der von Hans bereits genannten Möglichkeit mit der Flag Overflows fiele mir noch ein:

1.1. Breite merken,
1.2 _auswahl.fit (FitOptions.FRAME_TO_CONTENT)
1.3 ursprüngliche Breite wieder herstellen

2. Platzbedarf selbst berechnen:
dabei als Basis paragraphs[-1].baseline verwenden.


Einen schönen Tag wünscht

Werner Perplies
http://www.weepee.de
12 Anwenderskripte für InDesign
schon gesehen? Wps HyperlinkInspector
Werkzeuge und Infos für die Skriptprogrammierung, schon gesehen?
WpsProfilerClass

als Antwort auf: [#488230] Top

Gerald Singelmann  M  p
Beiträge: 5823

21. Jan 2012, 12:23

Beitrag #4 von 7
Beitrag ID: #488233

Bewertung:

(502 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textbox nur in der Höhe an den Inhalt anpassen


Code
#target indesign 

main();

function main() {
var tf = precheck();
if (!tf) return;

var bl = tf.lines.lastItem().baseline + tf.strokeWeight*25.4/144;
var gb = tf.geometricBounds;
tf.geometricBounds = [ gb[0], gb[1], bl, gb[3] ];
}

function precheck() {
if (app.documents.length != 0){
if (app.selection.length == 1){
switch (app.selection[0].constructor.name){
case "Text":
case "InsertionPoint":
case "Character":
case "Word":
case "Line":
case "TextStyleRange":
case "TextColumn":
case "Paragraph":
return app.selection[0].parentTextFrames[0];
break;
case "TextFrame":
return app.selection[0];
break;
default:
alert("Es ist kein Text markiert.");
return false;
}
}
else{
alert("Es ist nichts markiert.");
return false;
}
}
else{
alert("Es ist kein Dokument offen.");
return false;
}
}

Das Script geht davon aus, dass das senkrechte Lineal auf Millimeter steht. Ansonsten müsste man die Umrechnung der Konturstärke anpassen.

FWIW: textFrame.paragraphs.lastItem().baseline gibt die Höhe der ersten Zeile des letzten Absatzes.

Mit freundlichem Gruß
Gerald Singelmann

--------------------------
Alles rund um InDesign und Automatisierung für Profis
http://www.cuppascript.com

als Antwort auf: [#488232] Top

WernerPerplies
Beiträge: 1036

21. Jan 2012, 12:56

Beitrag #5 von 7
Beitrag ID: #488235

Bewertung:

(486 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textbox nur in der Höhe an den Inhalt anpassen


Guten Tag Herr Singelmann,

Zitat FWIW: textFrame.paragraphs.lastItem().baseline gibt die Höhe der ersten Zeile des letzten Absatzes.


Danke für die Ergänzung, ich ergänze immer einen einzeiligen Miniabsatz, und ziehe anschließend den Wert gleich wieder ab.

Darauf hätte ich natürlich hinweisen müssen.


Einen schönen Tag wünscht

Werner Perplies
http://www.weepee.de
12 Anwenderskripte für InDesign
schon gesehen? Wps HyperlinkInspector
Werkzeuge und Infos für die Skriptprogrammierung, schon gesehen?
WpsProfilerClass

als Antwort auf: [#488233] Top

WernerPerplies
Beiträge: 1036

22. Jan 2012, 15:30

Beitrag #6 von 7
Beitrag ID: #488289

Bewertung:

(414 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textbox nur in der Höhe an den Inhalt anpassen


Hi,

ich habe jetzt mal in einem Skript alle drei Methoden gegenüber gestellt:
WpsFitTextFrame2ContentHeight


Einen schönen Tag wünscht

Werner Perplies
http://www.weepee.de
12 Anwenderskripte für InDesign
schon gesehen? Wps HyperlinkInspector
Werkzeuge und Infos für die Skriptprogrammierung, schon gesehen?
WpsProfilerClass

als Antwort auf: [#488235] Top

Stefan Oe p
Beiträge: 26

26. Jan 2012, 16:58

Beitrag #7 von 7
Beitrag ID: #488648

Bewertung:

(338 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textbox nur in der Höhe an den Inhalt anpassen


Hallo,
herzlichen Dank für die vielen Tipps. Ich habe mein Skript entsprechend umgeschrieben.

Schöne Grüße,
Stefan Oe

als Antwort auf: [#488289] Top


Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Textbox nur in der Höhe an den Inhalt anpassen


^