Командний рядок Mac Відкрийте PDF на конкретній сторінці


2

Мета - використовувати командний рядок, щоб відкрити файл PDF на певній сторінці. Більш загальне питання полягає в тому, як я можу дізнатися, які аргументи доступні для будь-якої програми? Я можу відкрити pdf-файл у командному рядку Mac OS X за допомогою openкоманди і знає, що ви можете передавати аргументи, але не міг з’ясувати точні аргументи, які слід поставити, щоб відкрити файл PDF на сторінку 5.

Спробував сліпо, і нічого не вийшло ...

open file.pdf --args -page=5
open file.pdf --args -p 5
open file.pdf --args -page 5

Ви бачили це питання , але для вирішення цього питання потрібно встановити evince або написати Apple Script. Чи не існує простого рішення просто пройти --args в Mac так само, як у командному рядку Windows?


1
Ви викликаєте openкоманду. Щоб побачити, які аргументи він може прийняти, введіть man open.
NReilingh

Дякуємо за коментар, але ви можете розробити трохи більше? Я думав, що man openдає аргументи для команди open, які всі йдуть перед назвою файлу, наприклад, -aщоб вказати програму. Але я подумав, що мені потрібно зателефонувати `--args ', щоб передати якийсь параметр сторінки самому читачеві PDF у цьому випадку. Я не знаю, які аргументи я міг би пройти? Якщо ви можете навести приклад, який був би дуже вдячний ..
помідор

Відповіді:


4

Я поняття не мав, що всі програми Windows розуміють аргументи командного рядка.

Так чи ні, це не так у Mac OS. Коли ви використовуєте додаток Terminal, ви взаємодієте з підсистемою BSD, яка дотримується всіх зразків, яких ви очікували від операційної системи UNIX або Linux.

Там є багато ресурсів, щоб ознайомитись з оболонкою bash та командним рядком * NIX. Щоб розпочати роботу, manкоманда отримає вам сторінку для будь-якої команди, яку ви перейдете. Як правило, всі розділені пропуском «слова», які ви вводите після команди, трактуються як аргументи для цієї команди, принаймні, доки ви не натиснете на якийсь вихідний переадресацію. або керуючий символ , як |, <, >, &.

Таким чином , у вашому прикладі, ви дзвонили openі проходячи file.pdf, --argsі в -page=5якості аргументів. Як ви зауважили, openне знаю, що робити з більшістю з них.

У всякому разі, давайте копаємо глибше. Більшість програм (як, наприклад, Preview.app у цьому випадку) мають виконуваний файл десь у наборі програм. Ви можете реально виконати це ( /Applications/Preview.app/Contents/MacOS/Preview), щоб запустити «Попередній перегляд» безпосередньо, не проходячи open, але аргументи командного рядка зрозуміють лише певні створені спеціально виконані файли. Previewне одна з них.

manКоманда працює тільки для команд , які були встановлені сторінки керівництва, і вони, як правило , тільки команди у вашій оболонці $PATHзмінного. Для інших виконуваних файлів (і зазвичай для стандартних) ви можете спробувати зателефонувати у виконуваний файл з --helpаргументом, щоб отримати інформацію про використання незалежно від того, чи є вона на вашому шляху. Це не спрацює для всього, але це загальна закономірність.

Таким чином, може бути PDF-зчитувач, чий виконуваний файл розуміє аргументи командного рядка, але якщо ми все ще працюємо з Preview, нам потрібно перейти на іншу парадигму - AppleScript . Ви можете прочитати все про це у Вікіпедії, але основи цього полягають у тому, що це мова сценаріїв на природній мові, яка дозволяє програмно надсилати Apple Events до програм. Деякі програми реалізують великі бібліотеки AppleScript, щоб забезпечити більшу автоматизацію.

Хороша новина тут полягає в тому, що ви можете обробляти AppleScript в командному рядку за допомогою osascript. Ще хороша новина полягає в тому, що люди вже вирішили вашу проблему AppleScript, щоб отримати Preview для перегортання сторінки в PDF тут: https://discussions.apple.com/thread/3215851

Отож, для вирішення вашої проблеми має бути ваш підхід:

  1. Створіть команду термінала, щоб відкрити PDF у програмі «Попередній перегляд», це open file.pdfповинно працювати добре.
  2. Перевірте AppleScript, щоб змінити сторінку цього PDF на ту, яку ви вказали (використовуйте Script Editor.app).
  3. Дізнайтеся достатньо про командний рядок, щоб розробити оператор, який виконає обидва кроки за один раз.

Це все ще рішення, яке використовує AppleScript. Але це підтверджує, що ви не можете виконати просту річ командного рядка .. дякую!
помідор
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.