java读取设置pdf属性信息

pom

xml 复制代码
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.24</version>
</dependency>

读取属性

java 复制代码
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentInformation;
 
import java.io.File;
import java.io.IOException;
 
public class ReadPDFProperties {
    public static void main(String[] args) {
        try {
            // 加载PDF文件
            File file = new File("example.pdf");
            PDDocument document = PDDocument.load(file);
 
            // 获取PDF文档信息
            PDDocumentInformation info = document.getDocumentInformation();
 
            // 读取属性
            String title = info.getTitle();
            String author = info.getAuthor();
            String subject = info.getSubject();
            String keywords = info.getKeywords();
            String creator = info.getCreator();
            String producer = info.getProducer();
            String creationDate = info.getCreationDate().toString();
            String modificationDate = info.getModificationDate().toString();
            String trapped = info.getTrapped();
 
            // 输出属性信息
            System.out.println("Title: " + title);
            System.out.println("Author: " + author);
            System.out.println("Subject: " + subject);
            System.out.println("Keywords: " + keywords);
            System.out.println("Creator: " + creator);
            System.out.println("Producer: " + producer);
            System.out.println("Creation Date: " + creationDate);
            System.out.println("Modification Date: " + modificationDate);
            System.out.println("Trapped: " + trapped);
 
            // 关闭文档
            document.close();
 
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

设置属性

java 复制代码
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentInformation;
 
import java.io.File;
import java.io.IOException;
 
public class PDFPropertiesExample {
    public static void main(String[] args) {
        try (PDDocument document = PDDocument.load(new File("example.pdf"))) {
            PDDocumentInformation info = document.getDocumentInformation();
            
            // 设置文档属性
            info.setAuthor("作者姓名");
            info.setTitle("文档标题");
            info.setSubject("文档主题");
            
            // 可以设置更多属性,例如:
            // info.setKeywords("关键词1, 关键词2");
            // info.setCreator("创建者应用名");
            // info.setProducer("生产者应用名");
            
            // 保存属性
            document.setDocumentInformation(info);
            
            // 保存更改后的文档
            document.save("updated_example.pdf");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
相关推荐
南山十一少1 小时前
Spring Security+JWT+Redis实现项目级前后端分离认证授权
java·spring·bootstrap
软件黑马王子3 小时前
C#初级教程(4)——流程控制:从基础到实践
开发语言·c#
闲猫3 小时前
go orm GORM
开发语言·后端·golang
427724003 小时前
IDEA使用git不提示账号密码登录,而是输入token问题解决
java·git·intellij-idea
chengooooooo3 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
李长渊哦3 小时前
常用的 JVM 参数:配置与优化指南
java·jvm
计算机小白一个3 小时前
蓝桥杯 Java B 组之设计 LRU 缓存
java·算法·蓝桥杯
李白同学4 小时前
【C语言】结构体内存对齐问题
c语言·开发语言
黑子哥呢?6 小时前
安装Bash completion解决tab不能补全问题
开发语言·bash
青龙小码农6 小时前
yum报错:bash: /usr/bin/yum: /usr/bin/python: 坏的解释器:没有那个文件或目录
开发语言·python·bash·liunx