По какой-то причине, когда я нажимаю CMD + P или выбираю «Файл»> «Печать» в Документах Google вместо печати, документ загружается в формате PDF. Затем мне нужно перейти в папку с загрузками, открыть PDF-файл и распечатать его с помощью предварительного просмотра.
Это происходит только в Safari. Если я нажму CMD + P или «Файл»> «Печать» в Chrome, сразу появится диалоговое окно печати Chrome, и я смогу печатать прямо из Chrome.
Как я могу открыть диалоговое окно печати прямо в Safari? Или, если это невозможно сделать, есть ли способ автоматически определить, что документ был загружен из Документов Google, и распечатать его? Может быть, с помощью Apple Script?
Я не нашел способ заставить диалоговое окно печати появляться в Safari. Вместо этого я создал скрипт, который будет проверять, когда что-то загружается, и выяснять, не из ли это документов Google. Если это так, то документ будет открыт в режиме предварительного просмотра с диалоговым окном печати. По сути, вы получаете те же функции, что и в Chrome. Затем вы можете распечатать его, как обычно.
Вот сценарий. Сохраните его в /Library/Scripts/Folder Actions Scripts/
:
on adding folder items to this_folder after receiving added_items
repeat with i in added_items
set myPath to the POSIX path of i
if myPath ends with ".pdf" then
set myLocation to (do shell script "mdls -name kMDItemWhereFroms " & the quoted form of myPath)
if myLocation contains ".google.com" then
tell application "Preview"
activate
print i with print dialog
end tell
end if
end if
end repeat
end adding folder items to
Сценарий нужно будет добавить как действие с папкой. Следуйте инструкциям ниже:
Перейдите в папку «Загрузки».
Щелкните правой кнопкой мыши папку «Загрузки» и выберитеServices>Folder Actions Setup
Выберите сохраненный скрипт и нажмитеAttach
Убедитесь, Enable Folder Actions
что установлен флажок в левом верхнем углу
Протестируйте документ Google
CJK
do shell script
. Поскольку большинство загруженных файлов не будут PDF-файлами, это обеспечивает простой способ завершить сценарий действия с папкой без ненужных накладных расходов на процесс оболочки и вызовmdls
. Например,if (myPath ends with ".pdf") and (do shell script ...) contains "google.com" then...
. Кроме того,quoted form of myPath
это безопаснее, чем просто вставлять кавычки по обе стороны от него: если, например,myPath
он содержит кавычки, ваше текущее выражение будет проблематичным.JBis
CJK
myPath
его форму в кавычках, условиеif myPath ends with ".pdf"
никогда не будет истинным. Возможно, вернутьсяset myPath to the POSIX path of i
, а потомset myLocation to do shell script "mdls -name kMDItemWhereFroms " & myPath's quoted form
. 🙂JBis
Солнечный Майк
CJK