[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Sämtlichen im Fließtext verankerten Textrahmen einen Objektstil zuweisen

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

Sämtlichen im Fließtext verankerten Textrahmen einen Objektstil zuweisen

irbis
Beiträge gesamt: 30

17. Mär 2010, 20:27
Beitrag # 1 von 12
Bewertung:
(5240 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich suche zu Folgendem eine Lösung: In einem Dokument sollen sämtliche im Fließtext verankerte Textrahmen einen bestimmten Objektstil erhalten. Die Rahmen selbst haben leider unterschiedliche Attribute, sodass sie eben mit der Zuweisung eines Objektstils vereinheitlicht werden sollen. Die Suchen-&-Ersetzen-Möglichkeiten unter dem Reiter "Objekt" bringen leider nicht den gewünschten Erfolg.

Eine (nicht so wichtige) Erweiterung wäre noch, dass die verankerten Rahmen alle eine einheitliche Rahmenbreite bekommen (in diesem Fall 30 mm) und in der Rahmenhöhe auf die enthaltene Textmenge reduziert werden. Leider kann man ja rein über die Objektstil-Attribute den Rahmen keine festen Größenangaben zuweisen, sondern lediglich deren Position festlegen.

Hat jemand eine Idee? Unabhängig von der Größenfestlegung der Boxen (mein obiger 2. Absatz) wäre allein die Zuweisung eines Objektstils schon eine riesen Hilfe.

Für eure Unterstützung vorab herzlichen Dank!

vg,
irbis
X

Sämtlichen im Fließtext verankerten Textrahmen einen Objektstil zuweisen

Martin Fischer
  
Beiträge gesamt: 12783

17. Mär 2010, 21:54
Beitrag # 2 von 12
Beitrag ID: #436873
Bewertung:
(5222 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo irbis,

ersteres wäre mit einem geringen Zeitaufwand von ca. 15-20 Minuten elegant mit Auswahldialog für den Objektstil zu realisieren.

Zur Größenfestlegung von Objekten mit einem bestimmten Objektstil
siehe setBoundsOfObjectsWithAppliedObjectStyle_2.jsx.


als Antwort auf: [#436868]

Sämtlichen im Fließtext verankerten Textrahmen einen Objektstil zuweisen

irbis
Beiträge gesamt: 30

17. Mär 2010, 22:09
Beitrag # 3 von 12
Beitrag ID: #436874
Bewertung:
(5215 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

Danke für die schnelle Antwort! Für eine Umsetzung der Objektstilzuweisung wäre ich sehr dankbar (gerne übernehme ich auch die Kosten für den Aufwand), die Einbindung eines Auswahldialogs ist aber nicht unbedingt notwendig. Notfalls kann man ja den erforderlichen Objektstilnamen direkt im Skript ändern.

Danke auch für den Tip zu dem anderen Skript bzgl. Größenfestlegung. Damit komme ich dann schon klar. Aber das Erstgenannte wäre mir wie gesagt ein großes Anliegen...

Herzlichen Dank vorab!

vg,
irbis


als Antwort auf: [#436873]

Sämtlichen im Fließtext verankerten Textrahmen einen Objektstil zuweisen

Martin Fischer
  
Beiträge gesamt: 12783

17. Mär 2010, 22:32
Beitrag # 4 von 12
Beitrag ID: #436875
Bewertung:
(5204 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Quick & dirty etwa so:

Code
var myOSname = 'Marginalie'; 

if (app.selection.length >= 0 && (app.selection[0].hasOwnProperty ('baseline') || app.selection[0].constructor.name == 'TextFrame') )
{
var tf = app.selection[0].parentStory.textFrames;
for (var i = tf.length-1; i >= 0; i--)
try
{
tf[i].appliedObjectStyle = app.activeDocument.objectStyles.item(myOSname);
} catch(e) {}
}



als Antwort auf: [#436874]

Sämtlichen im Fließtext verankerten Textrahmen einen Objektstil zuweisen

irbis
Beiträge gesamt: 30

17. Mär 2010, 22:46
Beitrag # 5 von 12
Beitrag ID: #436876
Bewertung:
(5195 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Quick & Dirty - das ist perfekt! Funktioniert super und erfüllt genau seinen Zweck! Vielen Dank!!!

vg,
irbis


als Antwort auf: [#436875]

Sämtlichen im Fließtext verankerten Textrahmen einen Objektstil zuweisen

irbis
Beiträge gesamt: 30

17. Mär 2010, 22:59
Beitrag # 6 von 12
Beitrag ID: #436878
Bewertung:
(5181 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe das Skript um zwei Zeilen erweitert. Insofern wird es auch dem zweitrangigen Anspruch gerecht, den verankerten Textrahmen neben dem Objektstil auch eine feste Größe mitzugeben:

Code
var myOSname = 'Marginaltextrahmen';  
var myBounds = [ "0p", "0p", "12mm", "30mm"]; // Koordinaten des Marginalientextrahmens [y1, x1, y2, x2]

if (app.selection.length >= 0 && (app.selection[0].hasOwnProperty ('baseline') || app.selection[0].constructor.name == 'TextFrame') )
{
var tf = app.selection[0].parentStory.textFrames;
for (var i = tf.length-1; i >= 0; i--)
try
{
tf[i].appliedObjectStyle = app.activeDocument.objectStyles.item(myOSname);
tf[i].geometricBounds = myBounds; // Zuweisung der Koordinaten (Höhe und Breite)
} catch(e) {}
}



als Antwort auf: [#436875]

Sämtlichen im Fließtext verankerten Textrahmen einen Objektstil zuweisen

irbis
Beiträge gesamt: 30

17. Mär 2010, 23:03
Beitrag # 7 von 12
Beitrag ID: #436879
Bewertung:
(5179 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Dennoch hab ich noch eine Frage:

Wie wären die Kommandos, dass das Skript nur auf eine vorher gemachte Textauswahl/Selection angewendet wird (und nicht auf den gesamten Text bzw. die gesamte Story)?

Vielen Dank vorab!

vg,
irbis


als Antwort auf: [#436875]

Sämtlichen im Fließtext verankerten Textrahmen einen Objektstil zuweisen

Martin Fischer
  
Beiträge gesamt: 12783

17. Mär 2010, 23:03
Beitrag # 8 von 12
Beitrag ID: #436880
Bewertung:
(5179 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Code
app.selection[0].textFrames.everyItem().appliedObjectStyle = app.activeDocument.objectStyles.item('Marginalie'); 


Laß einfach parentStory weg.


als Antwort auf: [#436879]
(Dieser Beitrag wurde von Martin Fischer am 17. Mär 2010, 23:23 geändert)

Sämtlichen im Fließtext verankerten Textrahmen einen Objektstil zuweisen

irbis
Beiträge gesamt: 30

18. Mär 2010, 09:52
Beitrag # 9 von 12
Beitrag ID: #436919
Bewertung:
(5105 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke, ich hab's hinbekommen. Super, vielen Dank!!!

vg,
irbis


als Antwort auf: [#436880]

Sämtlichen im Fließtext verankerten Textrahmen einen Objektstil zuweisen

iduser
Beiträge gesamt: 107

19. Feb 2012, 20:30
Beitrag # 10 von 12
Beitrag ID: #490295
Bewertung:
(3480 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich möchte das Script gern so erweitern, dass es nur die Objektstile von Objekten mit den Objektstilen [Ohne], [Erweiterter Textrahmen] und [Erweiterter Grafikrahmen] anpasst. Ich habe folgendes probiert:

Code
var myOSname = 'Objektformat';   
var myBounds = [ "0p", "0p", "12mm", "30mm"]; // Koordinaten des Marginalientextrahmens [y1, x1, y2, x2]

if (app.selection.length >= 0 && (app.selection[0].hasOwnProperty ('baseline') || app.selection[0].constructor.name == 'TextFrame') )
{
var tf = app.selection[0].parentStory.textFrames;
for (var i = tf.length-1; i >= 0; i--)
if (tf[i].appliedObjectStyle == "[Ohne]" || tf[i].appliedObjectStyle == "[Einfacher Grafikrahmen]" || tf[i].appliedObjectStyle == "[Einfacher Textrahmen]")
{
try
{
tf[i].appliedObjectStyle = app.activeDocument.objectStyles.item(myOSname);
tf[i].geometricBounds = myBounds; // Zuweisung der Koordinaten (Höhe und Breite)
} catch(e) {}
}
}


aber leider funktioniert es nicht, was müsste man für "[Ohne]", "[Erweiterter Textrahmen]" und "[Erweiterter Grafikrahmen]" einsetzen, damit es funktioniert?

Viele Grüße
Philipp


als Antwort auf: [#436919]

Sämtlichen im Fließtext verankerten Textrahmen einen Objektstil zuweisen

Martin Fischer
  
Beiträge gesamt: 12783

19. Feb 2012, 20:53
Beitrag # 11 von 12
Beitrag ID: #490296
Bewertung:
(3468 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Philipp,

vermutlich braucht's statt des strings ein Objektstil-Objekt.
Alternativ kannst Du mal die name-property der Objektstile mit dem string vergleichen.

Code
     if (tf[i].appliedObjectStyle.name == "[Ohne]" || tf[i].appliedObjectStyle.name == "[Einfacher Grafikrahmen]" || tf[i].appliedObjectStyle.name == "[Einfacher Textrahmen]") 



als Antwort auf: [#490295]
(Dieser Beitrag wurde von Martin Fischer am 19. Feb 2012, 20:55 geändert)

Sämtlichen im Fließtext verankerten Textrahmen einen Objektstil zuweisen

iduser
Beiträge gesamt: 107

20. Feb 2012, 00:47
Beitrag # 12 von 12
Beitrag ID: #490299
Bewertung:
(3413 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,
Code
if (tf[i].appliedObjectStyle.name == "[Ohne]" || tf[i].appliedObjectStyle.name == "[Einfacher Grafikrahmen]" || tf[i].appliedObjectStyle.name == "[Einfacher Textrahmen]") 

... funktioniert einwandfrei.
Danke für Ihre Unterstützung.

Viele Grüße
Philipp


als Antwort auf: [#490296]
X