Mavericks – Sagen Sie der Anwendung „Vorschau“, dass sie PDF öffnet – seltsames Berechtigungsproblem

Ich habe kürzlich eine große Forschungssammlung von PDF-Dateien von einer Snow Leopard 10.6.8 TimeMachine-Festplatte auf mein neues rMBP (auf den internen Flash-Speicher) verschoben. Ich habe das manuell gemacht, nicht über die TimeMachine-Schnittstelle. Auf dem rMBP wird Mavericks 10.9.3 ausgeführt.

Wenn ich auf die PDFs doppelklicke, öffnen sie sich problemlos in der Vorschau.

Aber wenn ich zum Beispiel ein kleines AppleScript schreibe, um eines zu öffnen:

tell application "Preview"
    activate
    open "/Users/me/Desktop/test.pdf"
end tell

Beim Ausführen des AppleScripts erhalte ich folgenden Fehler:

Die Datei „test.pdf“ konnte nicht geöffnet werden, da Sie keine Berechtigung zum Anzeigen haben. Um Berechtigungen anzuzeigen oder zu ändern, wählen Sie das Objekt im Finder aus und wählen Sie „Datei“ > „Informationen“.

Ich suche in Get Info nach test.pdf. Auf der Registerkarte "Freigabe und Berechtigungen" spielt es keine Rolle, auf welche Berechtigungen ich setze, selbst wenn alle Benutzer die Datei lesen und schreiben können, erhalte ich immer noch den Fehler.

Wenn ich umgekehrt eine PDF-Datei aus dem Internet direkt auf den Desktop herunterlade und das Applescript zum Öffnen ausführe, wird sie problemlos in der Vorschau geöffnet.

(ps Ich muss PDF mit AppleScript öffnen, als Teil eines größeren Systems, das ich habe, ich mache es nicht nur zum Spaß!)

versuchen Sie es mit "sudo"
Haben Sie versucht, etwas wie zu verwenden do shell script open -a Preview /Users/me/Desktop/test.pdf?

Antworten (5)

für mich Shell-Skript .. fehlgeschlagen, aber dieses hier unten hat funktioniert.

set filepath to POSIX path of "Users:student:Desktop:Yourfile.pdf" try set command to "open " & quoted form of filepath do shell script command end try

Hinweis: Anstelle von ":" für den Dateipfad habe ich "/" verwendet, eine Änderung, die man ausprobieren kann.

Codequelle: MacRumors

Ich bestätige, dass diese Lösung auch für mich funktioniert.
@edison1093 könntest du die Antwort bewerten? ob die Lösung funktioniert hat.
Wenn Sie die Datei oder ähnliches überschreiben möchten, habe ich es so zum Laufen gebracht:set file_path to POSIX path of "Users:student:Desktop:Yourfile.pdf" tell application id "com.apple.Preview" activate set theDocument to open quoted form of file_path save theDocument in file_path

Dieses Problem wird durch Apples Sandboxing von Preview (und anderen Apps) verursacht. Preview erhält keine Berechtigung zum Zugriff auf das PDF, wenn Sie ihm nur einen String zum Öffnen übergeben. Aus den Versionshinweisen von Apple :

Kompatibilitätshinweise

Beim Senden von Befehlen an eine Sandbox-Anwendung, wie z. B. TextEdit in OS X Mountain Lion, müssen Parameter, die sich auf Dateien beziehen, einen expliziten dateiähnlichen Typ und keine bloße Zeichenfolge haben, oder die Zielanwendung kann nicht auf die Datei zugreifen. Beispielsweise wären die Datei „Macintosh HD:Users:me:sample.txt“, die POSIX-Datei „/Users/me/sample.txt“ oder das Ergebnis der Dateiauswahl akzeptabel, aber die Zeichenfolge „/Users/me/ sample.txt" nicht.

Warum funktioniert das für die Datei in Ihrem Downloads-Ordner? Wenn Sie eine Datei manuell öffnen, behält die Anwendung die Berechtigung zum Öffnen (z. B. in Recents). Wenn Sie also eine Datei ausprobieren, die Sie bereits geöffnet haben, funktioniert es wahrscheinlich, aber es funktioniert nicht bei neuen Dateien.

Um das Problem zu beheben, ändern Sie Ihren Code wie folgt:

tell application "Preview"
    activate
    open POSIX file "/Users/me/Desktop/test.pdf"
end tell
Ja, das war mein Problem. Von einer Anwendung aus habe ich eine Zeichenfolge an eine Hilfsfunktion übergeben, die sich in einer anderen Datei befindet, was open POSIX file theString. Ich habe meinen Code so umgestaltet, dass die App die Datei direkt übergibt und die Hilfsfunktion diese Datei einfach öffnet ( theFunction(POSIX file theString)und open theFile).

Der Kommentar von Edouard hat dieses Problem behoben. Seltsamerweise umgeht die Verwendung der Befehlszeile zum Starten der Vorschau das Berechtigungsproblem.

Hier ist das modifizierte AppleScript, das für PDFs mit Leerzeichen im Namen robust gemacht wurde:

    do shell script "open -a Preview " & quoted form of "/Users/me/Desktop/this has spaces and 'punctuation'.pdf"

Ich habe jetzt ein ähnliches Problem mit der Vorschau. Ich habe einige Dateien von Apple heruntergeladen. Ich kann Quicklook im Finder verwenden, um ihren Inhalt anzuzeigen, aber nicht mit Vorschau öffnen, obwohl ich die Berechtigungen in „Informationen erhalten“ auf „Jeder lesen und schreiben“ festlegen kann.

Ich habe überprüft, und andere Dateien, die im selben Ordner in Ordnung waren, haben jetzt dieses Problem. Ein Blick in Terminal zeigte, was sich geändert hat, obwohl ich nicht weiß, warum

drwxr-xr-x    5 andydent  501       170 22 Jul 00:21 Android
drwx------  182 andydent  501      6188  2 Sep 23:08 Apple various
drwxr-xr-x@   5 andydent  501       170 23 Dec  2007 AppleScript

Die Apple- Berechtigung für verschiedene Verzeichnisse schien etwas seltsam zu sein, obwohl ich als Besitzer nicht dachte, dass die fehlenden Berechtigungen einen Unterschied machen würden.

Das Ändern der Berechtigungen für das Verzeichnis hat nicht funktioniert.

Das Kopieren der Datei an einen anderen Ort hat nicht funktioniert.

Die Verwendung sudo open iTunesConnect_Guide.pdfhat nicht funktioniert - ich habe immer noch einen Fehlerdialog in der Vorschau.

Als ich jedoch die Vorschau beendete und neu startete, konnte sie diese Dateien ohne Probleme öffnen. Es könnte so einfach sein - beenden Sie einfach die App.

Ich habe seltsame Finder-Verlangsamungen auf meinem System erlebt, wenn der Spinner beim Öffnen eines Verzeichnisses viele Sekunden lang läuft. Ich weiß nicht, ob die beiden Probleme zusammenhängen. Ich habe mich auch gefragt, ob dies irgendwie mit der Neustarteinstellung zusammenhängt, die Fenster erneut öffnet.

Wie von Andy Dent erwähnt, funktioniert das Beenden und Neustarten der Vorschau für mich unter Mac OS X Mavericks 10.9.5

Das Neustarten der Vorschau löste auch das Problem, dass Dateien aufgrund dieses Berechtigungsproblems nicht einmal vom Finder aus geöffnet werden konnten, wie Andy Dent vorgeschlagen hatte.