我找了一个AppleScript来从PDF文件中提取DOI,却找不到它。关于DOI的实际格式(即正则表达式)有足够的信息,但如何使用它来从PDF文件中获取标识符?
(如果使用某些外部程序,例如Hazel,则没有问题。)
答案 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重命名该文件。