代码之家  ›  专栏  ›  技术社区  ›  dan

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

  •  10
  • dan  · 技术社区  · 16 年前

    我想在命令行的特定页面上打开一个PDF文档,有点像 vim +n [file] . 在OSX中,有没有任何方法可以通过任何PDF阅读器程序做到这一点?

    6 回复  |  直到 9 年前
        1
  •  9
  •   ezod    16 年前

    你可以用 Evince 使用 -p --page-label=PAGE 命令行参数如下:

    evince -p 5 foo.pdf
    
        2
  •  5
  •   William Denman    9 年前

    我一直从朱利奥的回答中得到错误。在当前版本1.4.6(80)的skim和osx mountain lion(10.8.5)中,以下代码适用于我。我认为问题可能是pagenum必须被视为整数,但它会被解析为字符串。此代码假定您安装了skim。

    GoTopAG.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仍然需要绝对文件名。所以你可以用朱里奥答案中提到的相同命令来运行它。 osascript gotopage.scpt "/full/path/to/doc/mydoc.pdf" 99

        3
  •  4
  •   Julio Gorgé    16 年前

    下面的方法适用于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将找不到该文件。

        4
  •  3
  •   Alex Ntousias    16 年前

    也许这能帮助你: 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中是类似的。

        5
  •  -1
  •   Daniel A. White    16 年前

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

        6
  •  -2
  •   Derek Swingley    16 年前
    open -a Preview someFile.pdf