[GastForen Programmierung/Entwicklung AppleScript

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

InDesign Dokumentengröße auslesen

Hans Haesler
  
Beiträge gesamt: 5826

16. Aug 2013, 20:48
Bewertung:

gelesen: 5669

Beitrag als Lesezeichen
Hallo rene-gade,

bitte sehr. Ich bedanke mich für die positive Rückmeldung.

Für interessierte Mitleser: Zwei Ausschnitte aus dem Code, um zu zeigen, wie es funktioniert.

Code
tell application "Adobe InDesign CC" 
-- die aktuelle Datei öffnen
open file curDoc without dialog
tell document 1
-- den Namen des Dokuments speichern
set docName to name
tell document preferences
-- den Variablen 'tmpW' und 'tmpH' die Werte Breite und Höhe zuweisen
-- dabei Multiplizieren mit 10; addieren von 0.5; abrunden; dividieren durch 10
-- damit werden die Nachkommastellen auf eine beschränkt
set tmpW to (round (((page width) * 10) + 0.5) rounding down) / 10
set tmpH to (round (((page height) * 10) + 0.5) rounding down) / 10
-- beide Werte in einen String umwandeln
set pW to tmpW as string
set pH to tmpH as string
-- wenn der String mit ".0" endet, diese beiden Zeichen abschneiden
if pW ends with ".0" then
set pW to text 1 thru -3 of pW
end if
if pH ends with ".0" then
set pH to text 1 thru -3 of pH
end if
end tell
end tell
-- die Ergebnisse mit ";" abgrenzen und an 'repList' anhängen
set end of repList to docName & ";" & pW & ";" & pH
-- das Dokument schliessen ohne zu speichern
close document 1 saving no

Am Schluss wird die Liste in eine Textkette umgewandelt und in eine Datei geschrieben:

Code
-- wenn die Liste 'repList' nicht leer ist ... 
if (count of repList) is greater than 0 then
-- die 'text item delimiters' (= den Text-Element-Trenner) als 'return' definieren
set AppleScript's text item delimiters to return
-- der Variablen 'repString'alle Text-Elemente von 'repList' als String zuweisen
set repString to every text item of repList as string
-- die 'text item delimiters' zurücksetzen auf ene leeren String
set AppleScript's text item delimiters to {""}
-- den Handler aufrufen, welcher die Textkette in eine Datei schreibt
my writeString(aFile, repString)

Mit CS6 unter Snow Leopard ging es ziemlich flott. Aber mit CC unter Mountain Lion war die Aufgabe blitzschnell beendet.

Gruss, Hans

(Dieser Beitrag wurde von Hans Haesler am 16. Aug 2013, 21:36 geändert)
Änderungsverlauf:
Beitrag geändert von Hans Haesler (Veteran) am 16. Aug 2013, 21:36