如何从命令行在特定页面上打开PDF? (OSX或Linux)

时间:2010-01-13 15:04:48

标签: macos pdf command-line

我想从命令行在特定页面打开PDF文档,有点像vim +n [file]。有没有办法在OSX中使用任何PDF阅读器程序?

6 个答案:

答案 0 :(得分:9)

您可以使用-p--page-label=PAGE命令行参数Evince执行此操作,如下所示:

evince -p 5 foo.pdf

答案 1 :(得分:5)

我不断从Julio的回答中得到错误。使用Skim和OSX Mountain Lion(10.8.5)的当前版本1.4.6(80),以下代码适用于我。我认为问题可能是pageNum必须被视为一个整数,但它会被解析为一个字符串。此代码假定您已安装Skim。

gotopage.scpt:

on run argv
    set fileName to (item 1 of argv)
    set pageNum to (item 2 of argv) as integer

    tell application "Skim"
        open fileName
        tell document 1 to go to page pageNum
        activate
    end tell
end run

Skim仍需要绝对文件名。因此,您将使用Julio的答案中提到的相同命令运行它。 osascript gotopage.scpt "/full/path/to/doc/mydoc.pdf" 99

答案 2 :(得分:4)

以下方法适用于Skim,它是Preview.app的开源替代品。首先,下载Skim,然后将以下代码保存在文本文件中,并将其命名为“gotopage.scpt”:

on run argv
    tell application "Skim"
        activate
        open (item 1 of argv)

        tell document 1
            go to page index (item 2 of argv)
        end tell

    end tell
end run

您现在可以告诉Skim打开某个PDF并通过在终端上写这个来转到第99页:

osascript gotopage.scpt "/full/path/to/doc/mydoc.pdf" 99

您可能希望将上面的行包装到您自己的sh脚本中。另请注意,PDF的路径必须是绝对路径,否则Skim将无法找到该文件。

答案 3 :(得分:3)

也许这会对你有所帮助: http://partners.adobe.com/public/developer/en/acrobat/PDFOpenParameters.pdf

我在这个pdf中找到了第5页的arg page = pagenum,这可能很有用!我没有测试过它!

修改

我刚刚在Windows上测试过它(不幸的是我没有Linux)并且它可以工作。在Windows上:

<path to Acrobat Reader.exe> /A "page=2" somePDFFile.pdf

我想这在Linux或OSX中类似。

答案 4 :(得分:-1)

没有。命令行开关特定于每个程序。

答案 5 :(得分:-2)

open -a Preview someFile.pdf