Linha de Comando Mac Abre PDF para Página Específica

2

O objetivo é usar a linha de comando para abrir um arquivo PDF em uma página específica. A questão mais geral é como descobrir quais argumentos estão disponíveis para qualquer aplicativo? Eu sou capaz de abrir um arquivo pdf na linha de comando do Mac OS X com o comando open , e sei que você pode passar argumentos, mas não conseguia descobrir os argumentos exatos para colocar para abrir o arquivo PDF para a página 5.

Tentei o seguinte cegamente e não funcionou ...

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

Vimos esta questão , mas a solução requer a instalação do evince ou escrever o Apple Script. Não há solução fácil em apenas passar --args no Mac como na linha de comando do Windows?

    
por tomato 07.04.2015 / 20:53

1 resposta

4

Eu não sabia que todos os aplicativos do Windows entendiam os argumentos da linha de comando.

Se esse é ou não o caso, não é o caso do Mac OS. Quando você está usando o aplicativo Terminal, você está fazendo a interface com um subsistema BSD que segue todos os padrões que você esperaria de um sistema operacional UNIX ou Linux.

Existem recursos abundantes para se familiarizar com o shell bash e a linha de comando * NIX. Para começar, o comando man vai te dar a manpage para qualquer comando que você passar. Geralmente todas as "palavras" separadas por espaço que você digita após um comando são tratadas como argumentos para esse comando, pelo menos até você atingir algum tipo. de redirecionamento de saída ou caractere de controle, como | , < , > , & .

Então, no seu exemplo, você estava chamando open e passando file.pdf , --args e -page=5 como argumentos. Como você observou, open não sabe o que fazer com a maioria deles.

Enfim, vamos nos aprofundar. A maioria dos aplicativos (como o Preview.app, neste caso) tem um arquivo executável em algum lugar do pacote de aplicativos. Você pode realmente executar isso ( /Applications/Preview.app/Contents/MacOS/Preview ) para iniciar o Preview diretamente sem passar pelo open , mas apenas alguns executáveis criados para um propósito entenderão os argumentos da linha de comando. Preview não é um deles.

O comando man só funciona para comandos que possuem manpages instaladas, e esses geralmente serão apenas comandos na variável $PATH do seu shell. Para outros executáveis (e geralmente para os executáveis), você pode tentar chamar o executável com um argumento --help para obter informações de uso, estando ou não em seu caminho. Isso não funcionará para tudo, mas é um padrão comum.

Portanto, pode haver um leitor de PDF disponível cujo executável compreenda os argumentos da linha de comando, mas se ainda estivermos trabalhando com o Preview, precisaremos mudar para um paradigma diferente - AppleScript . Você pode ler tudo sobre isso na Wikipedia, mas o básico é que é uma linguagem de script em linguagem natural que permite que você envie programaticamente eventos da Apple para aplicativos. Alguns aplicativos implementam extensas bibliotecas AppleScript para permitir maior automação.

A boa notícia é que você pode processar o AppleScript na linha de comando com osascript . Ainda mais boa notícia é que as pessoas já resolveram o problema do AppleScript de fazer com que o Preview fosse virado para uma página em um PDF aqui: link

Então qual é a sua abordagem aqui para resolver o seu problema:

  1. Conceber um comando de terminal para abrir seu PDF na Visualização open file.pdf deve funcionar bem.
  2. Teste um AppleScript para alterar a página desse PDF para a que você especificar (use o Editor de Script.app).
  3. Aprenda o suficiente sobre a linha de comando para elaborar uma instrução que executará as duas etapas de uma só vez.
por 08.04.2015 / 01:02