Як налаштувати службу OSX для видалення першої сторінки PDF?


4

Я часто отримую PDF-файли, де перша сторінка порожня або просто титульна сторінка, для якої я не використовую. Чи можете ви запропонувати швидкий та ефективний спосіб (Applescript, Service чи ???) для мене видалити саме цю першу сторінку та зберегти файл?

Якщо це можна автоматизувати за допомогою Preview або Adobe Acrobat Professional, це було б найбільш ідеально.

Будь-які ідеї?


1
Це круто. Просто реалізовано його за допомогою Automator. Нарешті тривалий робочий процес :-)
Даніель Бек

Перегляд , до жаль , НЕ AppleScriptable в останніх версіях OS X, так як Automator це тааак набагато більш потужним. * кашель *
Даніель Бек

Зауважте, що видалити окремі сторінки в PDF за допомогою Preview дуже просто. Просто виберіть їх на бічній панелі і натисніть Delete( Backspace). Тож якщо файлів не надто багато, це, мабуть, найпростіше рішення.
Даніель Бек

Відповіді:


4

Це можна зробити за допомогою робочого процесу автоматизатора . Це трохи складніше, ніж більшість, тому будьте обережні при здійсненні.

Цей пост містить дві версії: Один коротший і зберігає вихід, як Processed PDF File.pdfна робочому столі, інший довший і зберігає файл, як (Edited)InputFileName.pdfу тому самому каталозі. Етапи, необхідні лише для більш тривалої версії, позначені (необов'язково) .

Відкрийте Automator і виберіть, щоб створити нову Службу, яка отримує PDF-файли як вхід у будь-яку програму .

  1. (необов’язково) Додайте задане значення дії змінної та назвіть змінну FilePath.
  2. (необов’язково) Додайте дію запуску AppleScript та скористайтеся наступним кодом сценарію, щоб отримати ім'я папки, у якій знаходиться файл.

    on run {input, parameters}
        tell application "Finder" to return (container of first item of input) as alias
    end run
    
  3. (необов’язково) Додайте задане значення дії змінної та назвіть змінну Folder.

  4. (необов’язково) Додайте дію Отримати значення змінної та поверніть змінну FilePath. Ігноруйте вхід цієї дії в її параметрах .
  5. (необов’язково) Додайте сценарій запуску сценарію оболонки та передайте введення як аргументи . Використовуйте такий сценарій, щоб витягти базове ім'я файлу:

    echo "$( basename "$1" )"
    
  6. (необов’язково) Додайте задане значення дії змінної та назвіть змінну FileName.

  7. (необов’язково) Додайте дію Отримати значення змінної та назвіть змінну FilePath. Ігноруйте вхід цієї дії в її параметрах .

  8. Додайте PDF до зображень , зберігаючи висновок на робочий стіл або будь-яку папку, в якій можуть зберігатися тимчасові файли. Назвіть їх, як хочете.

  9. Додайте встановлене значення змінної , щоб ми пізніше дізналися, які тимчасові файли потрібно видалити. Назвіть змінну TempFiles.
  10. Додайте дію Виконати AppleScript і скористайтеся наступним кодом сценарію для фільтрації списку тимчасових файлів (саме тут ми видаляємо першу сторінку):

    on run {input, parameters}
        return rest of input
    end run
    
  11. Додайте дію " Комбінувати PDF-сторінки", щоб зібрати фрагменти знову, додавши сторінки .

  12. Скористайтеся дією " Пошук елементів переміщення", щоб перемістити отриманий файл (рекомбінований PDF) на робочий стіл або будь-яку папку, куди ви їх хочете. Якщо ви вирішили обчислити батьківську папку вхідного файлу, саме тут ви перетягуєте посилання на Folderзмінну.
  13. Дія " Перейменування елементів пошуку" може надати цим файлам краще ім'я файлу, ніж, наприклад zOpY3O.pdf, яке є автоматично призначеним ім'ям файлу для комбінованого файлу PDF. Використовуйте, наприклад, ім'я одного елемента та дайте йому базову назву Processed PDF File. Якщо ви вирішили використовувати довший варіант, перетягніть FileNameзі списку змінних до текстового поля та додайте (Edited)безпосередньо перед ним. Зараз ми в основному готові, просто потрібно прибирати.
  14. Додайте дію Отримати значення змінної та отримайте значення TempFiles. Ігноруйте вхід цієї дії в її параметрах .
  15. Додайте елементи Пошукового переміщення до дії Кошик, щоб видалити тимчасові файли однієї сторінки.

Ось скріншот готової довшої версії робочого процесу:

введіть тут опис зображення


У скріншоті є помилка в скрипті оболонки. Використовуйте версію сценарію в тексті.
Даніель Бек

2
Недолік цього рішення: воно втрачає всі метадані PDF.
Даніель Бек

2

Використовуючи вищезазначені інструменти PDF командного рядка , я зміг скласти робочий процес, який виконує такі дії:

  1. Візьміть вхідний PDF (або PDF) та створіть новий файл за вирахуванням першої сторінки
  2. Перемістіть оригінал PDF у кошик
  3. Перейменуйте новий файл, щоб він відповідав початковому файлу

Спочатку я встановив інструменти PDF за інструкцією. Ключовим інструментом у цьому випадку є pdfsplit.

У Automator я створив нову послугу для отримання вибраних PDF-файлів у Finder.

Я додав дію "Запустити скрипт оболонки", оболонка як "/ bin / bash" і "передача вводу" встановлена ​​на "як аргументи". Потім я написав такий простий сценарій:

for f in "$@"
do
        /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
done

Я додав дію "Перемістити елементи пошуку в кошик" для вихідного файлу та "Замінити текст", щоб видалити розширення .tmp з нового файлу.

Щоб запустити процес із введенням папки, сценарій був би таким:

cd "$@"
for f in *pdf
do
        /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
done

Я думаю, я міг би зробити все в сценарії оболонки, включаючи видалення та перейменування. Але команда rm може бути небезпечною, і я віддаю перевагу замість цього вихідний файл у смітник.

Сценарій можна модифікувати, щоб зробити більше, ніж просто видалити х кількість сторінок. Я, наприклад, розробив подібну програму для групового обрізання та комбінування PDF-файлів. Перегляньте посібник з pdfsplit та супутні інструменти для отримання додаткової інформації.


0

Хтось на іншому форумі розробив деякі інструменти PDF командного рядка , включаючи той, який видаляє сторінки. Виглядали як бути досить легко. Єдиним можливим іконою може бути те, як це працює з вашим робочим процесом. З вашого опису видно, що ви працюєте під час відкриття PDF-файлу, і ці інструменти, здається, працюють (краще) із закритим файлом.


0

Для того, щоб додати відповідь, надану Джозефом Янніеллі, тим, хто вирішив запустити скрипт оболонки, може бути простіше включити команди для видалення та перейменування файлу в сценарій, а не додавати окремі дії через Automator:

for f in "$@"
do
    /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
    rm "$f"
    mv "$f".tmp "$f"
done

Що стосується встановлення інструментарію PDF командного рядка, це можна зручно зробити за допомогою домашньої мови :

brew install pdf-tools
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.