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

使用iText7从PDF元数据获取创建日期的可行方案求助

使用iText7获取PDF创建日期的可行方案
  • 核心逻辑:PDF的创建日期一般存在文档元数据的CreationDate字段里,用iText7的PdfDocumentInfo就能直接读取。
  • 先确保引入正确依赖(Maven示例):
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itext7-core</artifactId>
    <version>7.2.5</version> <!-- 换最新稳定版更稳妥 -->
</dependency>
  • 基础实现代码:
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfDocumentInfo;
import java.io.File;
import java.io.IOException;
import java.util.Date;

public class PdfDateGetter {
    public static void main(String[] args) {
        File targetPdf = new File("你的PDF文件路径.pdf");
        // 使用try-with-resources自动关闭资源,避免内存泄漏
        try (PdfReader reader = new PdfReader(targetPdf);
             PdfDocument pdfDoc = new PdfDocument(reader)) {
            PdfDocumentInfo docInfo = pdfDoc.getDocumentInfo();
            Date createDate = docInfo.getCreationDate();
            if (createDate != null) {
                System.out.println("创建日期:" + createDate);
            } else {
                System.out.println("该PDF没有设置创建日期字段");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
  • 遇到getCreationDate()返回null的处理办法:
    有些PDF的元数据格式不标准,或者字段藏在目录字典里,可以手动解析:
// 在上面的try代码块里添加这段逻辑
import com.itextpdf.kernel.pdf.PdfDictionary;
import com.itextpdf.kernel.pdf.PdfName;
import com.itextpdf.kernel.pdf.PdfString;
import com.itextpdf.text.pdf.DateConverter;

PdfDictionary catalog = pdfDoc.getCatalog().getPdfObject();
PdfDictionary infoDict = catalog.getAsDictionary(PdfName.Info);
if (infoDict != null) {
    PdfString dateStr = infoDict.getAsString(PdfName.CreationDate);
    if (dateStr != null) {
        Date manualDate = DateConverter.convert(dateStr.toString());
        System.out.println("手动解析得到的创建日期:" + manualDate);
    }
}
  • 额外注意:如果PDF是加密的,创建PdfReader时要传入密码,比如new PdfReader(targetPdf, new ReaderProperties().setPassword("密码".getBytes()))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:06:24