Connect failed: Connection timed out

[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Indesign CS5.5 Script "markiertes Bild in einem bestimmten Verzeichnis speichern"

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

Indesign CS5.5 Script "markiertes Bild in einem bestimmten Verzeichnis speichern"

mhagemann
Beiträge gesamt:

12. Jun 2013, 11:26
Beitrag # 1 von 5
Bewertung:
(2546 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich möchte gerne in einem inDesign Dokument ein einzelnes Bild markieren dies soll dann an einen bestimmten Pfad exportiert werden. Besonderheit soll aber sein das der original Dateiname beibehalten werden soll. Also das Bild an einen bestimmten Pfad kopieren gelingt mir auch schon jedoch nie mit dem originalen Dateinamen. Habe auch schon ein Script gefunden welches das markierte Bild extern bearbeiten lässt und dort ist dann in der Kopfzeile auch der Originalname der Code sieht folgender Maßen aus:

var myItems = app.selection;
for (var j = myItems.length - 1; j >= 0; j--) {
var curSel = myItems[j];
var selType = curSel.constructor.name;
if (selType == "Rectangle" || selType == "Oval" || selType == "Polygon") {
if (curSel.graphics.length != 0) {
var curImage = curSel.graphics[0];
if (curImage.itemLink.status != LinkStatus.LINK_EMBEDDED && curImage.itemLink.status != LinkStatus.LINK_MISSING ) {
curImage.itemLink.editOriginal();
}
}
}
else if (selType == "Image" || selType == "EPS" || selType == "PDF") {
var curImage = curSel;
if (curImage.itemLink.status != LinkStatus.LINK_EMBEDDED && curImage.itemLink.status != LinkStatus.LINK_MISSING ) {
curImage.itemLink.editOriginal();
}
}
}

Vielen Dank schonmal für eure Hilfe!

lg Max
X

Indesign CS5.5 Script "markiertes Bild in einem bestimmten Verzeichnis speichern"

Hans Haesler
  
Beiträge gesamt: 5826

13. Jun 2013, 00:00
Beitrag # 2 von 5
Beitrag ID: #513796
Bewertung:
(2483 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Max,

herzlich willkommen in der Skriptwerkstatt auf HDS! :-)

Versuche es bitte mal mit diesem Script:

Code
// eine Vorauswahl 
var selFolder = Folder ("~/Documents/");
// den Zielordner wählen
var targetFolder = File (Folder.selectDialog("Den Zielordner auswählen.", selFolder));
var testObj = "" + targetFolder;
// die Ordner-Auswahl prüfen
if (testObj.match("null")) {
exit();
}

// die Auswahl
var allItems = app.selection;
// eine Schleife durch die Auswahl
for (var j=0; j<allItems.length; j++) {
var curSel = allItems[j];
// die Art der Auswahl
var selType = curSel.constructor.name;
if (selType == "Rectangle" || selType == "Oval" || selType == "Polygon") {
if (curSel.allGraphics.length != 0) {
// der aktuelle Link
var curLink = curSel.allGraphics[0].itemLink;
}
}
else if (selType == "Image" || selType == "EPS" || selType == "PDF") {
// der aktuelle Link
var curLink = curSel.itemLink;
}
// den Status prüfen
if (curLink.status != LinkStatus.LINK_EMBEDDED && curLink.status != LinkStatus.LINK_MISSING ) {
// der aktuelle Pfad
var curPath = File (curLink.filePath);
// den Namen des Bildes speichern
var imgName = (curLink.name);
// der neue Pfad
var newPath = File (targetFolder + "/" + imgName);
// testen, ob das Bild schon vorhanden ist
if (newPath.exists == false) {
// die Datei kopieren
curPath.copy(newPath);
}
}
}

// das Ende der Aktion verkünden
var dlog = new Window("palette");
dlog.size = [320,100];
dlog.add("statictext", [80, 100, 320, 116], "Fertig.");
dlog.show();
// eine kleine Pause
$.sleep(999);
// das Fenster schliessen
dlog.close();

Zum Teil übernommen aus einem Archivierungs-Script.
Vor vielen Jahren mit AppleScript für QuarkXPress entwickelt.
Später als JavaScript für InDesign portiert.

Gruss, Hans


als Antwort auf: [#513738]

Indesign CS5.5 Script "markiertes Bild in einem bestimmten Verzeichnis speichern"

mhagemann
Beiträge gesamt:

13. Jun 2013, 10:24
Beitrag # 3 von 5
Beitrag ID: #513804
Bewertung:
(2445 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen Dank ist genau das was ich gesucht habe. Ich brauche zwar immer den gleichen Zielordner aber das konnte ich schon abändern!

Du hast meinen Tag gerettet! :)

lg max


als Antwort auf: [#513796]

Indesign CS5.5 Script "markiertes Bild in einem bestimmten Verzeichnis speichern"

Hans Haesler
  
Beiträge gesamt: 5826

14. Jun 2013, 21:02
Beitrag # 4 von 5
Beitrag ID: #513865
Bewertung:
(2349 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Max,

bitte sehr.

Noch ein Hinweis: Du kannst auch mehrere Bildrahmen auswählen. Sie werden der Reihe nach abgearbeitet.

Und zum Schluss noch dies: Wenn man anstelle von copy die Methode copyLink einsetzt, dann wird im geöffneten Dokument die Verknüpfung auf die kopierte Datei im Zielordner geändert.

Code
			// die Datei kopieren 
curPath.copyLink(newPath);

Falls Du keinen Bedarf dafür hast, kann es jemand anderem nützlich sein.

Gruss, Hans


als Antwort auf: [#513804]
(Dieser Beitrag wurde von Hans Haesler am 14. Jun 2013, 23:22 geändert)

Indesign CS5.5 Script "markiertes Bild in einem bestimmten Verzeichnis speichern"

Hans Haesler
  
Beiträge gesamt: 5826

15. Jun 2013, 21:01
Beitrag # 5 von 5
Beitrag ID: #513877
Bewertung:
(2289 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Max,

eine Präzisierung zu meinem letzten Hinweis.

Es genügt nicht, einfach copy durch copyLink zu ersetzen. Man muss auch anstelle des aktuellen Pfades die festgestellte Verknüpfung nehmen.

Am besten nochmals das Script. Dieses Mal mit einem fixen Pfad für den Zielordner:

Code
// der Zielordner 
var targetFolder = Folder ("~/Documents/HDS_Skriptwerkstatt/Zielordner");

// die Auswahl
var allItems = app.selection;
var nItems = allItems.length;

if (nItems == 0) {
alert ("Es ist nichts ausgewählt.", "Achtung");
exit();
}

// eine Schleife durch die Auswahl
for (var j=0; j<nItems; j++) {
var curSel = allItems[j];
// die Art der Auswahl
var selType = curSel.constructor.name;
if (selType == "Rectangle" || selType == "Oval" || selType == "Polygon") {
if (curSel.allGraphics.length != 0) {
// der aktuelle Link
var curLink = curSel.allGraphics[0].itemLink;
}
}
else if (selType == "Image" || selType == "EPS" || selType == "PDF") {
// der aktuelle Link
var curLink = curSel.itemLink;
}
// den Status prüfen
if (curLink.status != LinkStatus.LINK_EMBEDDED && curLink.status != LinkStatus.LINK_MISSING ) {
// den Namen des Bildes speichern
var imgName = (curLink.name);
// der neue Pfad
var newPath = File (targetFolder + "/" + imgName);
// testen, ob das Bild schon vorhanden ist
if (newPath.exists == false) {
// die Datei kopieren
curLink.copyLink(newPath);
}
}
}

// das Ende der Aktion verkünden
var dlog = new Window("palette");
dlog.size = [320,100];
dlog.add("statictext", [80, 100, 320, 116], "Fertig.");
dlog.show();
// eine kleine Pause
$.sleep(999);
// das Fenster schliessen
dlog.close();

Gruss, Hans


als Antwort auf: [#513865]
X