Печать отдельных страниц из PDF — частая задача, особенно когда нужно быстро подготовить документы для подписи или собрать выжимку из нескольких файлов. На macOS для автоматизации таких процессов удобно использовать Quick Actions (быстрые действия) в Finder. Но иногда настройка скриптов приводит к неочевидным ошибкам, например, дублированию страниц. Расскажу, как создать надёжный инструмент для печати первой страницы каждого PDF без лишних копий.
Кстати, проблема с повторной печатью возникает не из-за скрипта, а из-за некорректной структуры workflow в Automator. Если вы видите, что количество страниц растёт квадратично (1 файл → 1 страница, 2 файла → 4 страницы), проверьте цепочку действий — скорее всего, там есть лишние элементы.

Исправляем структуру workflow в Automator
Главная ошибка, которая приводит к дублированию файлов, — добавление действия «Get Selected Finder Items» (Получить выбранные объекты Finder) после триггера «Workflow receives current files or folders in Finder» (Рабочий процесс получает текущие файлы или папки в Finder). Это создаёт двойные ссылки на одни и те же PDF-файлы.
Вот как должна выглядеть правильная цепочка:
- «Workflow receives current files or folders in Finder» — триггер для захвата выбранных файлов.
- «Run AppleScript» — скрипт, обрабатывающий входные данные.

Если вы добавите между ними другие действия (например, фильтрацию или преобразование файлов), проверьте вывод на каждом этапе через временный блок «Ask for Confirmation» с отображением путей. Это поможет отловить дубликаты.
Настраиваем AppleScript для печати
Сам скрипт достаточно прост, но есть нюансы, которые стоит учесть. Приведу пример кода с комментариями:
on run {input, parameters}
repeat with theFile in input -- цикл по каждому файлу из input
try
-- Конвертируем путь в POSIX-формат и экранируем спецсимволы
set filePath to quoted form of POSIX path of theFile
-- Печатаем первую страницу через lp (без дублирования)
do shell script "lp -n 1 -o page-ranges=1 " & filePath
on error errMsg
-- Показываем ошибку, если принтер недоступен или файл повреждён
display dialog "Ошибка: " & errMsg buttons {"OK"} default button 1
end try
end repeat
return input
end run
Что важно:
-n 1
— печатать одну копию файла.-o page-ranges=1
— указание диапазона страниц (только первая).quoted form of POSIX path
— экранирование пробелов и спецсимволов в путях.
Если скрипт завершается с ошибкой «The operation couldn’t be completed», проверьте:
- Разрешения Automator на доступ к Finder (Настройки → Защита и конфиденциальность → Автоматизация).
- Наличие установленного приложения Preview (используется для фоновой обработки PDF).
Альтернативные методы и расширение функционала
Если AppleScript по каким-то причинам не работает, попробуйте вызвать утилиту lp
через Terminal напрямую. Например:
for file in /path/to/*.pdf; do lp -n 1 -o page-ranges=1 "$file"; done
Этот цикл можно адаптировать для других задач, например, извлечения первой страницы в отдельный файл через pdfseparate
(требует установки poppler):
pdfseparate -f 1 -l 1 input.pdf output.pdf
Для более продвинутой обработки PDF (объединение, поворот страниц) рекомендую использовать Automator + JavaScript (JXA) или сторонние приложения вроде PDFpen или Adobe Acrobat.
И напоследок: если вам нужно печатать первые страницы регулярно, добавьте Quick Action в панель Finder. Для этого сохраните workflow в папку ~/Library/Services/
и назначьте горячую клавишу через Настройки → Клавиатура → Сокращения → Службы.
Готово! Теперь вы можете обрабатывать десятки PDF за пару кликов, а в случае ошибок — проверить логи принтера через Консоль (ищите записи с тегом «printing»). Если столкнётесь с неочевидными багами, напишите в комментариях — помогу с диагностикой.