我从 JStor 下载了一些 PDF。这些 PDF 的文件名都是无用的数字,但元数据中通常至少会有一个标题(如果不是作者的话)。
如何批量重命名多个 PDF,以便当元数据中同时指定“作者”和“标题”时,搜索元数据并重命名文件“作者-标题”?如果缺少一个,我希望它只重命名文件以反映存在的元数据,将文件命名为“作者”或“标题”。如果没有元数据,我不希望进行任何更改。
答案1
答案2
这是一种可能的方法,它涉及编写一个不太糟糕的脚本。
使用 JHOVE 从文件中提取元数据并将其写入 XML 文件。使用 XPath 表达式提取以下路径:
jhove/repInfo/properties/属性/属性/属性/属性/值/值
其中路径中的三个属性元素包含 <name> 元素,其值分别为“PDFMetadata”、“Info”和“Title”以获取标题,以及“PDFMetadata”、“Info”和“Author”以获取作者。然后,您可以以编程方式使用它们来创建新的文件名。
这是一个粗略的大纲,但我认为这个想法是可行的。
全面披露:我为 JHOVE 编写了大部分代码。
答案3
在 OS X 上,您可以使用分布式文件系统查询 Spotlight 数据库以获取其提取并索引的文件的属性:
$ mdls -name kMDItemTitle A-Self-Referential-Story.pdf
kMDItemTitle = "This Is the Title of This Story, Which Is Also Found Several Times in the Story Itself"
$ mdls -name kMDItemAuthors A-Self-Referential-Story.pdf
kMDItemAuthors = (
"David Moser"
)
答案4
我最近刚刚创建了一个应用程序来批量重命名科学论文,这对于重命名论文非常有用,可以使论文在文件名方面更有条理。
该应用程序通过从元数据中获取标题来工作。如果没有元数据,它将智能地从 pdf 中获取正确的标题。然后可以对标题应用其他高级选项,例如缩短为缩写、添加日期等。
演示视频: http://www.youtube.com/watch?feature=player_embedded&v=R01bvA9rhiQ
可在 App Store 下载 https://itunes.apple.com/app/pdf-paper-renamer/id591593578?mt=12