[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Objektebenenoptionen per Skript ändern (Optionen)

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

Objektebenenoptionen per Skript ändern (Optionen)

hansmaulwurf90
Beiträge gesamt: 6

9. Mär 2011, 15:45
Beitrag # 1 von 8
Bewertung:
(23595 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich möchte mir einem Skript, welches bereits von allen in ein Indesign-Dokument verknüpfte Bilder (Illustrator) die Ebene ändert, auch die "Optionen für Verknüpfungsaktualisierung" verändern. Diese ist per Default auf "Ebenensichtbarkeit von PDF verwenden", ich möchte diese Optionen jedoch auf "Benutzerdefinierte Ebenensichtbarkeit beibehalten" schalten. Jedoch habe ich keine Ahnung wie ich diese Option in dem Skript umsetzen soll. Anbei das Skript:
Code
var myLinks = app.activeDocument.links;   
var newLang = "DE";
avaiLangs = new Array("DE", "GB", "ES", "FR", "IT", "NL", "DK", "FI", "SE");
for ( var i = 0; i < myLinks.length; i++ )
{
if ( myLinks[i].parent.hasOwnProperty('graphicLayerOptions') ) {
checkLayers( myLinks[i], newLang);
}

}
alert("Sprachumstellung abgeschlossen!");
function checkLayers( oneLink, newLang)
{
for ( var n = 0; n < avaiLangs.length; n++ ){
var myObjectLayers = oneLink.parent.graphicLayerOptions.graphicLayers;
if ( myObjectLayers.itemByName(avaiLangs[n]).isValid)
{ myObjectLayers.itemByName(avaiLangs[n]).currentVisibility = false;


}

}
if ( myObjectLayers.itemByName(newLang).isValid){
myObjectLayers.itemByName(newLang).currentVisibility = true;
}

}


Ich hoffe mir kann jemand helfen.
Danke!

LG
Sebastian

(Dieser Beitrag wurde von hansmaulwurf90 am 9. Mär 2011, 15:56 geändert)
X

Objektebenenoptionen per Skript ändern (Optionen)

hansmaulwurf90
Beiträge gesamt: 6

9. Mär 2011, 16:23
Beitrag # 2 von 8
Beitrag ID: #466597
Bewertung:
(23532 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich hab es jetzt mit:
Code
myLinks[i].parent.graphicLayerOptions.updateLinkOptions =  UpdateLinkOptions.KEEP_OVERRIDES; 


Hab es in die erste If-Anweisung, kommt aber immer eine Fehlermeldung#: Objekt unterstützt Eigenschaft oder Methode nicht.


als Antwort auf: [#466591]

Objektebenenoptionen per Skript ändern (Optionen)

hansmaulwurf90
Beiträge gesamt: 6

10. Mär 2011, 08:27
Beitrag # 3 von 8
Beitrag ID: #466621
Bewertung:
(23483 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ok habe es hinbekommen, einfach in die erste If-Anweisung folgende Zeile:

Code
myLinks[i].parent.graphicLayerOptions.updateLinkOption = UpdateLinkOptions.keepOverrides; 



als Antwort auf: [#466597]

Objektebenenoptionen per Skript ändern (Optionen)

Martin Fischer
  
Beiträge gesamt: 12687

10. Mär 2011, 09:09
Beitrag # 4 von 8
Beitrag ID: #466624
Bewertung:
(23475 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sebastian,

Du bist mir mit Deiner Antwort zuvorgekommen.

Lag es tatsächlich nur am Underscore in UpdateLinkOptions.KEEP_OVERRIDES, der in der Skriptreferenz so enthalten ist?

Hattest Du's zwischendurch auch mal mit dem Enumerator 1819241327 versucht?


als Antwort auf: [#466621]

Objektebenenoptionen per Skript ändern (Optionen)

Martin Fischer
  
Beiträge gesamt: 12687

10. Mär 2011, 09:24
Beitrag # 5 von 8
Beitrag ID: #466628
Bewertung:
(23472 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sebastian,

hab's nun selbst nachgestellt.

Der Fehler liegt nicht am Underscore.
Der liegt im Plural-s:

Code
myLinks[i].parent.graphicLayerOptions.updateLinkOptions = UpdateLinkOptions.KEEP_OVERRIDES; 


Das muss so lauten:
Code
myLinks[i].parent.graphicLayerOptions.updateLinkOption = UpdateLinkOptions.KEEP_OVERRIDES; 


In Deinem zweiten Schnippsel hattest auch Du das Plural-s nicht mehr drin.


Hier das aktualisierte Skript, das ich interessant und nützlich finde.
Danke dafür.

Code
var myLinks = app.activeDocument.links;    
var avaiLangs = new Array("DE", "GB", "ES", "FR", "IT", "NL", "DK", "FI", "SE");
//var avaiLangs = app.activeDocument.layers.everyItem().name;
var newLang = prompt(avaiLangs.join(', '), "DE");

for ( var i = 0; i < myLinks.length; i++ )
{
if ( myLinks[i].parent.hasOwnProperty('graphicLayerOptions') )
{
myLinks[i].parent.graphicLayerOptions.updateLinkOption = UpdateLinkOptions.KEEP_OVERRIDES;
checkLayers( myLinks[i], newLang);
}
}
alert("Sprachumstellung abgeschlossen!");

function checkLayers( oneLink, newLang)
{
for ( var n = 0; n < avaiLangs.length; n++ )
{
var myObjectLayers = oneLink.parent.graphicLayerOptions.graphicLayers;
if ( myObjectLayers.itemByName(avaiLangs[n]).isValid)
{
myObjectLayers.itemByName(avaiLangs[n]).currentVisibility = false;
}
}
if ( myObjectLayers.itemByName(newLang).isValid)
{
myObjectLayers.itemByName(newLang).currentVisibility = true;
}
}



als Antwort auf: [#466624]
(Dieser Beitrag wurde von Martin Fischer am 10. Mär 2011, 09:46 geändert)

Objektebenenoptionen per Skript ändern (Optionen)

tomwal
Beiträge gesamt: 29

2. Dez 2011, 09:49
Beitrag # 6 von 8
Beitrag ID: #485616
Bewertung:
(22569 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo zusammen,

versuche gerade das Script so zu editieren, daß nur beim aktivierten Objekt die Ebenenoptionen eingestellt werden.

Code
#target Indesign 
var myDoc = app.activeDocument;
var myLink = app.selection[0].graphics[0];

var avaiLangs = new Array("DE", "GB");
//var avaiLangs = app.activeDocument.layers.everyItem().name;
var newLang = (avaiLangs.join(', '), "FR");

if ( myLink.getElements()[0].constructor.name == "Image") {
}
if ( myLink.parent.hasOwnProperty('graphicLayerOptions') )
{
myLink.parent.graphicLayerOptions.updateLinkOption = UpdateLinkOptions.KEEP_OVERRIDES;
checkLayers( myLink, newLang);
}

function checkLayers( oneLink, newLang)
{
for ( var n = 0; n < avaiLangs.length; n++ )
{
var myObjectLayers = oneLink.parent.graphicLayerOptions.graphicLayers;
if ( myObjectLayers.itemByName(avaiLangs[n]).isValid)
{
myObjectLayers.itemByName(avaiLangs[n]).currentVisibility = false;
}
}
if ( myObjectLayers.itemByName(newLang).isValid)
{
myObjectLayers.itemByName(newLang).currentVisibility = true;
}
}


Leider funktioniert es nicht, weiß jemand woran es liegt?

Gruß tomwal


als Antwort auf: [#466591]

Objektebenenoptionen per Skript ändern (Optionen)

Martin Fischer
  
Beiträge gesamt: 12687

2. Dez 2011, 10:36
Beitrag # 7 von 8
Beitrag ID: #485619
Bewertung:
(22549 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Tomwal,

was ist ein aktives Objekt?
Ist damit ein ausgewähltes Bild gemeint?

Dann sollte es so funktionieren:
Code
 
#target Indesign
var myDoc = app.activeDocument;
var myImage = app.selection[0].graphics[0];

var avaiLangs = new Array("DE", "GB");
//var avaiLangs = app.activeDocument.layers.everyItem().name;
var newLang = (avaiLangs.join(', '), "FR");

if ( myImage.constructor.name == "Image") {
}
if ( myImage.hasOwnProperty('graphicLayerOptions') )
{
myImage.graphicLayerOptions.updateLinkOption = UpdateLinkOptions.KEEP_OVERRIDES;
checkLayers( myImage, newLang);
}

function checkLayers( oneImage, newLang)
{
for ( var n = 0; n < avaiLangs.length; n++ )
{
var myObjectLayers = oneImage.graphicLayerOptions.graphicLayers;
if ( myObjectLayers.itemByName(avaiLangs[n]).isValid)
{
myObjectLayers.itemByName(avaiLangs[n]).currentVisibility = false;
}
}
if ( myObjectLayers.itemByName(newLang).isValid)
{
myObjectLayers.itemByName(newLang).currentVisibility = true;
}
}


Wenn's den Test besteht, dann solltest Du am Anfang allerdings noch eine Prüfung einbauen, ob überhaupt etwas ausgewählt ist und ob das, was ausgewählt ist, Graphiken enthält.


als Antwort auf: [#485616]

Objektebenenoptionen per Skript ändern (Optionen)

tomwal
Beiträge gesamt: 29

5. Dez 2011, 13:19
Beitrag # 8 von 8
Beitrag ID: #485749
Bewertung:
(22505 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
funktioniert wie gewünscht,
hab eine try Schleife eingebaut, wenn: a) versehentlich das Inhaltswerkzeug verwendet wurde - oder: b) kein Bild aktiv ist - wird eine Meldung ausgegeben.

vielen Dank
tomwal


als Antwort auf: [#485619]
X

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
09.05.2023

Digicomp (Bern, Basel, Zürich)
Dienstag, 09. Mai 2023, 08.30 - 17.00 Uhr

Kurs

Sie verfügen über ein Abonnement der Creative Cloud, welches Adobe Acrobat DC Pro beinhaltet. Sind Sie unsicher, ob Ihre PDF Dateien für die jeweilige Druckausgabe geeignet sind? Lernen Sie in diesem Kurs das notwendige Rüstzeug für den sicheren Datenaustausch mit Druckdienstleistern. Erstellen Sie druckfähige PDF/X und prüfen Sie Ihre PDFs vor einer Weitergabe mit Acrobat DC Pro.

Dauer: 1 Tag
Preis: CHF 700.–, exkl. MWST

Ja

Organisator: Digicomp Academy AG

https://digicomp.ch/weiterbildung-media-communication/adobe/kurs-pruefen-von-druck-pdf-in-acrobat-dc-pro--basic

Prüfen von Druck-PDF in Acrobat DC Pro