Erstellen Sie einen Ordner, in dem sich Ihre 11 PDF-Vorlagen dauerhaft befinden können. Präfix ihre Dateinamen mit 01-
, 02-
, ..., 10-
, 11-
die Reihenfolge anzuzeigen, in der PDF - Dateien verarbeitet werden gespeichert (es ist wichtig, dass Vorlagen 1-9 ein führender haben 0
vorne).
Ändern Sie im folgenden Skript den Wert der Eigenschaft templatesFolder
(Zeile 1), um den Pfad zu dem Ordner anzugeben, in dem sich die PDF-Vorlagen befinden.
Um das Skript verwenden zu können, lassen Sie zu, dass alle 11 PDFs in der Vorschau geöffnet werden können. Führen Sie dann das Skript aus. Sie können das Skript in einen Automator- Dienst integrieren und ihm eine Tastenkombination zuweisen. Anweisungen, wie Sie einen systemweiten Service mit Automator einrichten können, finden Sie unter diesem Link.
Bei der Ausführung öffnet das Skript ein Dateisystemdialogfeld, in dem Sie einen Ordner auswählen können, in dem die verarbeiteten PDF-Dateien gespeichert werden sollen. Cancel
bricht das Skript ab. Sobald Sie auf klicken Choose
, werden die PDF-Dateien in der Reihenfolge gespeichert, in der sie geöffnet wurden. Dabei werden die Dateinamen der Vorlagen-PDFs verwendet (jedoch ohne Präfix). Jedes PDF wird dann geschlossen, die Vorschau wird geschlossen und die gespeicherten PDFs werden im Finder angezeigt .
Das Skript:
property templatesFolder : "~/Documents/PDFs/Templates" set saveFolder to POSIX path of ¬ (choose folder with prompt ("Select a folder to save PDFs") ¬ default location path to documents folder) tell application "System Events" to set pdfTemplates to the ¬ name of the files in folder templatesFolder ¬ whose name extension is "pdf" set filenames to sort(the result) repeat with D in my getPreviewDocumentsInOrder() set filename to text 4 thru -1 of item 1 of filenames set fp to POSIX file ([saveFolder, filename] as text) tell application "Preview" save D in fp close D end tell set filenames to rest of filenames if filenames = {} then exit repeat end repeat quit application "Preview" tell application "Finder" open POSIX file saveFolder activate end tell -------------------------------------------------------------------------------- ###HANDLERS # # to getPreviewDocumentsInOrder() script use P : application "Preview" property idx : sort(id of P's windows) on docList(IDs) local IDs if IDs = {} then return {} script property L : IDs end script tell the result to set [d0, dN] to [first item, rest] of its L tell P to return & my docList(dN) end docList end script tell the result to return the docList(its idx) end getPreviewDocumentsInOrder to sort(L as list) local L if L = {} then return {} if L's length = 1 then return L script property Array : L on minimum(L as list) local L if L is {} then return {} if L's length = 1 then return L's first item script property Array : L end script set [x0, xN] to [first item, rest] of the result's Array set min to minimum(xN) if x0 < min then return x0 return min end minimum on lastIndexOf(x, L as list) local x, L if x is not in L then return {} if L = {} then return script property Array : L end script tell the result set [x0, xN] to [last item, reverse of rest of reverse] of its Array if x0 = x then return (xN's length) + 1 return lastIndexOf(x, xN) end tell end lastIndexOf to swap(L as list, i as integer, j as integer) local i, j, L set x to item i of L set item i of L to item j of L set item j of L to x end swap end script tell the result set i to lastIndexOf(minimum(its Array), its Array) if i ≠ 1 then swap(its Array, 1, i) set [x0, xN] to [first item, rest] of its Array return [x0] & sort(xN) end tell end sort