[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Fehlende Verknüpfungen von altem Server

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

Fehlende Verknüpfungen von altem Server

PatriceBüttiker
Beiträge gesamt: 4

22. Okt 2014, 09:17
Beitrag # 1 von 11
Bewertung:
(7128 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Zusammen

Wir müssen bei uns im Betrieb sehr häufig alte InDesign-Dokumente überarbeiten.
Die Verknüpfungen fehlen jeweils in diesen, weil die Bilder damals noch auf einem anderen Server gespeichert wurden.

Bis zum InDesign CC (9.2.2) konnte ich dies hervorragend mit dem Script renameLinks.jsx von Stefan Rakete lösen

Code
var myImages = app.activeDocument.allGraphics;  
for (i = myImages.length-1; i >= 0 ; i--) {

var myImage = myImages[i].itemLink;

var myNewName = myImage.filePath.replace(/data/, "GRAFIKTRANS");

var myNewLink = new File (myNewName);
if (myNewLink.exists) {
myImage.relink (myNewLink);
myImage.update();
}
}


Im neuen Indesign CC 2014.1 funktioniert dieser leider nicht mehr.

Bis zum CC wurden die fehlenden Verknüpfungen so angezeigt.
/Volumes/data/Grafik/Ordner/…

Im CC 2014 werden sie so angezeigt (steht auch plötzlich die MAC_HD vornedran).
MAC_HD:Volumes:data:Grafik:Ordner:…

Korrekt sollte der Pfad dann nur wie folgt lauten.
GRAFIKTRANS:Grafik:Ordner:…


Hoffe mir kann da jemand weiterhelfen das Script anzupassen.
Dieses erleichtert uns viel Arbeit. Das manuelle neu Verknüpfen ist ziemlich aufwändig, da die Bilder in diversen Unterordner sind.

Wir arbeiten mit OSX 10.9.5. InDesign Version 2014.1 Build 10.1.0.71

Liebe Grüsse
Patrice
X

Fehlende Verknüpfungen von altem Server

Martin Fischer
  
Beiträge gesamt: 12783

22. Okt 2014, 10:45
Beitrag # 2 von 11
Beitrag ID: #533322
Bewertung:
(7038 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Patrice,

Du benötigst statt der plattformspezifischen Notation des Dateipfads die plattformunabhängige (URI = universal resource identifier).

Diese erhältst Du wie folgt:
Code
var uri_str = File(myImage.filePath).absoluteURI; 


In Deinem Code (blind, ungetestet):
Code
var myImages = app.activeDocument.allGraphics;   
for (i = myImages.length-1; i >= 0 ; i--) {

var myImage = myImages[i].itemLink;

var myNewName = File(myImage.filePath).absoluteURI.replace(/data/, "GRAFIKTRANS");

var myNewLink = new File (myNewName);
if (myNewLink.exists) {
myImage.relink (myNewLink);
myImage.update();
}
}


Funktioniert das?


als Antwort auf: [#533310]
(Dieser Beitrag wurde von Martin Fischer am 22. Okt 2014, 10:57 geändert)

Fehlende Verknüpfungen von altem Server

PatriceBüttiker
Beiträge gesamt: 4

22. Okt 2014, 12:18
Beitrag # 3 von 11
Beitrag ID: #533330
Bewertung:
(7005 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin

Danke für die schnelle Hilfe.
Tut sich leider nichts. Gibt aber auch keine Fehlermeldung.

Ausgegeben wird mit
Code
var myNewName = File(myImage.filePath).absoluteURI 

bei mir
/
MAC_HD:Volumes:data:Grafik:…

Hat es vielleicht noch was mit den " oder / zu tun.
Habe zwar schon jede erdenkliche Kombination ausprobiert.

Gibt es vielleicht die Möglichkeit diesen ganzen Teil des Pfades
MAC_HD:Volumes:data
mit dem neuen Server "GRAFIKTRANS" zu ersetzten.

Merci und Gruss
Patrice


als Antwort auf: [#533322]

Fehlende Verknüpfungen von altem Server

Martin Fischer
  
Beiträge gesamt: 12783

22. Okt 2014, 12:50
Beitrag # 4 von 11
Beitrag ID: #533331
Bewertung:
(6995 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Seltsam...

Antwort auf: Gibt es vielleicht die Möglichkeit diesen ganzen Teil des Pfades
MAC_HD:Volumes:data
mit dem neuen Server "GRAFIKTRANS" zu ersetzten.


Das ginge dann etwa so:
Code
var str = "MAC_HD:Volumes:data:Grafik:" 
var result = str.replace(/MAC_HD:Volumes:data/,'GRAFIKTRANS');
$.writeln( result);



als Antwort auf: [#533330]

Fehlende Verknüpfungen von altem Server

PatriceBüttiker
Beiträge gesamt: 4

22. Okt 2014, 13:39
Beitrag # 5 von 11
Beitrag ID: #533332
Bewertung:
(6964 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Tatsächlich so funktionierts.

Code
  var myNewName = myImage.filePath.replace(/MAC_HD:Volumes:data/, 'GRAFIKTRANS'); 

Halt wieder ohne .absoluteURI

Aber Hauptsache es klappt :D

Danke nochmals für deine Hilfe
Gruss Patrice


als Antwort auf: [#533331]

Fehlende Verknüpfungen von altem Server

Martin Fischer
  
Beiträge gesamt: 12783

22. Okt 2014, 14:06
Beitrag # 6 von 11
Beitrag ID: #533333
Bewertung:
(6935 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Prima.

Von einer URI war im letzten Beispiel nicht mehr die Rede.
Nur eine Operation am plattformabhängigen Pfad.


Aber ich möchte nochmal nachfragen:

Code
var myNewName = File(myImage.filePath).absoluteURI 

liefert unter InDesign CC 2014
MAC_HD:Volumes:data:Grafik:…

und nicht
/MAC_HD/Volumes/data/Grafik/…

Stimmt das?
Kann das noch jemand anderer bestätigen?
Das klingt so unwahrscheinlich ...


als Antwort auf: [#533332]

Fehlende Verknüpfungen von altem Server

PatriceBüttiker
Beiträge gesamt: 4

22. Okt 2014, 15:29
Beitrag # 7 von 11
Beitrag ID: #533334
Bewertung:
(6895 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also bei mir definitv so, habs grad nochmals getestet.

Code
  var myNewName = File(myImage.filePath).absoluteURI 


Liefert unter CC 2014
/
MAC_HD:Volumes:data:Grafik:Ordner

unter CC
/data/Grafik/Ordner


Aber nur bei fehlenden Verknüpfungen !
Wenn die Verknüpfungen vorhanden sind, liefert es auch unter CC 2014
/GRAFIKTRANS/Grafik/Ordner

Gruss Patrice


als Antwort auf: [#533333]

Fehlende Verknüpfungen von altem Server

mb_new
Beiträge gesamt: 123

21. Dez 2015, 15:39
Beitrag # 8 von 11
Beitrag ID: #545580
Bewertung:
(5655 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
aus aktuellem Anlass eine Frage dazu: ich bekomme das mit CC 2014.2 nicht hin.

Bei mir werden die Verknüpfungen nicht geändert.

Mein Ding ist es, dass die Dokumente auf einem Indesignserver laufen, der vor die Verknüpfung ein "C/:" gibt, da das windowsbasierend ist.

Nun möcht ich das wieder weglöschen.

Folgender Pfad wird vom Indesign Server gemacht:
/C/:Publikation:Inserate:Testinserat.pdf

Ich möchte den ändern auf (so sieht der Pfad mit der korrekten Verknüpfung aus):
/Publikation/Inserate/Testinserat.pdf

Ich hab alles ausprobiert, doch die Pfade werden nicht geändert und es kommt auch keine Fehlermeldung.

Vielleicht hat jemand eine Idee, danke für Hilfe.
Martin


als Antwort auf: [#533334]

Fehlende Verknüpfungen von altem Server

Hans Haesler
  
Beiträge gesamt: 5826

22. Dez 2015, 20:18
Beitrag # 9 von 11
Beitrag ID: #545609
Bewertung:
(5511 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

klappt es, wenn Du den führenden Bruchstrich verdoppelst?

//Publikation/Inserate/Testinserat.pdf

Und:
– Wie änderst Du den Pfad?
– Wie wird das Bild neu verknüpft?

Poste doch bitte den Code. Dann kann Dir eher geholfen werden.

Gruss, Hans


als Antwort auf: [#545580]

Fehlende Verknüpfungen von altem Server

mb_new
Beiträge gesamt: 123

22. Jan 2016, 14:11
Beitrag # 10 von 11
Beitrag ID: #546212
Bewertung:
(4953 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

aufgrund Weihnachtsurlaub usw. ers jetzt meine verspätete Reaktion.

Also ich hab es jetzt mittlerweile lokal mit meinem Indesign hinbekommen:
Code
changeLinks(); 

//Ändert den Pfad der Verknüpfungen
function changeLinks() {
var myDoc = app.documents.item(0);
var myImages = myDoc.allGraphics;
for (i = myImages.length-1; i >= 0 ; i--) {
var myImage = myImages[i].itemLink;
// Eingabe was ersetzt werden soll
var myNewName = myImage.filePath.replace("C/:", "");
// Änderung der Links, funktioniert nur, wenn der Pfad vorhanden ist
var myNewLink = new File (myNewName);
if (myNewLink.exists) {
myImage.relink (myNewLink);
myImage.update();
}
}
}


Was ich nicht zusammen bekomme ist, dass das auf dem Indesignserver erledigt wird.
Vielleicht kurz zur Erklärung: das Dokument wird mittels automatisierter Anwendung auf dem Indesignserver geöffnet, und zwar mit:
Code
function runScript(layoutDocument) { 
layoutDocument.k4GetServerData().k4SaveVersion();
return;
}


Dort passiert es dann, dass die Verknüpfung das C:// davor bekommt. Nun soll es aber auch auf dem Indesignserver passieren, dass beim Schließen des Dokuments auf dem Server die Verknüpfung wieder "repariert" wird.

Nur weiß ich nicht wie ich das in ein Indesignserver-Skript einbaue.

Hab schon probiert das funktionierende Indesignskript in das Server-Skript einzubinden, doch es funktioniert dann nicht.

Hast du da eine Idee dazu, wie das auf dem Indesignserver verstanden wird?

Danke
Martin


als Antwort auf: [#545609]

Fehlende Verknüpfungen von altem Server

Hans Haesler
  
Beiträge gesamt: 5826

22. Jan 2016, 14:36
Beitrag # 11 von 11
Beitrag ID: #546215
Bewertung:
(4944 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

kein Problem. Aber ich habe deren zwei: bin unterwegs und habe keine Erfahrung mit dem Server.

Darum: Hoffentlich wird sich ein Server-Spezialist melden.

Gruss, Hans


als Antwort auf: [#546212]
X