[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt AS: selection » object reference / all page items / all graphics

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

AS: selection » object reference / all page items / all graphics

NEU!
Beiträge gesamt: 180

2. Apr 2019, 15:55
Beitrag # 1 von 9
Bewertung:
(6422 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Miteinander,

ich friemel schon den ganzen Tag an einer eigentlich simplen Aufgabe herum, und bräuchte nur den kleinen Kniff, dass ich weiterkomme. Wer mag bitte helfen?

Aufgabe:
Von einer Selection will ich vom Bild den Dateiname in den Zwischenspeicher. Sind mehrere Grafiken markiert, soll dieser String verkettet werden.

Leider kann eine Selection so ziemlich Alles enthalten – Gruppen voller Objekte ohne Images, in Container steckend, nochmal gruppiert – verdreht, vertrackt, verzettelt.

Ich kriege das schon ganz gut mit einem Objekt hin, abzufangen, und in den Conatiner zu 'gucken'. Aber sobald es mehrere sind, oder auch nicht-Grafiken wie leere Ovale, bin ich aufgeschmissen.

Was leider nicht funktioniert ist folgendes…
[i]set myThings to object reference of all page items of selection whose class is in [image, PDF, EPS, imported page][/i]
…wohl aber wenn er nur eine Klasse vergleichen soll und kein Array übergeben wird, warum auch immer. Wär schön elegant gewesen.

Nun versuche ich also mein Array aus der Selection auf Grafiken zu untersuchen und in ein neues Array zu schreiben. Vielleicht gibt es ja eine ganz einfache Möglichkeit, alle Grafiken, so tief sie noch in Verschachtelungen drin stecken, irgendwie aufzulisten…und zwar nur aus der Selection :-/

Vielen Dank für Eure Hilfe!
X

AS: selection » object reference / all page items / all graphics

Uwe Laubender
Beiträge gesamt: 5316

2. Apr 2019, 21:55
Beitrag # 2 von 9
Beitrag ID: #569587
Bewertung:
(6393 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, NEU!

Muss es eine AppleScript-Lösung sein?

Für ExtendScript müsstest Du eine Schleife durch die Auswahl machen und für jedes Element der Auswahl das allGraphics-Array auslesen. Über eine Schleife über das allGraphics-Array kannst Du dann ermitteln, ob:

1. Die einzelne Grafik eine Eigenschaft itemLink besitzt.
2. Falls ja, dann handelt es sich um eine verlinkte Grafikdatei und um keine per Copy/Paste in die InDesign gezogene "Pixelmasse".
3. Über File( itemLink.filePath ).name bekommst Du den Dateinamen.

Etwa so:

Code
var selection = app.selection; 
var selLength = selection.length;

var placedGraphicNames = [];

for( var n=0; n<selLength; n++ )
{
var currentAllGraphics = selection[n].allGraphics;
var currentAllGraphicsLength = currentAllGraphics.length;

for( var a=0; a<currentAllGraphicsLength; a++ )
{
var currentItemLink = currentAllGraphics[a].itemLink;
if( currentItemLink == null ){ continue };

placedGraphicNames[ placedGraphicNames.length++ ] =
File( currentItemLink.filePath ).name;
}
};

alert( placedGraphicNames.join("\r") );


Was jetzt noch fehlt ist eine Filterfunktion, die nur bestimmte Grafikdateiarten durchlässt oder getrennt listet. Das überlasse ich Dir :-)

Hinweise hierzu findest Du ganz bestimmt unter:
http://jongware.mit.edu/idcs6js/pc_Link.html

Schau' Dir mal die Eigenschaften von Link an.


als Antwort auf: [#569581]

AS: selection » object reference / all page items / all graphics

NEU!
Beiträge gesamt: 180

3. Apr 2019, 10:16
Beitrag # 3 von 9
Beitrag ID: #569595
Bewertung:
(6364 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Da muss man zwar wieder sagen: Chapeau! Ein tolles Script, schlank und clean. Da vielen Dank für.

Leider müsste ich jetzt versuchen, dem Script noch zwei Sachen beizubringen (menuID invoken und SystemEvents irgendwie ansprechen), die ich bisher nur in AS lösen konnte, allerdings habe ich beim Testen eine andere Sache festgestellt, die ich nicht weiss, ob man die on JS irgendwie umschiffen kann:

Wenn ich auf Bilddaten aus dem DAM, und das wären die primär, das Script benutze, kommt als Ergebnis aus dem Pfad "cumulus://srvmar16.zentrale.ad.local:9287/Corporate/AssetRecords/183" dann als Dateiname "9287:Corporate:AssetRecords:183" raus. Aufgrund des Plugins werden die DAM-Links irgendwo im Hintergrund aufgelöst, und die Linkpalette zeigt auch als Name jederzeit "shutterstock_546301177.jpg" an. Per AS angescriptet, spucken die graphicobjekte auch als name dann das aufgelöste aus.

Was ich bisher habe in AS, ein Script welches die Selection nicht weiter absichert, und nur mit einem Bild oder Bildcontainer funktioniert. Gestern wollte ich es quasi erweitern, dass eine Gruppe nicht ausgeschlossen wird, sondern "durchleutet" wird. Das gleiche gilt auch für eine Selektion von mehreren Bildkästen. Mit solch codesnippseln wie "object reference of all page items of selection" und irgendwie mit "all graphics". Doch die verschiedenen Fälle von Bild in Rahmen, oder Gruppe in Rahmen, oder Gruppe in Gruppe in Rahmen, oder Selektion von leerem Rahmen und Gruppe usw. konnte ich nicht greifen. Ich hatte gehofft, mit "all graphics" irgendwie alles in ein array zu bekommen.

set errormsg to ""
set ProgrammName to "IDC_Recherche"
set myVersion to "1.0.2"

set IDC_Datensaetze to 1936410
set IDC_Suchen to 1936392
set IDC_Verknuepfen to 1936454

on CallMenuID(INDID)
tell application "Adobe InDesign CC 2018"
set tempaction to menu action id INDID
invoke tempaction
end tell
end CallMenuID

tell application "Adobe InDesign CC 2018"
set mySelection to selection
try
if (count documents) = 0 then set errormsg to "Kein Dokument geöffnet."
if (length of mySelection > 1) then set mySelection to {}
if (class of (object reference of item 1 of mySelection) = group) then set errormsg to "Gruppe gewählt."
if (class of (object reference of item 1 of mySelection) = text frame) then set errormsg to "Textrahmen erkannt."
end try

if errormsg is not "" then
display dialog "Fehler aufgetreten:
" & errormsg buttons {"Scheiße."} default button 1 giving up after 2 with title ProgrammName with icon 0
else
tell active document
set mySelection to selection

if class of item 1 of mySelection is not in [image, PDF, EPS] then
set myItem to ""
try
set myItem to item link of all graphics of item 1 of mySelection
end try
else
set myItem to item link of item 1 of mySelection
end if

set TML to ""
if myItem &#8800; "" then
set TML to name of myItem
set TML to my remove_extension(TML)
set the clipboard to "" & TML
display notification "Name in die Zwischenablage kopiert" with title "" & link type of myItem & " erkannt" subtitle "\"" & TML & "\""
end if

my CallMenuID(IDC_Datensaetze)

tell application "System Events"
activate application "Adobe InDesign CC 2018"
keystroke "v" using {command down}
keystroke return
end tell

end tell
end if
end tell

on remove_extension(this_name)
if this_name contains "." then
set this_name to ¬
(the reverse of every character of this_name) as string
set x to the offset of "." in this_name
set this_name to (text (x + 1) thru -1 of this_name)
set this_name to (the reverse of every character of this_name) as string
end if
return this_name
end remove_extension

tell application "Finder"
try
on error the error_message number the error_number
display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1 default answer "ugh?"
end try
end tell


als Antwort auf: [#569587]
(Dieser Beitrag wurde von NEU! am 3. Apr 2019, 10:19 geändert)

AS: selection » object reference / all page items / all graphics

NEU!
Beiträge gesamt: 180

3. Apr 2019, 11:28
Beitrag # 4 von 9
Beitrag ID: #569600
Bewertung:
(6346 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wollte das noch ein bisschen verständlicher machen und ändern, aber zum Bearbeiten gibt es wohl eine Zeitspanne. Hier nochmal etwas aufgeräumter:

Code
set errormsg to ""  
set ProgrammName to "IDC_Recherche"
set myVersion to "1.0.2"

set IDC_Datensaetze to 1936410
set IDC_Suchen to 1936392
set IDC_Verknuepfen to 1936454

tell application "Adobe InDesign CC 2018"
if (count documents) = 0 then
display dialog "Fehler aufgetreten: " & linefeed & "Kein Dokument geöffnet." buttons {"Mist."} default button 1 giving up after 2 with title ProgrammName with icon 0
return
end if

set mySelection to selection

if (length of mySelection > 1) then set mySelection to {}
if (class of (object reference of item 1 of mySelection) = group) then set errormsg to "Gruppe gewählt."
if (class of (object reference of item 1 of mySelection) = text frame) then set errormsg to "Textrahmen erkannt."

if (errormsg is not "") and (mySelection is not 0) then
display dialog "Fehler aufgetreten:
" & errormsg buttons {"Mist."} default button 1 giving up after 2 with title ProgrammName with icon 0
else
tell active document

------- CHECK IF CONATINER LV1 OR IMAGE
if class of item 1 of mySelection is not in [image, PDF, EPS] then
set myItem to ""
try
set myItem to item link of all graphics of item 1 of mySelection
end try
else
set myItem to item link of item 1 of mySelection
end if

------- CLEAR FILENAME
set TML to ""
if myItem &#8800; "" then
set TML to name of myItem
set TML to my remove_extension(TML)
set the clipboard to "" & TML
end if


------- CALL PLUGIN SHOW/UNSHOW (Always selects the searchbar, Unshow doesnt work :) ---
my CallMenuID(IDC_Datensaetze)

------- PASTE and press ENTER
tell application "System Events"
activate application "Adobe InDesign CC 2018"
keystroke "v" using {command down}
keystroke return
end tell

end tell
end if
end tell

on CallMenuID(INDID)
tell application "Adobe InDesign CC 2018"
set tempaction to menu action id INDID
invoke tempaction
end tell
end CallMenuID

on remove_extension(this_name)
if this_name contains "." then
set this_name to ¬
(the reverse of every character of this_name) as string
set x to the offset of "." in this_name
set this_name to (text (x + 1) thru -1 of this_name)
set this_name to (the reverse of every character of this_name) as string
end if
return this_name
end remove_extension

tell application "Finder"
try
on error the error_message number the error_number
display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1 default answer "ugh?"
end try
end tell



als Antwort auf: [#569595]

AS: selection » object reference / all page items / all graphics

Uwe Laubender
Beiträge gesamt: 5316

3. Apr 2019, 16:10
Beitrag # 5 von 9
Beitrag ID: #569606
Bewertung:
(6317 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf:
Wenn ich auf Bilddaten aus dem DAM, und das wären die primär, das Script benutze, kommt als Ergebnis aus dem Pfad "cumulus://srvmar16.zentrale.ad.local:9287/Corporate/AssetRecords/183" dann als Dateiname "9287:Corporate:AssetRecords:183" raus. Aufgrund des Plugins werden die DAM-Links irgendwo im Hintergrund aufgelöst, und die Linkpalette zeigt auch als Name jederzeit "shutterstock_546301177.jpg" an.

Per AS angescriptet, spucken die graphicobjekte auch als name dann das aufgelöste aus.…


Interessant,
ich nehme an, dass Du das korrekte Ergebnis per AS über eine Auswahl erhälst.
Also Abbildung ausgewählt und dann den Link abgefragt.

Mit ExtendScript ausgedrückt:

// Bild ausgewählt:
File( app.selection[0].itemLink.filePath ).name;


Könntest Du genau das mal prüfen?
Anstatt über den allGraphics-Array zu gehen.

Falls das das korrekte Ergebnis auswirft, den aufgelösten Dateinamen ausspuckt, könntest Du wahlweise die jeweiligen Grafiken auswählen oder versuchen ( eigentlich nicht notwendig ) den Link mit getElements() zu "resolven":

Warnung: Erst mit getElements() arbeiten, wenn klar ist, dass das Ergebnis nicht null ist.

Vorschlag:

Code
var selection = app.selection;  
var selLength = selection.length;

var placedGraphicNames = [];

for( var n=0; n<selLength; n++ )
{
var currentAllGraphics = selection[n].allGraphics;
var currentAllGraphicsLength = currentAllGraphics.length;

for( var a=0; a<currentAllGraphicsLength; a++ )
{

// Test for itemLink. Do not try to resolve this link for now:
var currentItemLink = currentAllGraphics[a].itemLink;
if( currentItemLink == null ){ continue };

// Trying to "resolve" the link of the graphic element of allGraphics:
currentItemLink = currentAllGraphics[a].itemLink.getElements()[0];


placedGraphicNames[ placedGraphicNames.length++ ] =
File( currentItemLink.filePath ).name;
}
};

alert( placedGraphicNames.join("\r") );



als Antwort auf: [#569595]

AS: selection » object reference / all page items / all graphics

NEU!
Beiträge gesamt: 180

3. Apr 2019, 16:47
Beitrag # 6 von 9
Beitrag ID: #569608
Bewertung:
(6306 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Tcha, wer hätte das ahnen können, dass, wenn ich mein Script mit JS hätte realisieren wollen, ich auf diese Probleme stoße.


Habe mir die aktualisierte Version herauskopiert, leider mit gleichem Ergebnis.
Ich wollte gerne ein paar Screenshot anhängen, aber da musst Du mir nun glauben nun, dieses Forum ist zwar neu, aber noch nicht im Gigabitzeitalter angekommen :-)

Markiert: 4 verschiedene Assettypen, einer im DAM, Ergebnis:
52684001_001.tif
9287:Corporate:AssetRecords:183

_An%20den%20Linden%201__%2015.pdf
10Jahre_CHde_FH_gerade_S_rot.ai

Habe noch etwas gewühlt, Aion hatte mir mal an einer anderen Stelle geholfen. Das JS-script ist nie wirklich fertig geworden, aber hier stellt sich der Linkname richtig dar. Untersucht wird das aktive Dokument auf die in const uris liegenden Filepath-Segmente. Ich habe die Beweislast mit ! umgedreht, so dass in einem Testdok nur die DAM-Daten angezeigt werden – und das werden sie :) Ich habe versucht, den komplexen Code von Aion weiterzutreiben, auf unsere Bedürfnsisse hin, doch konnte ich die Event-Struktur und Aufbau der Fenster und Funktion untereinander nie nachvollziehen. Deswegen ist dies eine halb-funktionierende Hülle, an der du aber vielleicht ablesen kannst, warum das hier funktioniert, und wie oben leider nicht.
Zur Erklärung: Dieses Script untersucht alle Links auf die in const uris hinterlegten Teile der zu suchenenden Dateipfade. Enthält ein Linkpath einen Teil (zB die Server-IP), wird er zum Abarbeiten in eine listbox gefüllt. Das Anklicken springt zum Objekt.
Hoffentlich steht hier irgendwo das "A-HA"-Erlebnis in den Zeilen…


Code
#targetengine 'session' 
var ProgrammName = "Image Checker"; myVersion = "0.3.190314"

var maxlinks, currentlinks,mySel,FilterFlag;
app.scriptPreferences.enableRedraw = true;
FilterFlag = 1; ZoomFactor = 4; FireOnce = true;
script_ApfelV = 'tell application "System Events"\nkeystroke "v" using {command down}\nend tell';
script_Enter = 'tell application "System Events"\nkeystroke return\nend tell';


#targetengine 'session'
var ProgrammName = "Image Checker"; myVersion = "0.3.190314"

var maxlinks, currentlinks,mySel,FilterFlag;
app.scriptPreferences.enableRedraw = true;
FilterFlag = 1; ZoomFactor = 4; FireOnce = true;
script_ApfelV = 'tell application "System Events"\nkeystroke "v" using {command down}\nend tell';
script_Enter = 'tell application "System Events"\nkeystroke return\nend tell';


function sortByKey(array, key) {
return array.sort(function(b, a) {
var x = a[key]; var y = b[key];
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
});
}

//Main routine
var main = function() {
var doc = app.properties.activeDocument,dlg, linksData, n,
callback;

if ( !doc ) return;
this.dlg = this.dlg || ui();
this.dlg.show();
}

//Retrieve doc links
function getLinks(sorter){

const uris = [
"srvmar16\.zentrale\.ad\.local",
"192\.168\.96\.116","172\.18\.116\.1"];

var ls, n = 0, l, o = {}, lid,
doc = app.properties.activeDocument, reg;

if ( !doc ) return o;

reg = new RegExp( "("+uris.join("|")+")", "i" );

ls = doc.links.everyItem().getElements();

maxlinks = ls.length;
currentlinks = ls.length;

n = ls.length; maxlinks = n;
sortByKey(ls, "name");

while ( n-- ) {
l = ls[n];
if (FilterFlag == 1)
{if (reg.test(l.filePath) ) continue; }
else
{if (l.parent.flip == Flip.NONE) continue;}

try {Ort = l.parent.parentPage.name;} catch(err) {Ort = "MF"};

lid = l.id;
o[lid] = {name:l.name, id:lid, container:l.parent.parent,onPage:Ort};
//o[lid] = {name:l.name, id:lid, container:l.parent.parent,onPage:l.label};
}
currentlinks = o.__count__;
return o;
}


//UI build function
var ui = function (){
var u,
w = new Window('palette', ProgrammName+"["+$.engineName+"]"),
grp0 = w.add('group'),
panel0 = grp0.add('panel', [0,0,200,70], "Überprüfen", {borderStyle:'black'}),
grp9 = panel0.add('group'),
grp1 = grp9.add('group'),
radio1 = grp1.add('radiobutton', undefined, "Cumulus-Check"), radio2 = grp1.add ('radiobutton', undefined, "Gespiegelte Bilder"),
panel1 = grp0.add('panel', [0,0,320,70], "Optionen", {borderStyle:'black'}),
rower = panel1.add('group'),
checkboxgrp1 = rower.add('group'),
check1 = checkboxgrp1.add ("checkbox", undefined, "Zoomen"),
check2 = checkboxgrp1.add ("checkbox", undefined, "Suffix ignorieren"),
checkboxgrp2 = rower.add('group'),
check3 = checkboxgrp2.add ("checkbox", undefined, "CantoCumulus"),
check4 = checkboxgrp2.add ("checkbox", undefined, "<Platzhalter>"),
ls = w.add('listbox',undefined,undefined,{selection: mySel, numberOfColumns: 2, showHeaders: true, columnTitles: ["Seite", "Name"]}),
grp = w.add('group'),
pbar = grp.add ('progressbar', undefined, 0, maxlinks),
t1 = grp.add ('statictext', undefined, "999/999 &#10140; 100 %"),
bgrp = w.add('group'),
btn1 = bgrp.add('button',u,"Liste Aktualisieren"),
btn2 = bgrp.add('button',u,"Schließen"),
linkItem, listItem,
updateLinksList = function(param) {
var data, linkData, listItem;
ls.removeAll();
if (param == 0) {data = getLinks(0)} else {data = getLinks(1)};
if (FilterFlag == 1) {radio1.value = true;} else {radio2.value = true;}
t1.text = ""+currentlinks+ "/"+maxlinks+" &#10140; "+Math.round((100 - (((100 / maxlinks) * currentlinks))))+" %";
pbar.maxvalue = maxlinks;
pbar.value = maxlinks - currentlinks;
w.update();

if ( !data.__count__ ) return;
currentlinks = ( data.__count__ );
for ( prop in data ) {
linkData = data[prop];
listItem = ls.add('item', linkData.onPage);
listItem.checked = false;
listItem.subItems[0].text = linkData.name;
listItem.data = linkData;
};
}, ev = app.eventListeners.itemByName ( "onSelectionChanged" );

w.alignChildren = ["fill","fill"];
grp1.orientation = "column";
checkboxgrp1.orientation = "column";
checkboxgrp1.alignChildren = "left";
checkboxgrp2.orientation = "column";
checkboxgrp2.alignChildren = "left";
grp1.alignChildren = ["fill","fill"];
grp0.alignChildren = "top";
grp9.alignChildren = "top";
panel0.alignChildren = "left";
rower.alignChildren = ["row","top"];
grp1.borderStyle = "white";
grp.alignChildren = ["fill","fill"];
bgrp.alignChildren = ["fill","fill"];
ls.preferredSize = [300,200];
ls.maximumSize.height = 300;
pbar.preferredSize = [400,2];
pbar.maxvalue = maxlinks;
pbar.value = maxlinks - currentlinks;
t1.characters = 16;
t1.justify = "right";
radio1.value = true;

check1.value = true;
check2.value = true;
check3.value = true;
check4.value = false;
check4.visible = false;

if (FireOnce == true)
{
updateLinksList(0);
w.update();
FireOnce = false;
}


btn2.onClick = function(){w.close(0)};
btn1.onClick = function()
{
if (check1.value == true) {updateLinksList(0)} else {updateLinksList(1)}
w.update()
};




radio1.onClick = function(){
FilterFlag = 1;
pbar.maxvalue = maxlinks;
pbar.value = maxlinks - currentlinks;
updateLinksList(0);
w.update()
};
radio2.onClick = function() {
FilterFlag = 2;
pbar.maxvalue = maxlinks;
pbar.value = maxlinks - currentlinks;
updateLinksList(1);
w.update()
};

ls.onDoubleClick = function() {
if (ls.items[ls.selection.index].checked == true) {ls.items[ls.selection.index].checked = undefined;} else {ls.items[ls.selection.index].checked = true;}
//app.menuActions.itemByID(1936410).invoke();
};
ls.onChange = function() {
if ( !ls.selection ) return;
//mySel = ls.selection;
t1.text = ""+currentlinks+ "/"+maxlinks+" &#10140; "+Math.round((100 - (((100 / maxlinks) * currentlinks))))+" %";
if (check1.value == true)
{zoomObject ( ls.selection.data.container , ZoomFactor,)} else
{zoomObject ( ls.selection.data.container , 0,)};
if (check3.value == true)
{
if (check2.value == true) {SetClipboard ( ls.selection.data.name.replace ( /\.[a-z]+$/i, '') );} else {SetClipboard ( ls.selection.data.name)};
app.menuActions.itemByID(1936410).invoke();
app.doScript(script_ApfelV,ScriptLanguage.APPLESCRIPT_LANGUAGE);
app.doScript(script_Enter,ScriptLanguage.APPLESCRIPT_LANGUAGE);
}
}
w.onShow = function(){
}


if ( !ev.isValid ) {
app.eventListeners.add("afterSelectionChanged",function(evt){
t1.text = ""+currentlinks+ "/"+maxlinks+" &#10140; "+Math.round((100 - (((100 / maxlinks) * currentlinks))))+" %";
pbar.maxvalue = maxlinks;
pbar.value = maxlinks - currentlinks;
});
}
return w;
};



//Created by Dave Saunders > http://jsid.blogspot.fr/2006/01/zoom-in-on-object.html
function zoomObject(theObj, theRatio) {
try {
var objBounds = theObj.geometricBounds;
} catch (e) {
throw "Objekt hat keine Abmessungen."
}
var ObjHeight = objBounds[2] - objBounds[0];
var ObjWidth = objBounds[3] - objBounds[1];
var myWindow = app.activeWindow;
var pageBounds = myWindow.activePage.bounds;
var PgeHeight = pageBounds[2] - pageBounds[0];
var PgeWidth = pageBounds[3] - pageBounds[1];
var hRatio = PgeHeight/ObjHeight;
var wRatio = PgeWidth/ObjWidth;
var zoomRatio = Math.min(hRatio, wRatio);
var OldZoomVal;
app.select(theObj); // to make active the page that holds theObj
if (theRatio != 0) {
myWindow.zoom(ZoomOptions.fitPage);
myWindow.zoomPercentage = myWindow.zoomPercentage * theRatio; // * zoomRatio;
} else {
OldZoomVal = myWindow.zoomPercentage;
myWindow.zoom(ZoomOptions.fitPage);
myWindow.zoomPercentage = OldZoomVal;
} }


//See here for reference :
//https://forums.adobe.com/thread/2203330
function SetClipboard(clip){
var clipboard;
if(File.fs == "Macintosh"){
app.doScript ('tell application "Finder" to set the clipboard to "'+clip+'"',ScriptLanguage.APPLESCRIPT_LANGUAGE);
} else {
app.doScript ( 'Dim theObject\r Set theObject = CreateObject (\"htmlfile\")\r Call theObject.ParentWindow.ClipboardData.SetData(\"text\",\"'+clip+'\")', ScriptLanguage.visualBasic );
}
return;
}

main();



als Antwort auf: [#569606]

AS: selection » object reference / all page items / all graphics

Uwe Laubender
Beiträge gesamt: 5316

3. Apr 2019, 19:56
Beitrag # 7 von 9
Beitrag ID: #569614
Bewertung:
(6286 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo NEU!,
ich stocher mal im Dunkeln.

Hab' mir das Objekt Link noch mal genauer angesehen.

Vielleicht gibt's ja einen Überraschungstreffer mit der Eigenschaft assetURL ?

Code
// Bild ausgewählt: 
app.selection[0].itemLink.assetURL;


Oder:
Code
var itemLink = app.selection[0].itemLink; 
if( itemLink != null )
{
app.selection[0].itemLink.getElements()[0].assetURL;
}


Mehr fällt mir dazu nicht ein. Sorry.


als Antwort auf: [#569608]

AS: selection » object reference / all page items / all graphics

NEU!
Beiträge gesamt: 180

4. Apr 2019, 08:44
Beitrag # 8 von 9
Beitrag ID: #569615
Bewertung:
(6252 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Leider kann ich die beiden Codezeilen nicht richtig einbauen, oder aber "Object does not support the property or method 'itemLink'".

Nun gut, alles probiert, und sowieso mehr Hilfe als man auf freiwilliger Basis erwarten könnte bekommen. Ich sage trotzdem vielen Dank, vielleicht kann ich in dem schönen Script ja noch irgendwo den richtigen Dateinamen aus dem Code leiern.

Aber vorerst specke ich mein AS etwas ab, und schränke die User ein, halt nur ein Bild zu wählen :o)


als Antwort auf: [#569614]

AS: selection » object reference / all page items / all graphics

Uwe Laubender
Beiträge gesamt: 5316

4. Apr 2019, 12:06
Beitrag # 9 von 9
Beitrag ID: #569619
Bewertung:
(6232 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo NEU!

Zum Testen bitte die beiden Snippets im ESTK so ausführen wie sie sind.
Voraussetzung: Bild ist ausgewählt, nicht der Bildrahmen.

Danke.


als Antwort auf: [#569615]
(Dieser Beitrag wurde von Uwe Laubender am 4. Apr 2019, 12:07 geändert)
X