Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » Übersatztext: "Rahmen an Inhalt anpassen" per Script?

Übersatztext: "Rahmen an Inhalt anpassen" per Script?

MZA
Beiträge gesamt:

22. Jul 2016, 10:01
Bewertung:

gelesen: 9640

Beitrag als Lesezeichen
Hallo zusammen,
wir haben unseren Schriftenfundus aktuell von Type1 auf OpenType umgestellt. Hierdurch kommt es bei einigen Schriften durch die Ersetzung zu Übersatztext. Da wir meistens mit an Inhalt angepassten Rahmen arbeiten, teilweise sehr umfangreich. Ist euch ein Script bekannt, mit dem man alle Rahmen mit Übersatztext in einem Dokument auf einen Schlag an den Inhalt anpassen könnte?

Vielen Dank für Unterstützung vorab und beste Grüße,
mza

Übersatztext: "Rahmen an Inhalt anpassen" per Script?

Martin Fischer
  
Beiträge gesamt: 12783

22. Jul 2016, 10:34
Bewertung:

gelesen: 9624

Beitrag als Lesezeichen
Hilft die automatische Größeanpassung im
Objektstil?

Viele Grüße
Martin


Übersatztext: "Rahmen an Inhalt anpassen" per Script?

Kai Rübsamen
  
Beiträge gesamt: 4684

22. Jul 2016, 10:49
Bewertung:

gelesen: 9608

Beitrag als Lesezeichen
Hm, beunruhigt euch das gar nicht? Übersatztext bedeutet ja, dass sich der ganze Umbruch verschoben hat.

Zum Anpassen von Textrahmen versuch mal das:

Code
// Textrahmen anpassen 

app.doScript( main, ScriptLanguage.JAVASCRIPT , [], UndoModes.ENTIRE_SCRIPT, "Textrahmen anpassen" );

function main() {
// vorbeugenderweise das Anzeigen von Dialogen aktivieren
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;

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

// das Dokument im Vordergrund
var curDoc = app.documents[0];
// alle Textrahmen
var tFrames = curDoc.textFrames.everyItem().getElements();

for (var i = 0; i < tFrames.length; i++) {
var tf = tFrames[i];
var tfGB = tf.geometricBounds;
// den Rahmen vergrößern …
tfGB[2] = tfGB[2] + 20;
tf.geometricBounds = tfGB;
// … und wieder an den Text anpassen
fitFrame(tf);
}

function fitFrame(aFrame) {
var lastBaseLine = aFrame.lines[-1].baseline;
var b = aFrame.geometricBounds;
aFrame.geometricBounds = [b[0], b[1], lastBaseLine, b[3]];
}
}


Gruß Kai Rübsamen

Übersatztext: "Rahmen an Inhalt anpassen" per Script?

Uwe Laubender
Beiträge gesamt: 5319

22. Jul 2016, 11:09
Bewertung:

gelesen: 9582

Beitrag als Lesezeichen
Antwort auf [ Kai Rübsamen ] Hm, beunruhigt euch das gar nicht? Übersatztext bedeutet ja, dass sich der ganze Umbruch verschoben hat.


Hallo Kai,
also mich würde das beunruhigen.
Ich würde versuchen, das anders zu lösen.

Vielleicht hilft ja für den Stehsatz die Schrift etwas enger zu setzen?
Ist natürlich auch ein Gefrickel. Und die Trennungen? Die müssen natürlich in jedem Fall auf Richtigkeit untersucht werden.
*****
Mit herzlichem Gruß,
Uwe Laubender

Übersatztext: "Rahmen an Inhalt anpassen" per Script?

MZA
Beiträge gesamt:

22. Jul 2016, 11:11
Bewertung:

gelesen: 9578

Beitrag als Lesezeichen
Antwort auf [ Martin Fischer ] Hilft die automatische Größeanpassung im
Objektstil?


Vielen Dank für deine Rückfrage. Was genau meinst du in diesem Fall? Bewegt sich das in "[Einfacher Textrahmen]"? Für Textrahmen haben wir bisher fast keine Objektformate verwendet...

Gruß,
mza

Übersatztext: "Rahmen an Inhalt anpassen" per Script?

MZA
Beiträge gesamt:

22. Jul 2016, 11:14
Bewertung:

gelesen: 9573

Beitrag als Lesezeichen
Hallo ihr beiden,
Problem ist (glücklicherweise) nicht die Laufweite sondern eine veränderte Versalhöhe bzw. erste Grundlinie.

Gruß,
mza

Übersatztext: "Rahmen an Inhalt anpassen" per Script?

Uwe Laubender
Beiträge gesamt: 5319

22. Jul 2016, 11:16
Bewertung:

gelesen: 9570

Beitrag als Lesezeichen
Hallo mza,
es ist wohl "Automatisch Größe ändern" in den "Textrahmenoptionen" gemeint.
Funktioniert mit alleinstehenden Textrahmen und dem letzten Textrahmen einer Textrahmenkette.
*****
Mit herzlichem Gruß,
Uwe Laubender

Übersatztext: "Rahmen an Inhalt anpassen" per Script?

MZA
Beiträge gesamt:

22. Jul 2016, 11:17
Bewertung:

gelesen: 9568

Beitrag als Lesezeichen
Antwort auf [ Kai Rübsamen ] Hm, beunruhigt euch das gar nicht? Übersatztext bedeutet ja, dass sich der ganze Umbruch verschoben hat.

Zum Anpassen von Textrahmen versuch mal das:

Code
// Textrahmen anpassen 

app.doScript( main, ScriptLanguage.JAVASCRIPT , [], UndoModes.ENTIRE_SCRIPT, "Textrahmen anpassen" );

function main() {
// vorbeugenderweise das Anzeigen von Dialogen aktivieren
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;

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

// das Dokument im Vordergrund
var curDoc = app.documents[0];
// alle Textrahmen
var tFrames = curDoc.textFrames.everyItem().getElements();

for (var i = 0; i < tFrames.length; i++) {
var tf = tFrames[i];
var tfGB = tf.geometricBounds;
// den Rahmen vergrößern …
tfGB[2] = tfGB[2] + 20;
tf.geometricBounds = tfGB;
// … und wieder an den Text anpassen
fitFrame(tf);
}

function fitFrame(aFrame) {
var lastBaseLine = aFrame.lines[-1].baseline;
var b = aFrame.geometricBounds;
aFrame.geometricBounds = [b[0], b[1], lastBaseLine, b[3]];
}
}



Vielen Dank. Das Script schenkt mir zumindest schonmal ein paar Zeilen mehr aber ganz auflösen tut es den Übersatztext noch nicht... (?)

Gruß
mza

Übersatztext: "Rahmen an Inhalt anpassen" per Script?

Uwe Laubender
Beiträge gesamt: 5319

22. Jul 2016, 11:25
Bewertung:

gelesen: 9558

Beitrag als Lesezeichen
Antwort auf [ MZA ] Hallo ihr beiden,
Problem ist (glücklicherweise) nicht die Laufweite sondern eine veränderte Versalhöhe bzw. erste Grundlinie.


Dann könnte man genau an diesem Punkt ansetzen.
Auch dafür: "Textrahmenoptionen" => "Grundlinienoptionen".
*****
Mit herzlichem Gruß,
Uwe Laubender

Übersatztext: "Rahmen an Inhalt anpassen" per Script?

MZA
Beiträge gesamt:

22. Jul 2016, 11:29
Bewertung:

gelesen: 9553

Beitrag als Lesezeichen
Antwort auf [ Uwe Laubender ] Hallo mza,
es ist wohl "Automatisch Größe ändern" in den "Textrahmenoptionen" gemeint.
Funktioniert mit alleinstehenden Textrahmen und dem letzten Textrahmen einer Textrahmenkette.


Das ist ja der Wahnsinn! Kannte ich noch gar nicht... Schonmal eine sehr annehmbare Lösung. Vielen Dank!

Übersatztext: "Rahmen an Inhalt anpassen" per Script?

MZA
Beiträge gesamt:

22. Jul 2016, 11:33
Bewertung:

gelesen: 9541

Beitrag als Lesezeichen
Antwort auf [ Uwe Laubender ]
Antwort auf [ MZA ] Hallo ihr beiden,
Problem ist (glücklicherweise) nicht die Laufweite sondern eine veränderte Versalhöhe bzw. erste Grundlinie.


Dann könnte man genau an diesem Punkt ansetzen.
Auch dafür: "Textrahmenoptionen" => "Grundlinienoptionen".


Da sich das von Schrift zu Schrift anders verhält halte ich die "Autom. Größenanpassung" für bestens geeignet. Vielen Dank euch.

Beste Grüße,
mza

Übersatztext: "Rahmen an Inhalt anpassen" per Script?

Kai Rübsamen
  
Beiträge gesamt: 4684

22. Jul 2016, 11:45
Bewertung:

gelesen: 9506

Beitrag als Lesezeichen
Antwort auf: Das Script schenkt mir zumindest schonmal ein paar Zeilen mehr aber ganz auflösen tut es den Übersatztext noch nicht... (?)

Das wundert mich, da ein Textrahmen zunächst (bei Voreinstellung mm) auf 20 mm vergrößert und dann angepasst wird. Da scheint es also jede Menge Übersatz zu geben.

Falls du das ändern willst, einfach hier einen anderen Wert eingeben, z.B. 40:
Code
// den Rahmen vergrößern …  
tfGB[2] = tfGB[2] + 20;


Antwort auf: Da sich das von Schrift zu Schrift anders verhält halte ich die "Autom. Größenanpassung" für bestens geeignet.

Die autom. Größenanpassung nimmst du in der Regel für Infokästchen usw., also einzelne Rahmen. Wenn du das für alles aktivierst, wirst du feststellen, dass eure Dokumente plötzlich langsamer werden, weil die Höhe eines Rahmens permanent dynamisch geprüft wird.

Gruß Kai Rübsamen

(Dieser Beitrag wurde von Kai Rübsamen am 22. Jul 2016, 11:46 geändert)

Übersatztext: "Rahmen an Inhalt anpassen" per Script?

MZA
Beiträge gesamt:

22. Jul 2016, 12:01
Bewertung:

gelesen: 9433

Beitrag als Lesezeichen
Antwort auf: Das wundert mich, da ein Textrahmen zunächst (bei Voreinstellung mm) auf 20 mm vergrößert und dann angepasst wird. Da scheint es also jede Menge Übersatz zu geben.


Pardon, mein Fehler. Hatte es nicht mit einem geringfügigen Übersatz getestet...

Antwort auf: Die autom. Größenanpassung nimmst du in der Regel für Infokästchen usw., also einzelne Rahmen. Wenn du das für alles aktivierst, wirst du feststellen, dass eure Dokumente plötzlich langsamer werden, weil die Höhe eines Rahmens permanent dynamisch geprüft wird.


Vielen Dank für die "Vorwarnung". Für eine nachträgliche Anpassung eignet es sich perfekt. Kann man ja dann wieder deaktivieren. Je nach Dokumentumfang überlegen wir aber dies generell einzusetzen. Ist schon eine tolle Funktion und bisher bei uns "durchgerutscht"...

Beste Grüße,
mza

(Dieser Beitrag wurde von MZA am 22. Jul 2016, 12:02 geändert)

Übersatztext: "Rahmen an Inhalt anpassen" per Script?

NEU!
Beiträge gesamt: 180

22. Jul 2016, 16:25
Bewertung:

gelesen: 9251

Beitrag als Lesezeichen
Ich hab hier auch noch n Code-Snippsel in meinem Applescript-Sammelsurium gefunden:


Code
tell application "Adobe InDesign CS5.5" 
activate
set AI to all page items of active document
repeat with k from 1 to length of AI

if class of item k of AI = text frame then
if overflows of item k of AI = true then
tell item k of AI
fit given frame to content
end tell
end if
end if
end repeat
end tell