我找不到关于PDF文件元数据中的关键字和关键字短语是否用逗号或逗号加空格分隔的“官方”文档。
以下示例演示了差异:
有什么高质量的参考资料吗?
我找到的在线资源质量很低。 例如,Adobe 新闻网页 表示“关键字必须用逗号或分号分隔”,但在示例中我们看到第一个关键字之前有一个分号,后面有一个空格,每两个相邻关键字之间也有一个分号,后面有一个空格。我们在示例中没有看到关键字短语。
关键字元数据字段是单个文本字段 - 而不是列表。 您可以选择任何视觉上令您满意的内容。 对关键字数据进行操作的搜索引擎可能有其他偏好,但我想逗号或分号都可以与大多数现代搜索引擎一起使用。
参考:PDF 32000-1:2008,第 550 页,第 1 页。Adobe; 2. 互联网档案馆
ExifTool,例如 解析逗号分隔值,但如果没有找到逗号,它将按空格分割:
# separate tokens in comma or whitespace delimited lists
my @values = ($val =~ /,/) ? split /,+\s*/, $val : split ' ', $val;
foreach $val (@values) {
$et->FoundTag($tagInfo, $val);
}
我没有“高质量的参考文献”,但是,如果我使用 Latex 生成 pdf,我会按照以下方式进行操作: 在我的 main.tex 中添加以下行:
\usepackage[a-1b]{pdfx}
然后我编写一个文件 main.xmpdata 并添加以下行:
\Title{My Title}
\Author{My Name}
\Copyright{Copyright \copyright\ 2018 "My Name"}
\Kewords{KeywordA\sep
KeywordB\sep
KeywordC}
\Subject{My Short Discription}
使用 pdflatex 生成 pdf 后,我使用基于“pdfminer.6”的 python 脚本来提取元数据
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdftypes import resolve1
fp = open('main.pdf', 'rb')
parser = PDFParser(fp)
doc = PDFDocument(parser)
parser.set_document(doc)
if 'Metadata' in doc.catalog:
metadata = resolve1(doc.catalog['Metadata']).get_data()
print(metadata) # The raw XMP metadata
带有关键字的部分如下所示:
...<rdf:Bag><rdf:li>KeywordA</rdf:li>\n <rdf:li>KeywordB...
并使用“Adobe Acrobat Reader DC”查看“main.pdf”的属性,我在属性中找到关键字部分中的以下条目:
;KeywordA;KeywordB;KeywordC
CommonLook 声称是“电子文档可访问性的全球领导者,提供软件产品和专业服务,实现更快、更具成本效益和更可靠的流程,以实现符合领先的 PDF 和文档可访问性标准,包括 WCAG、PDF /UA 和第 508 条。”
他们针对 PDF 元数据提供以下建议:
专业提示:当您在元数据中输入关键字时,请分开 它们用分号而不是逗号。
尽管没有进一步解释为什么这是首选。
Acrobat 的属性