[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt copy() ohne neues Datum

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

copy() ohne neues Datum

Azrael
Beiträge gesamt: 16

5. Dez 2018, 11:00
Beitrag # 1 von 9
Bewertung:
(4291 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich habe ein Problem beim Kopieren von Dateien.
Konkret möchte ich die Links eines InDesign Dokuments gegen neue Versionen austauschen.
Die neuen Bilder werden aber in mehreren Buchdokumenten verwendet. Ich prüfe also pro Dokument, ob das Bild im neuen Bilderordner vorhanden und neueren Datums ist. Wenn das zutrifft ersetze ich die alte Verknüpfung mittels copy() durch die neue. Soweit klappt das alles wunderbar. Allerdings erhält die durch den copy-Befehl neu erstellte Datei auch das aktuelle Datum. Ich möchte aber das alte Datum der neuen Bilddatei erhalten. Also so als ob ich die Datei im Finder mit gedrückter Alt-Taste in einen anderen Ordnder schieben würde.

Ich habe natürlich schon versucht das Datum der neuen Datei mittels .created zu überschreiben. Aber das ist ja read-only. Ich finde auch keinen anderen Befehl. Gibt es vielleicht innerhalb des copy-Befehls eine Option, um das Quelldatum zu erhalten.

Ich hoffe, dass ich mich eingigermaßen verständlich ausgedrückt habe und, dass mir jemdand helfen kann.
X

copy() ohne neues Datum

Hans Haesler
  
Beiträge gesamt: 5826

9. Dez 2018, 10:01
Beitrag # 2 von 9
Beitrag ID: #567950
Bewertung:
(4192 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Azrael,

warum müssen die Bilddateien kopiert werden? Neu verknüpfen (= relink) würde doch genügen.

Zum Ausprobieren einen Bildrahmen auswählen, welcher ein Bild enthält. Dann im Dialog die neue Bilddatei wählen:

Code
var oldImg = app.selection[0].graphics[0].itemLink; 
var newImg = File("~/Documents/").openDlg("Das neue Bild wählen.");
oldImg.relink(newImg);

So wird das Erstellungsdatum der Datei nicht geändert.

Gruss, Hans


als Antwort auf: [#567899]

copy() ohne neues Datum

Azrael
Beiträge gesamt: 16

10. Dez 2018, 08:53
Beitrag # 3 von 9
Beitrag ID: #567959
Bewertung:
(4137 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

ich habe mich wahrscheinlich missverständlich ausgedrück, daher versuche ich es nochmal etwas konkreter.

Mein Problem ist, dass wir Daten eines Kataloges von einem Kunden geliefert bekommen. Dieser ist dann schon rudimentär aufgebaut/zusammenkopiert worden. Wir übernehmen das "Finetuning". Der Katalog besteht aus einer großen Anzahl einzelner InDesing Dokumente (wegen des Zusammenkopierens), die jeweils einen Link-Ordner mit den zugehörigen Bildern enthalten. Dieser wurde über die Verpacken-Funktion von InDesign erstellt.

Daraus resultiert leider die Tatsache, dass die Bilddaten oft mehrfach physikalisch vorliegen (in den jeweiligen Link-Ordnern).

Für die Grobzusammenstellung, hat der Kunde unretuschierte Bilder vom Fotografen erhalten und diese schon mal platziert, um die Seiten zu füllen und die Bildausschnitte festzulegen. Wir erhalten zu einem späteren Zeitpunkt dann ein großes Archiv mit retuschierten Bildern, die dann im kompletten Katalog/InDesign-Buch ausgetauscht werden müssen.

Ich habe daher ein Script geschrieben, dass beim Start nach dem Ordner mit den neuen Bildern fragt und anschließend für alle Buchdokumente die Links mit den Daten im neuen Ordner vergleicht. Ist der Bildname gleich und das Datum der neuen Datei jünger, so soll die Datei im Link-Ordner ersetzt werden.

Mache ich das aber über den copy() Befehl erhält die so erstellte Kopie das aktuelle Datum. Und das erschwert anschließend die Identifikation der Bilddaten. Ich würde gerne das Datum der Datei vom Fotografen behalten. Wenn ich die neue Datei über den Finder kopiere bleibt das alte Datum ja auch erhalten.

Ich hoffe das war verständlicher und du hast dazu eine Idee ;)

Gruß
Alex


als Antwort auf: [#567950]

copy() ohne neues Datum

WernerPerplies
Beiträge gesamt: 2759

10. Dez 2018, 09:35
Beitrag # 4 von 9
Beitrag ID: #567965
Bewertung:
(4125 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Alex,

Antwort auf: Wenn ich die neue Datei über den Finder kopiere bleibt das alte Datum ja auch erhalten.


Wie wäre es, wenn das so ist, den Kopiervorgang mit dem Finder (Applescript) zu machen?
Nur mal so als Idee.


als Antwort auf: [#567959]

copy() ohne neues Datum

Hans Haesler
  
Beiträge gesamt: 5826

10. Dez 2018, 09:42
Beitrag # 5 von 9
Beitrag ID: #567966
Bewertung:
(4119 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Azrael,

ach sooo ...

Ja, ich habe dieselbe Idee wie Werner: Die Bilddatei per AppleScript duplizieren.

Falls dies möglich (und genehm) ist, schlage ich Dir vor, im AppleScript-Forum ein neues Thema zu erstellen.

Gruss, Hans


als Antwort auf: [#567959]

copy() ohne neues Datum

Azrael
Beiträge gesamt: 16

10. Dez 2018, 12:00
Beitrag # 6 von 9
Beitrag ID: #567968
Bewertung:
(4069 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank euch beiden für den Ansatz.

Aber ich bin froh, dass ich ein paar Brocken JavaScript gelernt habe. Bei AppleScript fehlt mir komplett der Zugang und mein Script ist ja schon fast fertig.

Ich hatte gehofft es gäbe eine Möglichkeit dem copy-Befehl noch ein Datum mitzugeben o.ä.

Wahrscheinlich werde ich so verfahren, dass das script mir lediglich den Dateinamen des Bildes nennt und ich das kopieren manuell über den Finder vornehme. Das ist zwar wenig elegant, aber für mich wohl leider alternativlos.

Gruß
Alex


als Antwort auf: [#567966]

copy() ohne neues Datum

Hans Haesler
  
Beiträge gesamt: 5826

10. Dez 2018, 12:19
Beitrag # 7 von 9
Beitrag ID: #567969
Bewertung:
(4057 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Alex,

Antwort auf: Das ist zwar wenig elegant, aber für mich wohl leider alternativlos.

Wenig elegant? Eher zeitraubend :-). Doch es gibt eine Alternative: Das JavaScript nach AppleScript portieren.
Werner wird Dir sicher behilflich sein. Falls er keine Zeit hat, werde ich es versuchen.

Als "Anreiz" ein AppleScript-Dreizeiler, welcher eine Datei dupliziert:

Code
set targetFolder to choose folder 
set newImg to choose file
tell application "Finder" to duplicate newImg to targetFolder with replacing

Das AppleScript ist gebrauchsfertig (zuerst entzippen) unten angehängt.

Einen leeren Zielordner erzeugen. Dann das Script per Doppelklick auf sein Icon starten.
Im ersten Dialog den Zielordner wählen, im zweiten Dialog die zu kopierende Bilddatei.

Gruss, Hans


als Antwort auf: [#567968]
(Dieser Beitrag wurde von Hans Haesler am 10. Dez 2018, 12:19 geändert)

Anhang:
BilddateiKopieren.zip (51.6 KB)

copy() ohne neues Datum

Azrael
Beiträge gesamt: 16

10. Dez 2018, 17:10
Beitrag # 8 von 9
Beitrag ID: #567985
Bewertung:
(4006 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

ich weiß dein/euer Angebot wirklich zu schätzen. Aber ich will euch nicht die Zeit stehlen. Ich bin mir sicher, dass ihr das problemlos hinbekommt, aber wenn ich dann etwas anpassen möchte stehe ich ja wieder auf dem Schlauch.

Ich benutze für JavaScript die InDesign ExtendScript API von Gregor. Gibt es etwas vergleichbares für AppleScript? Dann würde ich das mal auf eigene Faust versuchen und euch nur dann löchern wenn ich nicht weiter weiß...

Gruß
Alex


als Antwort auf: [#567969]

copy() ohne neues Datum

Hans Haesler
  
Beiträge gesamt: 5826

10. Dez 2018, 18:08
Beitrag # 9 von 9
Beitrag ID: #567986
Bewertung:
(3995 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Alex,

hast Du das AppleScript ausprobiert? Das kopiert die Dateien ohne Änderung der Daten (Erzeugung und Modifikation).

*****
– Zum Erlernen der Grundlagen gibt es zum Beispiel "AppleScript für absolute Starter".
Zu finden hier: http://www.fischer-bayern.de/...ript/html/ebook.html

– Für InDesign gab es mal "InDesign AppleScript Dictionary". Doch das war für CS5 und der Link ist nicht mehr gültig.

– Es gibt auch ein Tutorial von Adobe. Im PDF-Format und für CS6.

– Aber durch den AppleScript-Editor bekommt man auch Zugang zu den Klassen, den Elementen und den Properties, indem man die der InDesign-Version entsprechende ".sdef"-Datei öffnet.

*****
Doch um alles von Grund auf zu erlernen, muss sehr viel Zeit investiert werden.

Deshalb wäre es am effizientesten, wenn Du Dein JavaScript jemandem zum Portieren nach AppleScript senden würdest.
Der Aufwand wird nicht sooo gross sein. Als "Honorar" würde vermutlich eine Spende ans Forum genügen :-)

Wenn mal eine Änderung ansteht und Du selber nicht weiterkommst: Nur eine Anfrage ins AppleScript-Forum stellen.

Gruss, Hans


als Antwort auf: [#567985]
X