web-dev-qa-db-ja.com

Macコマンドラインを開くPDF特定のページへ

目標は、コマンドラインを使用してPDFファイルを特定のページに開くことです。より一般的な質問は、特定のアプリで使用できる引数を見つける方法です。開くことができます。 openコマンドを使用したMacOS XコマンドラインのPDFファイルで、引数を渡すことができることはわかっていますが、PDF)を開くために配置する正確な引数を把握できませんでした。 =ファイルから5ページへ。

次のことをやみくもに試しましたが、うまくいきませんでした...

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

この質問 を見たことがありますが、解決策にはevinceをインストールするか、Appleスクリプトを書く必要があります。WindowsコマンドのようにMacで--argsを渡すだけの簡単な解決策はありませんか。ライン?

2
tomato

すべてのWindowsアプリケーションがコマンドライン引数を理解していることを私は知りませんでした。

それが事実であるかどうかにかかわらず、MacOSではそうではありません。ターミナルアプリケーションを使用しているときは、UNIXまたはLinuxオペレーティングシステムに期待されるすべてのパターンに従うBSDサブシステムとインターフェイスしています。

Bashシェルと* NIXコマンドラインに慣れるためのリソースは豊富にあります。開始するには、manコマンドを使用すると、渡したコマンドのマンページが表示されます。通常、コマンドの後に入力するスペースで区切られたすべての「単語」は、少なくともユーザーが入力するまで、そのコマンドの引数として扱われます。 |<>&などの出力リダイレクトまたは制御文字をヒットします。

したがって、あなたの例では、openを呼び出し、引数としてfile.pdf--args、および-page=5を渡していました。あなたが観察したように、openはこれらのほとんどをどうするかを知りません。

とにかく、もっと深く掘り下げましょう。ほとんどのアプリケーション(この場合はPreview.appなど)には、アプリケーションバンドルのどこかに実行可能ファイルがあります。実際にこれ(/Applications/Preview.app/Contents/MacOS/Preview)を実行して、openを経由せずに直接プレビューを開始できますが、コマンドライン引数を理解できるのは特定の専用実行可能ファイルのみです。 Previewはそれらの1つではありません。

manコマンドは、マンページがインストールされているコマンドに対してのみ機能します。これらは通常、シェルの$PATH変数内のコマンドのみです。他の実行可能ファイルの場合(通常は標準の実行可能ファイルの場合も)、--help引数を指定して実行可能ファイルを呼び出し、パスにあるかどうかに関係なく使用情報を取得できます。これはすべてに機能するわけではありませんが、一般的なパターンです。

したがって、実行可能ファイルがコマンドライン引数を理解するPDFリーダーが存在する可能性がありますが、プレビューを引き続き使用している場合は、別のパラダイムに移行する必要があります-- AppleScript 。Wikipediaですべてを読むことができますが、基本的には、プログラムでAppleイベントをアプリケーションに送信できる自然言語のスクリプト言語です。一部のアプリケーションは実装しています。より高度な自動化を可能にする広範なAppleScriptライブラリ。

ここでの朗報は、コマンドラインでosascriptを使用してAppleScriptを処理できることです。さらに良いニュースは、プレビューをPDF here: https://discussions.Apple.com/thread)のページにめくるというAppleScriptの問題を人々がすでに解決していることです。/3215851

したがって、問題を解決するためのアプローチは次のとおりです。

  1. ターミナルコマンドを考案して、プレビューopen file.pdfでPDFを開くと正常に機能するはずです。
  2. AppleScriptをテストして、そのPDFのページを指定したページに変更します(Script Editor.appを使用)。
  3. 一度に両方のステップを実行するステートメントを考案するために、コマンドラインについて十分に学びます。
4
NReilingh