[GastForen Programmierung/Entwicklung AppleScript ID CS 5.5: allen gleichen Bildern Objektformat zuweisen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

ID CS 5.5: allen gleichen Bildern Objektformat zuweisen

Goar
Beiträge gesamt: 346

3. Sep 2012, 14:22
Beitrag # 1 von 12
Bewertung:
(5768 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Skripter,

in einer langen Textkette sind viele gleiche Pictos pic1.ai verankert.
Denen soll ein bestimmtes Objektformat zugewiesen werden.

Von Hand ist es einfach: Im Verknüpfungsfenster alle pic1.ai markieren und das Objektformat im Objektformatfenster anklicken.

Geht das auch mit AS?
Komme ich elegant an alle Rahmen, die pic1.ai enthalten oder muss ich eine repeat-Schleife bemühen?

Grüße
Goar
---
> iMac 3,2 GHz Intel Core i5, 8 GB, MacOS 10.11.6, QXP 2018, ID CS6 <
X

ID CS 5.5: allen gleichen Bildern Objektformat zuweisen

Hans Haesler
  
Beiträge gesamt: 5736

3. Sep 2012, 16:10
Beitrag # 2 von 12
Beitrag ID: #500314
Bewertung:
(5737 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

ich hatte an so etwas gedacht:

Code
tell application "Adobe InDesign CS5.5" 
tell document 1
set objStyle to object style "Objektformat_XYZ"
set applied object style of (every rectangle whose name of graphic 1 is "pic1.ai") to objStyle
end tell
end tell

Das scheint aber nicht zu klappen.

Deshalb ist wohl eine Schleife notwendig. Ist doch kein Problem.

Code
tell application "Adobe InDesign CS5.5" 
activate
tell document 1
set objStyle to object style "Objektformat_XYZ"
repeat with n from 1 to count of every link
tell link n
if name is "pic1.ai" then
set applied object style of parent of parent to objStyle
end if
end tell
end repeat
end tell
display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1
end tell

Anscheinend ist das Definieren eines Objekts notwendig. Ein direktes Zuweisen mit dem Namen geht nicht:

Code
set applied object style of parent of parent to object style "Objektformat_XYZ" 

Gruss, Hans


als Antwort auf: [#500306]

ID CS 5.5: allen gleichen Bildern Objektformat zuweisen

Goar
Beiträge gesamt: 346

4. Sep 2012, 08:28
Beitrag # 3 von 12
Beitrag ID: #500346
Bewertung:
(5698 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

bis ich auf »link« gekommen wäre, hätte sich er ein neuer Tag das Licht der Welt erblickt.
Es waren einige Grafiken in gleicher Weise zu bearbeiten und neben dem Objektformat auch noch der Rahmen selber anzupassen; das konnte ich nach leichter Erweiterung alles mit Deinem Skript erledigen.

Ich hab’s zwar mit zwei getrennten Skripts gemacht, aber hier habe ich’s mal zusammengebaut:


Code
set balkenPicList to {"pic1.ai", "pic2.ai", "pic3.ai", "pic4.ai", "pic5.ai"} 
(*
Den Rahmen, in denen diese Grafiken stehen, soll das Objektformat »Objektformat XYZ« zugewiesen werden.
Außerdem sind diese Rahmen etwas kleiner als die Grafiken, daher sollen sie an die Größe der Grafiken angepasst werden.
*)

tell application "Adobe InDesign CS5.5"
activate
tell document 1
set objStyle to object style "Objektformat XYZ"
repeat with k from 1 to length of balkenPicList
set curPic to item k of balkenPicList
repeat with n from 1 to count of every link
tell link n
if name is curPic then
set applied object style of parent of parent to objStyle
fit parent of parent given frame to content
end if
end tell
end repeat
end repeat
end tell
display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1
end tell


Vielen Dank, Hans

und Grüße aus PB
Goar
---
> iMac 3,2 GHz Intel Core i5, 8 GB, MacOS 10.11.6, QXP 2018, ID CS6 <


als Antwort auf: [#500314]

ID CS 5.5: allen gleichen Bildern Objektformat zuweisen

Hans Haesler
  
Beiträge gesamt: 5736

4. Sep 2012, 09:18
Beitrag # 4 von 12
Beitrag ID: #500352
Bewertung:
(5680 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

bitteschön.

Vorschlag: Nur eine Schleife durch die Links (statt deren fünf).

Code
set balkenPicList to {"pic1.ai", "pic2.ai", "pic3.ai", "pic4.ai", "pic5.ai"} 
(*
Den Rahmen, in denen diese Grafiken stehen, soll das Objektformat »Objektformat XYZ« zugewiesen werden.
Außerdem sind diese Rahmen etwas kleiner als die Grafiken, daher sollen sie an die Größe der Grafiken angepasst werden.
*)

tell application "Adobe InDesign CS5.5"
activate
tell document 1
set objStyle to object style "Objektformat XYZ"
repeat with n from 1 to count of every link
tell link n
if name is in balkenPicList then
set applied object style of parent of parent to objStyle
fit parent of parent given frame to content
end if
end tell
end repeat
end tell
display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1
end tell

Das Einpassen könnte eventuell im Objektformat definiert werden. Stichwort "Rahmeneinpassungsoptionen".

Gruss, Hans


als Antwort auf: [#500346]

ID CS 5.5: allen gleichen Bildern Objektformat zuweisen

Goar
Beiträge gesamt: 346

4. Sep 2012, 21:16
Beitrag # 5 von 12
Beitrag ID: #500389
Bewertung:
(5640 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

diese Idee hatte bereits mein Hirn durchzuckt; hat aber nichts genützt, weil ich’s nicht ausgeführt habe.
Danke für den Stubser.

Das mit dem Einpassen müsste ich testen, wird aber nicht mehr gebraucht, da die Bilder ab gestern bereits eingepasst geliefert werden.
Von der Zuweisung des Objektformates wird aber reger Gebrauch gemacht.

Vielen Dank nochmal!
Goar
---
> iMac 3,2 GHz Intel Core i5, 8 GB, MacOS 10.11.6, QXP 2018, ID CS6 <


als Antwort auf: [#500352]

ID CS 5.5: allen gleichen Bildern Objektformat zuweisen

muecke07
Beiträge gesamt: 5

26. Okt 2016, 16:13
Beitrag # 6 von 12
Beitrag ID: #553520
Bewertung:
(4301 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

GENAU das Script was ich suche - nur leider scheint dies ausschließlich auf dem MAC zu funktionieren.
Ist das so?

Wenn ja, kann jemand das Script für WIN CC 2014 anpassen? Ich habe leider leider leider 0 Ahnung vom scripten. ;-(

Wenn nein, was mache ich falsch?
Fehlermeldung: "Problematischer Text: balkenPicList"

Beste Grüße von der muecke


als Antwort auf: [#500352]

ID CS 5.5: allen gleichen Bildern Objektformat zuweisen

Hans Haesler
  
Beiträge gesamt: 5736

26. Okt 2016, 17:56
Beitrag # 7 von 12
Beitrag ID: #553521
Bewertung:
(4273 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo muecke,

ja, ein AppleScript läuft nun mal nur unter Mac OS.
Für Windows muss der Code nach JavaScript portiert werden. Gesagt, getan:

Code
//ObjektFormatZuweisen_CC01d.js 

// der Array mit den Namen der Grafiken
var balkenPicArr = new Array("pic1.ai", "pic2.ai", "pic3.ai", "pic4.ai", "pic5.ai");

//Den Rahmen, in denen diese Grafiken stehen, soll das Objektformat »Objektformat XYZ«
//zugewiesen werden. Außerdem sind diese Rahmen etwas kleiner als die Grafiken,
//daher sollen sie an die Größe der Grafiken angepasst werden.

// das aktive Dokument
var curDoc = app.activeDocument;
// der Name des Objektformats
var objStyle = curDoc.objectStyles.itemByName("Objektformat XYZ");
// alle Links und deren Anzahl
var allLinks = curDoc.links;
var nLinks = allLinks.length;

// Schleife durch die Links
for (var n=0; n<nLinks; n++) {
// der aktuelle Link und dessen Name
var curLink = allLinks[n];
var curName = curLink.name;
// die Funktion aufrufen, welche das Vorhandensein prüft
var isInList = checkName(balkenPicArr, curName);
if (isInList) {
// der aktuelle Rahmen
var curFrame = curLink.parent.parent;
// das Objektformat zuweisen
curFrame.appliedObjectStyle = objStyle;
// den Rahmen an den Inhalt anpassen
curFrame.allGraphics[0].fit(FitOptions.FRAME_TO_CONTENT);
}
}

// das Ende der Aktion verkünden
var dlog = new Window("palette");
dlog.size = [320,100];
dlog.add("statictext", [80, 100, 320, 116], "Fertig.");
dlog.show();
// eine kleine Pause
$.sleep(999);
// das Fenster schliessen
dlog.close();


// die Funktion, welche das Vorkommen prüft ///////////////////////////////////////////
function checkName(balkenPicArr, curName) {
var isListed = false;
for (var p=0; p<balkenPicArr.length; p++) {
if (balkenPicArr[p] == curName) {
isListed = true;
break;
}
}
return isListed;
}

Angehängt ist eine gebrauchsfertige JavaScript-Datei für Windows.

Gruss, Hans


als Antwort auf: [#553520]
Anhang:
ObjektFormatZuweisen_CC01d.js (1.71 KB)

ID CS 5.5: allen gleichen Bildern Objektformat zuweisen

muecke07
Beiträge gesamt: 5

27. Okt 2016, 08:03
Beitrag # 8 von 12
Beitrag ID: #553523
Bewertung:
(4159 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

Sensationell!!! Das passte auf Anhieb.

Du hast am frühen Morgen schon ein kleines Leben gerettet ;-)
Vielen Dank.

Beste Grüße,
Steffen


als Antwort auf: [#553521]

ID CS 5.5: allen gleichen Bildern Objektformat zuweisen

Ka Ninchen
Beiträge gesamt: 8

12. Jan 2019, 11:34
Beitrag # 9 von 12
Beitrag ID: #568451
Bewertung:
(1440 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
Ist es sehr aufwendig hier noch eine Schleife einzubauen damit das Script nur den Gafiken das Objektformat zuweist wenn das erste Wort im Textrahmen „AR“ lautet oder ist es einfacher über die Objektformat direkt zu gehen?
Allerdings bin ich hier im AppleScript eigentlich falsch.
Liebe Grüße
Janina


als Antwort auf: [#553521]
(Dieser Beitrag wurde von Ka Ninchen am 12. Jan 2019, 11:41 geändert)

ID CS 5.5: allen gleichen Bildern Objektformat zuweisen

Hans Haesler
  
Beiträge gesamt: 5736

12. Jan 2019, 13:28
Beitrag # 10 von 12
Beitrag ID: #568452
Bewertung:
(1422 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Janina,

was, genau, meinst Du mit:
Zitat (...) wenn das erste Wort im Textrahmen „AR“ lautet (...)

Enthält der Textrahmen verankerte Grafiken?

Würdest Du bitte ein Demo-Dokument zur Verfügung stellen?

Antwort auf: Allerdings bin ich hier im AppleScript eigentlich falsch.

Wieso? Weil Du Windows benutzest? Oder ein JavaScript vorziehst?

Gruss, Hans


als Antwort auf: [#568451]

ID CS 5.5: allen gleichen Bildern Objektformat zuweisen

Ka Ninchen
Beiträge gesamt: 8

12. Jan 2019, 16:32
Beitrag # 11 von 12
Beitrag ID: #568457
Bewertung:
(1395 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
Ich schicke dir eine Mail

Grüße
Janina


als Antwort auf: [#568452]

ID CS 5.5: allen gleichen Bildern Objektformat zuweisen

Hans Haesler
  
Beiträge gesamt: 5736

14. Jan 2019, 09:00
Beitrag # 12 von 12
Beitrag ID: #568465
Bewertung:
(1322 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Janina,

danke für das InDesign-Dokument.

In den oben geposteten Scripts geht es darum, allen Bildrahmen, welche bestimmte Grafiken enthalten, ein Objektformat zuzuweisen.

Dein Anliegen ist anders. Pro Doppelseiten sind sechs Textrahmen verlinkt. Jeder Textfluss beginnt entweder mit "DE" oder mit "AR". Zwölf kleine Grafiken sind im Text verankert.

Das Script geht die Textketten durch und stellt fest, welche Buchstaben sich am Anfang befinden. Wenn "DE" geht es zur nächsten Textkette über. Wenn "AR" werden die verankerten Bildrahmen aufgelistet. Mit einer inneren Schleife wird das Objektformat zugewiesen,

Den Link zum JavaScript für Windows habe ich Dir zugestellt.

Gruss, Hans


als Antwort auf: [#568457]
Hier Klicken X
Hier Klicken

Aktuell

InDesign / Illustrator
indesign2019_300

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
17.08.2019 - 07.03.2020

3400 Burgdorf, BE
Samstag, 17. Aug. 2019, 08.30 Uhr - Samstag, 07. März 2020, 08.30 Uhr

Lehrgang

Absolventen/innen der Qualifikation Publisher Professional – Profil «Gestaltung» verfügen über Kompetenzen, welche ihnen gestatten, Projekte und Aufgaben der gestalterischen Umsetzung der Medienproduktion mit dem Einsatz der üblichen Publishing-Programme selbständig in Betrieben oder Organisationen zu übernehmen.

Ja

Organisator: PubliCollege GmbH

Kontaktinformation: Beat Kipfer, E-Mailinfo AT publicollege DOT ch

www.publicollege.ch

Publisher Professional-Profil Gestaltung
Veranstaltungen
22.08.2019

Impressed GmbH, Hamburg
Donnerstag, 22. Aug. 2019, 10.00 - 10.30 Uhr

Webinar

Wir stellen Ihnen in diesem kostenlosen ca. halbstündigen Webinar das neue Enfocus Switch PDF Review Modul zur Freigabe von PDF-Druckdaten vor.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Detlef Grimm, E-Mailschulungen AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=250

Enfocus Switch PDF Review Modul
Hier Klicken