首页 > 解决方案 > 使用 PDF 元数据来识别使用 C# 的文件

问题描述

场景 - 我有 10 家银行的 pdf 文件的报表。它们都是不同的格式。这些文件中的每一个都有一个相应的解析器来提取数据。现在我们根据文件名将文件提供给解析器。

但是现在源没有提供正确的文件名。因此,我们无法将文件路由到相应的解析器。

我的疑惑,

  1. 每个 pdf 文件都有元数据还是可选的?
  2. 我可以使用元数据来区分 PDF 文件以将文件路由到相应的解析器。
  3. 我使用以下代码从我的文件中提取元数据,它看起来非常混乱。

    http://kuujinbo.info/iTextInAction2Ed/index.aspx?ch=Chapter12&ex=MetadataXmp 5]

自动化此过程的最佳方法是什么。

提前致谢。

标签: c#asp.netpdfitext

解决方案


在 ISO 32000-1 中,允许使用两种不同类型的元数据:

  • 信息字典中的元数据,
  • XMP 元数据流。

在 ISO 32000-2 中不推荐使用 Info 字典。

您引用的示例是 XMP 示例。XMP 代表可扩展元数据平台。它是以纯文本形式存储在 XML 格式的二进制文件中的元数据。XMP 可用于 PDF、JPG、PNG、... 不限于 PDF;您还可以在其他类型的文件中找到 XMP 元数据。

此外,XMP 是可选的。XMP 规范的第一个版本于 2004 年发布(Adobe 于 2001 年开发),而第一个 PDF 规范于 1993 年发布。不用说,许多 PDF 文件缺少 XMP 格式的元数据。

如果要检测文件是否为 PDF 文件,可以查看前 7 个字节。如果前 7 个字节匹配%PDF-1.,则您的 PDF 文件可能遵循 ISO 32000-1 (2008)。如果前 7 个匹配%PDF-2.,则您有一个声称符合 ISO 32000-2 (2017) 的 PDF 文件。


推荐阅读