Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

derkleine
Beiträge gesamt: 80

29. Nov 2007, 13:19
Bewertung:

gelesen: 3632

Beitrag als Lesezeichen
Hallo zusammen,

nach dem suchen eine Skriptes bin ich hier gelandet,
ich muss in einem riesen Dokument, lauter Bildnamen unter das Bild schreiben, dazu hab ich auch ein Skript gefunden, allerdings muss hierzu immer ein Rahmen gewählt sein.

Kann mir das vielleicht jemand umschreiben das er automatisch alle Bilderrahmen anwählt?

Wäre super nützlich.
Vielen dank.

Hier noch das aktuelle Script:


// addCaption_2.jsx
// an InDesign CS2 JavaScript
//
var myObjectStyle = app.activeDocument.objectStyles.item("BU"); // Objektstil für Bildunterschrift
var myDistance = -5; // Abstand zum Bild
var myHeight = 3.923; // Höhe des Rahmens für die Bildunterschrift
var myDoc = app.documents[0];
var mySel = app.selection;

// Wenn der oben genannte Objektstil ("BU") nicht vorhanden ist,
// dann wird der Objekstil "[Einfacher Textrahmen]" zugewiesen.
try{
myObjectStyle.name; // Prüfung Objektstil
}
catch(e){
var myObjectStyle = app.activeDocument.objectStyles.item("[Normal Text Frame]");
}

for (oneObject = 0; oneObject < mySel.length; oneObject++){
if (mySel[oneObject].constructor.name == "Rectangle"){
var myBounds = mySel[oneObject].geometricBounds;
var myPage = mySel[oneObject].parent.documentOffset-1;
if (mySel[oneObject].graphics.length > 0){
var myContent = mySel[oneObject].graphics[0].itemLink.name;
}
else {
var myContent = "Abb. ";
}
var myFrame = myDoc.pages[myPage].textFrames.add(
undefined, undefined, undefined, {
geometricBounds:[myBounds[2] + myDistance, myBounds[1], myBounds[2] + myHeight + myDistance, myBounds[3]],
contents:myContent
}
)
myFrame.applyObjectStyle(myObjectStyle);
}
}

Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

Martin Fischer
  
Beiträge gesamt: 12783

29. Nov 2007, 13:32
Bewertung:

gelesen: 3618

Beitrag als Lesezeichen
Quick & Dirty dies:
Code
// addCaption_2.jsx 
// an InDesign CS2 JavaScript
//
var myObjectStyle = app.activeDocument.objectStyles.item("BU"); // Objektstil für Bildunterschrift
var myDistance = -5; // Abstand zum Bild
var myHeight = 3.923; // Höhe des Rahmens für die Bildunterschrift
var myDoc = app.documents[0];
var myLinks = app.activeDocument.links;

// Wenn der oben genannte Objektstil ("BU") nicht vorhanden ist,
// dann wird der Objekstil "[Einfacher Textrahmen]" zugewiesen.
try{
myObjectStyle.name; // Prüfung Objektstil
}
catch(e){
var myObjectStyle = app.activeDocument.objectStyles.item("[Normal Text Frame]");
}

for (oneObject = 0; oneObject < myLinks.length; oneObject++){
if (myLinks[oneObject].parent.parent.constructor.name == "Rectangle"){
var myBounds = myLinks[oneObject].parent.parent.geometricBounds;
var myPage = myLinks[oneObject].parent.parent.parent.documentOffset-1;
if (myLinks[oneObject].parent.parent.graphics.length > 0){
var myContent = myLinks[oneObject].parent.parent.graphics[0].itemLink.name;
}
else {
var myContent = "Abb. ";
}
var myFrame = myDoc.pages[myPage].textFrames.add(
undefined, undefined, undefined, {
geometricBounds:[myBounds[2] + myDistance, myBounds[1], myBounds[2] + myHeight + myDistance, myBounds[3]],
contents:myContent
}
)
try {
myFrame.applyObjectStyle(myObjectStyle);
} catch(e){}
}
}


Viele Grüße
Martin


Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

derkleine
Beiträge gesamt: 80

29. Nov 2007, 13:47
Bewertung:

gelesen: 3609

Beitrag als Lesezeichen
das ging ja wirklich super schnell...

vielen herzlichen dank dafür

Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

derkleine
Beiträge gesamt: 80

29. Nov 2007, 14:31
Bewertung:

gelesen: 3590

Beitrag als Lesezeichen
Hallo nochmals,

also das Skript funktioniert bei einigen Dokumenten aber bei anderen kommt dieser Fehler:

JavaScript Fehler!

Fehlernummer: 55
Fehlerzeichenfolge: Object does not support the property or method 'documentOffset'
Zeile 22
Quelle: var myPage = myLinks
[oneObject].parent.parent.parent.documentOffset -1;


nachdem man ok sagt ist nichts passiert.

Grüße
Micha

Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

Martin Fischer
  
Beiträge gesamt: 12783

29. Nov 2007, 14:41
Bewertung:

gelesen: 3587

Beitrag als Lesezeichen
Wahrscheinlich sind verankerte Bilder enthalten.

Viele Grüße
Martin


Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

derkleine
Beiträge gesamt: 80

29. Nov 2007, 14:45
Bewertung:

gelesen: 3584

Beitrag als Lesezeichen
kann man das irgendwie umgehen das das script nicht drauf zugreift auf solche Bilder, oder es nicht abbricht?

Danke

Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

Martin Fischer
  
Beiträge gesamt: 12783

29. Nov 2007, 14:55
Bewertung:

gelesen: 3580

Beitrag als Lesezeichen
Hallo,

jetzt wird es ziemlich schmutzig.

Ersetze mal die Zeile

if (myLinks[oneObject].parent.parent.constructor.name == "Rectangle"){


durch
Code
if (myLinks[oneObject].parent.parent.constructor.name == "Rectangle" && myLinks[oneObject].parent.parent.parent.constructor.name == "Page"){ 


Geht's dann?

Viele Grüße
Martin


Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

derkleine
Beiträge gesamt: 80

29. Nov 2007, 15:21
Bewertung:

gelesen: 3562

Beitrag als Lesezeichen
also mein indesign mag es wohl schmutzig :-)

ein paar bilder haben jetzt keine nummern, denke das waren die problemkinder.

danke nochmals.

Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

derkleine
Beiträge gesamt: 80

18. Nov 2008, 16:43
Bewertung:

gelesen: 3318

Beitrag als Lesezeichen
so jetzt ist viel zeit vorbei und es gibt ein Problem mit CS3

wenn ich das Script laufen lasse, werden die rechten Seiten korrekt benannt allerdings die linken Seiten sind falsch.

Mir kommt es vor als ob InDesign die Bilduntertexte einfach eine Seite nach vorne schiebt (also von Seite 4 auf Seite 2)

kann mir da vll. einer etwas helfen?

verwendet haben wir das script hier:



Code
// addCaption_2.jsx  
// an InDesign CS2 JavaScript
//
var myObjectStyle = app.activeDocument.objectStyles.item("BU"); // Objektstil für Bildunterschrift
var myDistance = -5; // Abstand zum Bild
var myHeight = 3.923; // Höhe des Rahmens für die Bildunterschrift
var myDoc = app.documents[0];
var myLinks = app.activeDocument.links;

// Wenn der oben genannte Objektstil ("BU") nicht vorhanden ist,
// dann wird der Objekstil "[Einfacher Textrahmen]" zugewiesen.
try{
myObjectStyle.name; // Prüfung Objektstil
}
catch(e){
var myObjectStyle = app.activeDocument.objectStyles.item("[Normal Text Frame]");
}

for (oneObject = 0; oneObject < myLinks.length; oneObject++){
if (myLinks[oneObject].parent.parent.constructor.name == "Rectangle" && myLinks[oneObject].parent.parent.parent.constructor.name == "Page"){
var myBounds = myLinks[oneObject].parent.parent.geometricBounds;
var myPage = myLinks[oneObject].parent.parent.parent.documentOffset-1;
if (myLinks[oneObject].parent.parent.graphics.length > 0){
var myContent = myLinks[oneObject].parent.parent.graphics[0].itemLink.name;
}
else {
var myContent = "Abb. ";
}
var myFrame = myDoc.pages[myPage].textFrames.add(
undefined, undefined, undefined, {
geometricBounds:[myBounds[2] + myDistance, myBounds[1], myBounds[2] + myHeight + myDistance, myBounds[3]],
contents:myContent
}
)
try {
myFrame.applyObjectStyle(myObjectStyle);
} catch(e){}
}
}



Danke :-)



PS: gibts vll sowas like "JoDrop" auch für InDesign (JoDrop ist ein Tool für Quark welches Bildnamen im Layout anzeigen und auch drucken kann)

Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

Martin Fischer
  
Beiträge gesamt: 12783

18. Nov 2008, 20:39
Bewertung:

gelesen: 3284

Beitrag als Lesezeichen
Hallo Kleiner,

versuch mal, die Zeile var myPage = myLinks[oneObject].parent.parent.parent.documentOffset-1; durch folgende zu ersetzen:

Code
var myPage = myLinks[oneObject].parent.parent.parent.documentOffset; 


Viele Grüße
Martin


Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

derkleine
Beiträge gesamt: 80

19. Nov 2008, 08:54
Bewertung:

gelesen: 3251

Beitrag als Lesezeichen
super jetzt tut es. vielen dank Martin.

Grüße

Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

Martin Fischer
  
Beiträge gesamt: 12783

19. Nov 2008, 09:14
Bewertung:

gelesen: 3243

Beitrag als Lesezeichen
Wenn ich mich richtig erinnere, war der documentOffset der ersten Seite eines Dokuments bis CS2 1.
In CS3 ist er 0. Dies entspricht der JavaScript-Zählung, die bei 0 anfängt.

Das könnte die Ursache des Problems gewesen sein.

Viele Grüße
Martin


Script um alle Bilder auszuwählen und Bildname unter Bild zu setzen

derkleine
Beiträge gesamt: 80

19. Nov 2008, 09:17
Bewertung:

gelesen: 3242

Beitrag als Lesezeichen
ja das klingt realistisch weil es war ja irgendwas verschoben.
leider kenn ich mich in dem thema null aus, aber dafür so nette leute wie du!


danke