Как печатать из Google Docs в Safari?

По какой-то причине, когда я нажимаю CMD + P или выбираю «Файл»> «Печать» в Документах Google вместо печати, документ загружается в формате PDF. Затем мне нужно перейти в папку с загрузками, открыть PDF-файл и распечатать его с помощью предварительного просмотра.

Это происходит только в Safari. Если я нажму CMD + P или «Файл»> «Печать» в Chrome, сразу появится диалоговое окно печати Chrome, и я смогу печатать прямо из Chrome.

Как я могу открыть диалоговое окно печати прямо в Safari? Или, если это невозможно сделать, есть ли способ автоматически определить, что документ был загружен из Документов Google, и распечатать его? Может быть, с помощью Apple Script?

Ответы (1)

Я не нашел способ заставить диалоговое окно печати появляться в 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

Сценарий нужно будет добавить как действие с папкой. Следуйте инструкциям ниже:

  1. Перейдите в папку «Загрузки».

  2. Щелкните правой кнопкой мыши папку «Загрузки» и выберитеServices>Folder Actions Setup

  1. Выберите сохраненный скрипт и нажмитеAttach

  2. Убедитесь, Enable Folder Actionsчто установлен флажок в левом верхнем углу

  3. Протестируйте документ Google

Два небольших предложения: я бы сначала проверил расширение каждого файла перед использованием do shell script. Поскольку большинство загруженных файлов не будут PDF-файлами, это обеспечивает простой способ завершить сценарий действия с папкой без ненужных накладных расходов на процесс оболочки и вызов mdls. Например, if (myPath ends with ".pdf") and (do shell script ...) contains "google.com" then.... Кроме того, quoted form of myPathэто безопаснее, чем просто вставлять кавычки по обе стороны от него: если, например, myPathон содержит кавычки, ваше текущее выражение будет проблематичным.
@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. 🙂
@CJK Ага. Забыл об этом. Только что отредактировано
Придется голосовать: за аккуратность и отношение
Я только что понял, что вы спросили и ответили на свой вопрос. Я также должен +1 за это усилие, чтобы вернуться, когда вы нашли решение, и предоставить подробный обходной путь для других, чтобы извлечь из этого пользу. Спасибо!