[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:
(4584 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: 5672

3. Sep 2012, 16:10
Beitrag # 2 von 12
Beitrag ID: #500314
Bewertung:
(4553 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:
(4514 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: 5672

4. Sep 2012, 09:18
Beitrag # 4 von 12
Beitrag ID: #500352
Bewertung:
(4496 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:
(4456 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:
(3117 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: 5672

26. Okt 2016, 17:56
Beitrag # 7 von 12
Beitrag ID: #553521
Bewertung:
(3089 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:
(2975 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:
(256 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: 5672

12. Jan 2019, 13:28
Beitrag # 10 von 12
Beitrag ID: #568452
Bewertung:
(238 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:
(211 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: 5672

14. Jan 2019, 09:00
Beitrag # 12 von 12
Beitrag ID: #568465
Bewertung:
(138 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]
X

Aktuell

PDF / Print
pdfChip

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
24.01.2019

Impressed GmbH, Hamburg
Donnerstag, 24. Jan. 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. Wir zeigen Ihnen, wie Sie die Lösung in bestehende Enfocus Switch-Workflows einbinden und somit die Freigabeprozesse mit Ihren Kunden erheblich beschleunigen können.

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
Veranstaltungen
24.01.2019

Hochschule der Medien, Stuttgart
Donnerstag, 24. Jan. 2019, 18.00 Uhr

Vortrag

Wie jedes Jahr im Januar besucht uns Monika Gause mit Neuigkeiten zu Illustrator und aus der restlichen Publishing-Welt. Der Abend ist pickepacke voll: Zunächst zeigt uns Monika alles Neue, was uns Adobe in Illustrator 2019 gepackt hat. Anschließend zeigt sie verschiedenen Möglichkeiten der realistischen Darstellung: Verläufe, Verlaufsgitter, Angleichungen und wie man sie in den Griff bekommt. Dazu gehört auch die Vorstellung des kostenlosen Plugin Mesh Tormentor. Abgeschlossen wird mit dem "Best-of" aus einem Infografik/Dokumentation-Seminar, das Monika letztes Jahr in München gehalten hat. Es ist nicht nötig Tickets zu kaufen oder eine Registrierung durchzuführen. Komme einfach vorbei! Wir freuen uns Katharina Frerichs und Christoph Steffens

Kostenlos, Ticketkauf oder Anmeldung ist nicht nötig.

Nein

Organisator: IDUG Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailchristoph.steffens AT gmail DOT com

Illustrator mit Monika Gause