[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Script um 2 Items von CC Library auf eine Seite zu plazieren

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

Script um 2 Items von CC Library auf eine Seite zu plazieren

zm3k
Beiträge gesamt: 11

23. Nov 2020, 23:23
Beitrag # 1 von 11
Bewertung:
(5741 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hello liebes Forum,

ich bin ein Neuling in der AdobeScripting, habe aber Erfahrung mit VBA.

Ich habe schon bisschen herumgesucht aber nicht das gefunden was ich bräuchte.

Uns zwar ich habe 2 Items in der CC Library einmal ein Popup und einmal ein Button. Ich würde gerne das Popup plazieren und dann den Button, diesem dann einen Klickevent zuweisen mit "gehe zu Status : popup1 (Sodass er das Popup öffnet wenn es den empty zustand hat)

Der Button sollte auf einer eigenen Ebene ganz unten platziert werden (wenn ich mehrere Popups mit Buttons auf einer Ebene habe dann überlagern sich die Buttons mit den Popups und man sieht die Buttons über dem Popup) und sich aber trotzdem mit dem Klickevent auf das gerade platzierte Popup beziehen.

1. Ist verständlich was ich meine?
2. Ist das umsetzbar?
3. Ich hörte das man nicht auf die CC library zugreifen kann und kann ich eine normale Bibliothek ansprechen wenn diese Items drinnen sind als alternative?

Bin leider recht ratlos, bin über alle Tipps dankbar.

lg Michael
X

Script um 2 Items von CC Library auf eine Seite zu plazieren

zm3k
Beiträge gesamt: 11

24. Nov 2020, 08:27
Beitrag # 2 von 11
Beitrag ID: #577700
Bewertung:
(5693 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es wäre auch ok wenn ich einfach nur wüsste wie ich Items von der Library ansprechen kann.

Lg Michael


als Antwort auf: [#577699]

Script um 2 Items von CC Library auf eine Seite zu plazieren

Uwe Laubender
Beiträge gesamt: 4852

24. Nov 2020, 09:27
Beitrag # 3 von 11
Beitrag ID: #577701
Bewertung:
(5670 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,
ich würde zunächst mal eine InDesign-Bibliothekdatei anlegen, die entsprechenden Objekte reinladen und dann den gedachten Workflow "per Hand" durchspielen.

Danach kannst Du Dir im DOM das anschauen:

https://www.indesignjs.de/...latest/#Library.html
https://www.indesignjs.de/...Asset.html#d1e298539


Keinerlei Erfahrung habe ich damit:

The Adobe Creative Cloud Libraries API Is Available Now!
Siddharth Arora, Oct 21
https://medium.com/...able-now-642f0dee028
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#577699]

Script um 2 Items von CC Library auf eine Seite zu plazieren

TMA
Beiträge gesamt: 369

26. Nov 2020, 09:45
Beitrag # 4 von 11
Beitrag ID: #577742
Bewertung:
(5357 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,
Du kannst ein Objekt aus einer Library, zumindest in AS, so platzieren:

place asset [assetObject] on [reference]

Vielleicht hilft dir das weiter, das sollte für JS ja ähnlich sein.

Gruß
TMA


als Antwort auf: [#577701]

Script um 2 Items von CC Library auf eine Seite zu plazieren

Uwe Laubender
Beiträge gesamt: 4852

26. Nov 2020, 10:04
Beitrag # 5 von 11
Beitrag ID: #577743
Bewertung:
(5349 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,
klar ist das, ich sag' mal relativ "einfach".
Wenn man bereits Erfahrung damit hat.

Deshalb habe ich ja die DOM-Doku für ExtendScript verlinkt.
Natürlich muss die *.indl-Datei erst mal überhaupt geladen und angesprochen werden, damit "Assets" verfügbar werden. Außerdem gibt's dann schon ein paar Feinheiten und kleine Überraschungen mit der Methode asset.placeAsset(), die man erst mal gut testen sollte.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#577742]

Script um 2 Items von CC Library auf eine Seite zu plazieren

TMA
Beiträge gesamt: 369

26. Nov 2020, 13:27
Beitrag # 6 von 11
Beitrag ID: #577744
Bewertung:
(5299 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Dann möchte ich einmal etwas anders antworten und mich auf diese Sätze beziehen:
Zitat Bin leider recht ratlos, bin über alle Tipps dankbar.

Zitat Es wäre auch ok wenn ich einfach nur wüsste wie ich Items von der Library ansprechen kann.


Das kannst du über den Namen eines Items machen.

Genauso verhält es sich, wenn du mehrere Libraries hast. Die Lib kannst du auch über den Namen ansprechen.

Wenn ich z.B. die Referenz zu dem item "Popup" der Bibliothek "meineBibliothek" haben möchte, gehe ich in AppleScript so vor:
Code
-- Referenz zu der Bibliothek 
set libRef to item 1 of every library whose name = "meineBibliothek"
-- Referenz zum item "Popup"
set popupRef to item 1 of every asset of libRef whose name = "Popup"


Evtl. hilft dieses um in JavaScript zum gleichen Ziel zu kommen.
Da kann bestimmt ein JS Experte weiterhelfen.

Gruß
TMA


als Antwort auf: [#577700]

Script um 2 Items von CC Library auf eine Seite zu plazieren

zm3k
Beiträge gesamt: 11

8. Dez 2020, 08:17
Beitrag # 7 von 11
Beitrag ID: #577885
Bewertung:
(4667 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hello, danke für die vielen Infos. Im Moment mach ich es jetzt so das ich einfach die idms per placegun reinlade, das funktioniert auch soweit, mir wäre aber lieber es direkt reinzuladen ohne das ich es auf dem mauszeigen hätte.

Ich habe eher ein problem einen Layer auszuwählen.
Also ich versuche gerade eine If schleife zu machen wo ich mit

Code
app.document.layers.itemByName("popup") 


prüfen will ob ein layer vorhanden ist der "popup" heisst
wenn ja dann erstelle dort einen layer der popup1 heisst wobei 1 eine variable sein muss die ich später prüfen kann wähle diesen aus und platzier dort meine Idms.

Generell gehts mir eher darum das ich nicht so wirklich weiß wie ich Elemente ansprechen kann, die Indesign script guide Seite ist super umständlich oder ich bin noch zu unerfahren.

in Vba(excel) wäre es gewesen
Code
if workbook.name = "popup" then  
bla bla
else
bla bla
end if


Geplant wäre gewesen

1. prüfe ob layer "popup" vorhanden ist

= ja - dann erstelle in layer "popup" den layer "popup1" und plaziere dort popup.idms (problem da es mehrere popups sein können muss die zahl bei popup"1" eine variable sein die per abfrage erhöht wird), plaziere layer popup ganz nach oben

= nein - erstelle layer "popup" , erstelle layer "popup1" und lade popup.idms hinein, plaziere layer popup ganz nach oben.

(popup.idms ist ein Objekt mit einem "emty" zustand und einen "popup" zustand den ich mit einem klick status event umschalten könnte)

2. prüfe ob layer "buttons" vorhanden ist, und schiebe den layer ganz nach unten, selbes spiel wie Nr 1. nur das es eine button.idms ist
3. sage dem button.idms file, (das ist eine Schaltfläche) das er per klick den status von popup1 auf popup setzt.

So in diese richtung sollte es gehen, wenn mir jemand ansätze anbieten könnte wäre ich schon sehr dankbar.

Weitere Gedanken:
Wäre es möglich wenn ich ein Bild hätte welches ausgewählt ist daraus ein Popup zu machen indem ich das Bild kopiere und in dem neu erstellten popup(ist ein Ordner) in eine gewisse ebene reinlade, dann das bild von der größe so anpasse das es 80% die breite der seite hat dann im popup die vorhanden ramen dem bild an dem bild anpasse, dann wie oben auch einen button reinlade welche dann den status des popup von "emty" auf "popup" setzt ? also jetzt wo ich es aufgeschrieben habe musste es gehen , haha ^^

lg Michael


als Antwort auf: [#577742]

Script um 2 Items von CC Library auf eine Seite zu plazieren

Uwe Laubender
Beiträge gesamt: 4852

8. Dez 2020, 09:18
Beitrag # 8 von 11
Beitrag ID: #577886
Bewertung:
(4634 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,
ob ein InDesign-Objekt vorhanden ist, kannst Du mit isValid prüfen.
Siehe auch hier die DOM-Dokumentation, die diese Eigenschaft beim Objekt Deiner Wahl aufführt. Im Falle des Objekts layer beispielsweise:

http://jongware.mit.edu/...c_Layer.html#isValid

In ExtendScript-Code ausgedrückt:

Code
/* 
Achte bitte auf die korrekte Syntax,
wenn Du ein Dokument ansprechen möchtest:

app.activeDocument
app.documents.item(0)
app.documents[0]

Nicht: app.document

*/

var myDoc = app.activeDocument ;
var myLayer = myDoc.layers.itemByName("popup");

/*
Nachfragen:
Ist die Ebene NICHT vorhanden?
Dann füge eine Ebene hinzu.

Neben dem Namen, lassen sich noch andere Eigenschaften über das Objekt definieren,
das die Methode add() als Argument nimmt.
Beispielsweise layerColor

Verneinung durch vorangestelltes !

*/
if( !myLayer.isValid )
{
myLayer =
myDoc.layers.add
(
{
name : "popup" ,
layerColor : UIColors.MAGENTA
}
);
}
else
{
myLayer.layerColor = UIColors.MAGENTA
};

*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#577885]

Script um 2 Items von CC Library auf eine Seite zu plazieren

zm3k
Beiträge gesamt: 11

8. Dez 2020, 10:32
Beitrag # 9 von 11
Beitrag ID: #577887
Bewertung:
(4616 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hello Uwe,

danke für die Ínfos, das hilft schon mal weiter.

Hätte ein paar Fragen:

Was ist der unterschied zwischen artLayers und Layers

Wie verschiebe ich Layer zb das ich diesen an obester stelle hätte oder untester ? hat das mit dem index zu tun ?

Wie würde der Code aussehen wenn ich schauen möchte ob der layer vorhanden ist (mit isvalid das hab ich verstanden) doch wenn ich den gefundenen layer dann aktivieren

Bin für alle Infos dankbar

lg Michael


als Antwort auf: [#577886]

Script um 2 Items von CC Library auf eine Seite zu plazieren

Uwe Laubender
Beiträge gesamt: 4852

8. Dez 2020, 11:54
Beitrag # 10 von 11
Beitrag ID: #577893
Bewertung:
(4590 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,
ich rate Dir ganz dringend zu einem Buch von Gregor Fellenz, um Dir die Grundlagen von ExtendScript und InDesign klarzumachen:

InDesign automatisieren
Gregor Fellenz
2. Auflage
https://www.indesignjs.de/auflage2/

So nebenbei:
artLayer gibt's in InDesign nicht.
Das Objekt gibt's nur in PhotoShop.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#577887]

Script um 2 Items von CC Library auf eine Seite zu plazieren

zm3k
Beiträge gesamt: 11

8. Dez 2020, 14:05
Beitrag # 11 von 11
Beitrag ID: #577902
Bewertung:
(4565 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke, ja könnte ich mir mal ansehen eignetlich will ich nicht all so viel herum scripten, doch für ein Projekt ist das jetzt doch hilfreich.

Mein code schaut im moment so aus

Code
 
var myDoc = app.activeDocument ;
var mypoplayer = myDoc.layers.itemByName("popup");
var mybtnlayer = myDoc.layers.itemByName("button");

var mypop = ("/Users/zm3k_/Documents/Arbeit/qmm_emag_conniseurcircle_2020/Elemente/Popup/popup.idms");
var mybtn = ("/Users/zm3k_/Documents/Arbeit/qmm_emag_conniseurcircle_2020/Elemente/Popup/minus.idms");

//Schaut nach ob Popup layer vorhanden ist

if( !mypoplayer.isValid )
{
mypoplayer =
myDoc.layers.add
(
{
name : "popup" ,
layerColor : UIColors.MAGENTA
}
);
alert ("Popuplayer wurde erstellt");
myDoc.activeLayer = mypoplayer;
myDoc.placeGuns.loadPlaceGun(mypop);
}
else
{
mypoplayer.layerColor = UIColors.MAGENTA
alert("Popuplayer ist schon vorhanden")
myDoc.activeLayer = mypoplayer;
myDoc.placeGuns.loadPlaceGun(mypop);

};

//Schaut nach ob button layer vorhanden ist

if( !mybtnlayer.isValid )
{
mybtnlayer =
myDoc.layers.add
(
{
name : "button" ,
layerColor : UIColors.RED
}
);
alert ("Button Layer wurde erstellt");
myDoc.activeLayer = mybtnlayer;
myDoc.placeGuns.loadPlaceGun(mybtn);
}
else
{
mybtnlayer.layerColor = UIColors.RED
alert("Button Layer ist schon vorhanden")
myDoc.activeLayer = mybtnlayer;
myDoc.placeGuns.loadPlaceGun(mybtn);

};


Jetzt würde ich gern den Button Layer ganz nach unten schieben und den Popup ganz nach oben, denke das ich per index da werte vergeben müsste, doch der Syntax is mir noch bissl unklar.

Was auch angenehm wäre ist wenn ich nicht per mausklick die idms placen würde sondern einfach im dokument gedroped wird, also sowas wie place on page oder sowas, ich weiß nicht ob placegun nur das placen per mausklick erlaubt oder ob ich ihn anhand von positionen ihm das schon sagen kann.

Danke schon für die tolle Hilfe.


als Antwort auf: [#577893]
X

Aktuell

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, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
21.01.2021 - 22.01.2021

Digicomp Academy AG, Bern oder Basel
Donnerstag, 21. Jan. 2021, 08.30 Uhr - Freitag, 22. Jan. 2021, 17.00 Uhr

Kurs

Dieser Basic-Kurs ist der perfekte Einstieg in die Welt von InDesign, dem vielseitigen Layout-Programm. Sie lernen, wie InDesign aufgebaut ist, wie saubere Dokumente erstellt werden und wie man korrekt mit gelieferten InDesign-Projekten umgeht.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/INDEM1

Veranstaltungen
21.01.2021

Illustrator - das unbekannte Wesen

Online
Donnerstag, 21. Jan. 2021, 19.00 Uhr

Vortrag

Millionen Funktionen, und immer kommen neue dazu! Monika Gause ist jeden Januar aufs Neue ein gern gesehener Gast bei der IDUG Stuttgart. - Sie bringt alle Neuerungen mit, die 2020 dazukamen und jede Menge Tipps und Tricks. - Zudem wird sie uns informieren, was wir in Illustrator beachten müssen, wenn wir Daten fürs Web erstellen bzw. aufbereiten. - Wichtig zu wissen: "Dos and Don'ts" in Illustrator. Welche Fehler sollte man dringend vermeiden und was muss man unbedingt tun, damit es Spaß macht mit Illustrator zu arbeiten. - Dieses Jahr hast Du zusätzlich die Möglichkeit Monika im Voraus Fragen zu stellen. Fülle dieses Formular mit deinen Fragen; auch Beispieldateien sind anfügbar: https://forms.gle/fJmF8C6MjbDoEhED8

Nein

Organisator: InDesign Usergroup Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailidug AT satzkiste DOT de

https://idugs67.eventbrite.de/

IDUGS #67 Illustrator mit Monika Gause

Neuste Foreneinträge


Abrisse im Druck

CC 2020: Problem mit Textumfluss mit verankerten Objekten

Affinity Photo od. Designer -Bildecke einrollen

Suchen u. Ersetzen von Strings mit bestimmter horizontaler Skalierung [INDD15.1.1 WIN10]

Netzwerklaufwerke verbinden -> Bei nicht verfügbar Fehlermeldung unterdrücken

Fortlaufende Nummerierung der Druckbogen

Verschiedene Netzwerke Handeln

Ende der Unterstützung von Flash Player - und jetzt?

Bilder High> Low

weitere peinliche Fragen zu Selbstverständlichkeiten
medienjobs