我想从命令行在特定页面打开 PDF 文档,有点像vim +n [file]
. 有没有办法在 OSX 中使用任何 PDF 阅读器程序来做到这一点?
6 回答
您可以使用Evince使用-p
or--page-label=PAGE
命令行参数执行此操作,如下所示:
evince -p 5 foo.pdf
我不断从胡里奥的回答中得到错误。使用当前版本 1.4.6 (80) 的 Skim 和 OSX Mountain Lion (10.8.5),以下代码对我有用。我认为问题可能是 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
以下方法适用于 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 将找不到该文件。
也许这会对您有所帮助: 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 中是类似的。
否。命令行开关特定于每个程序。
open -a Preview someFile.pdf