[GastForen Programme Print/Bildbearbeitung Adobe InDesign

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

Skript-Export der Dateinamen von verknüpften Bildern mit Umlauten

Martin Fischer
  
Beiträge gesamt: 12885

19. Dez 2006, 15:06
Bewertung:

gelesen: 16927

Beitrag als Lesezeichen
Hallo Gerald und Hans und andere Skripter.

ich hänge gerade an einem Exportproblem.

Per Skript sollen die Namen der verknüpften Bilder in eine Textdatei exportiert werden.
In meinen bisherigen Versuchen entstehen dabei Probleme, sobald Umlaute in den Dateinamen der Bilder enthalten sind (in meinem Skript sollen gerade u.a. Umlaute eliminiert bzw. durch andere Zeichen ersetzt werden).

Im Skript unten habe ich zwei Wege (Funktionen) zum Export der Bildnamen dargestellt:
1. Direktexport über File.open() - exportTXT()
2. Export über temporären Textrahmen - exportTempFrameAsTXT()

Gehe ich den ersten Weg über den Direktexport, löscht mir ein Umlaut in den zu exportierenden Daten den gesamten Inhalt. Die exportierte Textdatei ist leer.

Gehe ich den zweiten Weg über die Erstellung eines temporären Textrahmens und dem Export dessen Textflusses, werden die Umlaute falsch ausgegeben. Z.B. "o" statt "ö".

Es kommt mir vor, als würde beim Auslesen der Dateinamen per Skript ein "ö" als eine "o.."-Zeichenkombination umgesetzt (also ein o kombiniert mit einem Zeichen "..".
Bei Weg 1 führt das Zeichen ".." zum Verlust der zu exportierenden Daten und bei Weg 2 wird dieses Zeichen ignoriert. Wie bekomme ich ein "ö" als "ö" aus den Namen der verknüpften Bilder?

In folgendem Skript können die beiden Exportmethoden getestet werden.

Code
var myLinkNames = app.documents[0].links.everyItem().name; // die Namen aller verknüpften Bilddateien 
var myContent = myLinkNames.join("\r");
var myFolderName = "~/Desktop/";

exportTXT(myContent, "Bilder_1.txt"); // Direktexport
exportTempFrameAsTXT(myContent, "Bilder_2.txt"); // Export über temporären Textrahmen

// Direktexport
function exportTXT(myData, myFileName){
myCreator = "R*ch";
myType = "UTF-8";
myPath = myFolderName + myFileName;
myFile = new File( myPath);
myFile.open( 'w', myType, myCreator );
myFile.write( myData );
myFile.close();
}

// Export über temporären Textrahmen
function exportTempFrameAsTXT(myData, myFileName) {
var myFrame = app.documents[0].textFrames.add();
myFrame.geometricBounds = [0,-100, 150,0];
myFrame.contents = myData;
var myFile = File(myFolderName + myFileName);
myFrame.parentStory.exportFile(ExportFormat.textType, myFile);
myFrame.remove();
}



Habe dasselbe über AppleScript versucht.
Da kommen die Umlaute richtig an:

Code
tell application "Adobe InDesign CS2" 
set myFolderName to path to desktop as Unicode text
set myTXT_File to "Bilder_3.txt"
set myLinks to name of links of active document
set oldDelims to AppleScript's text item delimiters
set AppleScript's text item delimiters to {return}
set myData to myLinks as text
set AppleScript's text item delimiters to oldDelims
set myFile to (open for access file (myFolderName & myTXT_File) with write permission)
set eof myFile to 0
write myData to myFile
close access myFile
end tell


Kann mir jemand einen Hinweis geben, wie ich die Umlaute per JavaScript korrekt exportieren kann?

============
OS X 10.4.8
InDesign CS2 (4.04)

(Dieser Beitrag wurde von Martin Fischer am 19. Dez 2006, 15:18 geändert)
Änderungsverlauf:
Beitrag geändert von Martin Fischer (Moderator) am 19. Dez 2006, 15:07
Beitrag geändert von Martin Fischer (Moderator) am 19. Dez 2006, 15:18