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

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

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

derkleine
Beiträge gesamt: 80

29. Nov 2007, 13:19
Beitrag # 1 von 13
Bewertung:
(3630 mal gelesen)
URL zum Beitrag
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);
}
}
X

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

Martin Fischer
  
Beiträge gesamt: 12783

29. Nov 2007, 13:32
Beitrag # 2 von 13
Beitrag ID: #324955
Bewertung:
(3616 mal gelesen)
URL zum Beitrag
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){}
}
}



als Antwort auf: [#324948]

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

derkleine
Beiträge gesamt: 80

29. Nov 2007, 13:47
Beitrag # 3 von 13
Beitrag ID: #324960
Bewertung:
(3607 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
das ging ja wirklich super schnell...

vielen herzlichen dank dafür


als Antwort auf: [#324955]

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

derkleine
Beiträge gesamt: 80

29. Nov 2007, 14:31
Beitrag # 4 von 13
Beitrag ID: #324970
Bewertung:
(3588 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#324955]

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

Martin Fischer
  
Beiträge gesamt: 12783

29. Nov 2007, 14:41
Beitrag # 5 von 13
Beitrag ID: #324974
Bewertung:
(3585 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wahrscheinlich sind verankerte Bilder enthalten.


als Antwort auf: [#324970]

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

derkleine
Beiträge gesamt: 80

29. Nov 2007, 14:45
Beitrag # 6 von 13
Beitrag ID: #324976
Bewertung:
(3582 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
kann man das irgendwie umgehen das das script nicht drauf zugreift auf solche Bilder, oder es nicht abbricht?

Danke


als Antwort auf: [#324974]

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

Martin Fischer
  
Beiträge gesamt: 12783

29. Nov 2007, 14:55
Beitrag # 7 von 13
Beitrag ID: #324979
Bewertung:
(3578 mal gelesen)
URL zum Beitrag
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?


als Antwort auf: [#324976]

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

derkleine
Beiträge gesamt: 80

29. Nov 2007, 15:21
Beitrag # 8 von 13
Beitrag ID: #324988
Bewertung:
(3560 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
also mein indesign mag es wohl schmutzig :-)

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

danke nochmals.


als Antwort auf: [#324979]

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

derkleine
Beiträge gesamt: 80

18. Nov 2008, 16:43
Beitrag # 9 von 13
Beitrag ID: #375148
Bewertung:
(3316 mal gelesen)
URL zum Beitrag
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)


als Antwort auf: [#324988]

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

Martin Fischer
  
Beiträge gesamt: 12783

18. Nov 2008, 20:39
Beitrag # 10 von 13
Beitrag ID: #375200
Bewertung:
(3282 mal gelesen)
URL zum Beitrag
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; 



als Antwort auf: [#375148]

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

derkleine
Beiträge gesamt: 80

19. Nov 2008, 08:54
Beitrag # 11 von 13
Beitrag ID: #375250
Bewertung:
(3249 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
super jetzt tut es. vielen dank Martin.

Grüße


als Antwort auf: [#375200]

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

Martin Fischer
  
Beiträge gesamt: 12783

19. Nov 2008, 09:14
Beitrag # 12 von 13
Beitrag ID: #375254
Bewertung:
(3241 mal gelesen)
URL zum Beitrag
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.


als Antwort auf: [#375250]

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

derkleine
Beiträge gesamt: 80

19. Nov 2008, 09:17
Beitrag # 13 von 13
Beitrag ID: #375255
Bewertung:
(3240 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#375254]
X