Applescript从PDF文件中提取数字对象标识符(DOI)

时间:2014-08-23 20:25:05

标签: regex pdf applescript

我找了一个AppleScript来从PDF文件中提取DOI,却找不到它。关于DOI的实际格式(即正则表达式)有足够的信息,但如何使用它来从PDF文件中获取标识符

(如果使用某些外部程序,例如Hazel,则没有问题。)

2 个答案:

答案 0 :(得分:1)

如果您对使用应用程序感到满意,我建议使用Skim。良好的AppleScript支持。我可能会像这样构造它(特别是如果文档可能很大):

set DOIFound to false
tell application "Skim"
    set pp to pages of document 1
    repeat with p in pp
        set t to text of p
        --look for DOI and set DOIFound to true
        if DOIFound then exit repeat--if it's not found then use url?
    end repeat
end tell

我假设DOI总是存在于一个页面上(不分散在两个之间)。看起来它们总是(?)在文章的第一页上,即使使用大文档也可以快速实现这一点。

<强> [编辑]

另一种方法是从http://www.foolabs.com/xpdf/download.html获取Xpdf OSX二进制文件并在命令行中使用pdftotext(只测试它;它运行良好)并使用AppleScript解析文本。如果您想留在AppleScript中,可以执行以下操作:

do shell script "path/to/pdftotext 'path/to/pdf/file.pdf'"

将使用txt文件扩展名输出同一目录中的文件 - 您为DOI解析该文件。

答案 1 :(得分:1)

您是否尝试过pdfgrep?在commmandline中效果很好

pdfgrep -n --max-count 1 --include "*.pdf" "DOI"

虽然我不知道要构建一个Apple脚本,但我也会对此感兴趣。这样,如果我将pdf放入该文件夹,它将自动提取DOI并使用文件名中的DOI重命名该文件。