PDF 元数据中关键字之间的分隔符



我找不到关于PDF文件元数据中的关键字和关键字短语是用逗号还是用空格的逗号分隔的"官方"文档。

以下示例演示了差异:

    关键字,关键字短语
  • ,另一个关键字短语
  • 关键字, 关键字短语
  • , 另一个关键字短语

有高质量的参考资料吗?

我找到的在线资源质量低下。例如,Adobe 新闻网页上写着"关键字必须用逗号或分号分隔",但在示例中,我们看到一个分号,第一个关键字之前有一个空格,每个相邻关键字之间有一个分号。我们在示例中看不到关键字词组。

关键字元数据字段是单个文本字段,而不是列表。 您可以选择任何视觉上令人愉悦的东西。 对关键字数据进行操作的搜索引擎可能还有其他偏好,但我想逗号或分号都可以与大多数现代搜索引擎一起使用。

参考:PDF 32000-1:2008,第 550 页,第 1 页。土坯;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);
}

我没有"高质量的参考资料",但是,如果我使用乳胶生成pdf,我会通过以下方式进行操作:在我的主.tex中添加以下行:

usepackage[a-1b]{pdfx}

然后我写一个文件 main.xmpdata 并添加以下行:

Title{My Title}
Author{My Name}
Copyright{Copyright copyright 2018 "My Name"}
Kewords{KeywordAsep
         KeywordBsep
         KeywordC}
Subject{My Short Discription}
使用

pdflatex 生成 PDF 后,我使用基于 "pdfminer.six" 的 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...

并在"main.pdf"的属性中使用"Adobe Acrobat Reader DC"查看,我在属性中找到了部分关键字中的以下条目:

;KeywordA;KeywordB;KeywordC

CommonLook 声称自己是"电子文档可访问性的全球领导者,提供软件产品和专业服务,实现更快、更具成本效益和更可靠的流程,以实现符合领先的 PDF 和文档可访问性标准,包括 WCAG、PDF/UA 和 Section 508。

他们提供有关 PDF 元数据的以下建议:

专业提示:当您在元数据中输入关键字时,请分开它们带有分号而不是逗号。

尽管没有进一步说明为什么这是首选。

最新更新