Connect failed: Connection timed out

[GastForen Programme Print/Bildbearbeitung Adobe InDesign

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

AppleScript Droplet zur Platzierung mehrerer Importdokumente

Martin Fischer
  
Beiträge gesamt: 12779

25. Aug 2006, 15:21
Bewertung:

gelesen: 939

Beitrag als Lesezeichen
Hallo,

bin beim Nachbarn (hallo Hans) auf einen interessanten Beitrag mit einem für mich nützlichen Skript gestoßen: Textimport in Indesign über Droplet

Das Droplet importiert alle Textdateien, die auf das Droplet gezogen werden, in einem auszuwählenden InDesign-Dokument und zwar in den Textrahmen mit dem Label "mainText" und speichert dieses Dokument unter dem Namen der einzelnen Textdateien mit der Endung ".indd".

Ich habe aus einem alten Skript von mir (placeSelectedDocs.as) und dem Droplet eine weitere Fassung gebastelt, die es ermöglicht, alle Textdateien, die auf das Droplet gezogen werden in der ausgewählten InDesign-Datei fortlaufend mit Autotextfluß zu plazieren. Ein Textrahmen mit dem Label "mainText" ist nicht mehr nötig. Ist vor dem Platzieren mehr als eine Seite im Dokument vorhanden, wird zunächst eine neue Seite angelegt, damit der Text ab dieser reinlaufen kann.

Code
property indDoc : "" 
global folderPath

on run
display dialog "Bitte die Text-Dateien oder die Ordner, welcher die Dateien
enthalten, auf das Icon dieses Droplets ziehen." buttons "OK" default button 1 with icon 2
end run

on open allObjects
-- den gespeicherten Pfad des Musterdatei prüfen
if indDoc is "" then
set indDoc to (choose file with prompt "Bitte die InDesign-Musterdatei wählen.") as Unicode text
else
try
alias indDoc
on error
set indDoc to (choose file with prompt "Bitte die InDesign-Musterdatei wählen.") as Unicode text
end try
end if

tell application "Adobe InDesign CS2"
-- Warndialoge ausschalten
set user interaction level of script preferences to never interact
end tell

--
Wiederholungsschleife, welche alle gedroppten Objekte zum Handler 'processObject' schickt
repeat with aObject in allObjects
processObject(aObject)
end repeat

tell application "Adobe InDesign CS2"
-- und wieder zurücksetzen
set user interaction level of script preferences to interact with all
--
den Anwender informieren
display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 10
end tell

end open

--
im folgenden Handler wird geprüft, ob das Objekt ein Ordner oder eine Datei ist.
--
Bei Ordnern wird eine Liste des Inhalts erstellt und die Elemente rekursiv behandelt
--
(d.h. zum aktuellen Handler geschickt). Dateien werden zum Handler 'processFile' gesandt
on processObject(aObject)
-- wenn der Pfad mit einem Doppelpunkt endet, ist das Objekt ein Ordner
--
die Liste dessen Inhalts wird erstellt (ohne unsichtbare Dateien)
if (aObject as string) ends with ":" then
set contentsList to list folder aObject without invisibles
--
dies ist das rekursive Teil: die Wiederholschleife schickt alle Objekte zum Handler, in welchem sie sich selbst befindet
repeat with anItem in contentsList
set objPath to ((aObject as string) & anItem)
processObject(objPath as alias)
end repeat
--
wenn das Objekt eine Datei ist, dann wird der Pfad dem Handler 'processFile' übergeben
else
processFile(aObject as string)
end if
end processObject

--
in diesem Handler wird der Name der Datei ausgezogen
--
und an den Handler 'loadFile' weitergereicht
on processFile(curFile)
tell application "Finder" to set folderPath to (container of file curFile) as Unicode text
set fileName to name of (info for file curFile)
if fileName ends with ".rtf" then
set fileName to text 1 thru -5 of fileName
end if
loadFile(curFile, fileName)
end processFile

on loadFile(curFile, fileName)
tell application "Adobe InDesign CS2"
activate
open file indDoc
tell document 1
if (count of pages) > 1 then
set newPage to make page
end if
set myLeftMargin to left of (margin preferences of last page)
set myTopMargin to top of (margin preferences of last page)
try
place alias curFile on page (count of pages) place point {myLeftMargin, myTopMargin} with autoflowing without showing options
end try
end tell
end tell
end loadFile


(Dieser Beitrag wurde von Martin Fischer am 26. Aug 2006, 07:04 geändert)
Änderungsverlauf:
Beitrag geändert von Martin Fischer (Moderator) am 25. Aug 2006, 15:24
Beitrag geändert von Martin Fischer (Moderator) am 25. Aug 2006, 15:40
Beitrag geändert von Martin Fischer (Moderator) am 26. Aug 2006, 07:00
Beitrag geändert von Martin Fischer (Moderator) am 26. Aug 2006, 07:04