You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用iText7获取PDF文件中的全部元数据?

用iText7获取PDF全部元数据的方法

你已经搞定了基础元数据的获取,要拿到所有元数据(包括标准元数据和自定义元数据),其实可以直接操作PdfDocumentInfo的底层字典,或者用API提供的批量方法拿自定义元数据,下面给你具体的实现方案:

方法一:遍历底层字典获取所有元数据(最全面)

PdfDocumentInfo本质是对PDF元数据字典的封装,通过GetPdfObject()方法能拿到底层的PdfDictionary,遍历它的所有键值对就能覆盖所有元数据——不管是标准的作者、标题,还是用户自定义的额外元数据都能获取到:

using (var pdfReader = new iText.Kernel.Pdf.PdfReader("path-to-a-pdf-file")) 
{ 
    var pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfReader); 
    var pdfDocumentInfo = pdfDocument.GetDocumentInfo(); 

    // 获取元数据的底层字典
    PdfDictionary infoDict = pdfDocumentInfo.GetPdfObject();
    
    // 遍历所有键值对
    foreach (PdfName key in infoDict.KeySet())
    {
        string keyName = key.GetValue();
        PdfObject valueObj = infoDict.Get(key);
        string value = string.Empty;

        // 根据值的类型做转换,确保能正确输出字符串
        if (valueObj.IsString())
        {
            value = ((PdfString)valueObj).GetValue();
        }
        else if (valueObj.IsName())
        {
            value = ((PdfName)valueObj).GetValue();
        }
        // 其他类型(比如数组、日期等)可以按需扩展处理逻辑

        Console.WriteLine($"元数据键: {keyName}, 值: {value}");
    }
}

方法二:批量获取自定义元数据

如果你只需要获取标准元数据(Author、Title、Subject等)之外的自定义元数据,可以直接用GetMoreInfo()方法,它会返回一个包含所有自定义键值对的字典:

using (var pdfReader = new iText.Kernel.Pdf.PdfReader("path-to-a-pdf-file")) 
{ 
    var pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfReader); 
    var pdfDocumentInfo = pdfDocument.GetDocumentInfo(); 

    // 获取所有自定义元数据
    IDictionary<string, string> customMetadata = pdfDocumentInfo.GetMoreInfo();
    
    foreach (var kvp in customMetadata)
    {
        Console.WriteLine($"自定义元数据键: {kvp.Key}, 值: {kvp.Value}");
    }
}

小提示

  • 标准元数据的键都是PDF规范里定义的,比如Author、Title、Creator、CreationDate等,这些也可以通过遍历底层字典拿到,和你之前用GetAuthor()、GetTitle()拿到的结果完全一致。
  • 如果遇到日期类型的元数据(比如CreationDate),可以用PdfDate类解析成可读格式,比如PdfDate.Decode(((PdfString)valueObj).GetValue())。

内容的提问来源于stack exchange,提问作者dbraillon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:27:21