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();
        }
    }
}
相关推荐
朝朝辞暮i7 小时前
C++ 第 12 课:局部变量、作用域、变量生命周期
开发语言·c++·算法
狗凯之家源码网8 小时前
淘客口令落地页生成器 PHP 版深度评测
开发语言·php
画绛集美术8 小时前
本地化部署LLM用于美术史问答:一间美术教室的实践记录
开发语言·php
谢亮_vipxieliang8 小时前
泛型擦除、通配符与 PECS 一次讲透
java·面试
八解毒剂8 小时前
【计组】中央处理器CPU
java·开发语言·计算机组成原理
FakeOccupational9 小时前
【电路笔记 信号】DBPSK 波形查找表+脉冲成形(升余弦+根升余弦滤波)
开发语言·笔记
码林拾遗WJ9 小时前
学术 PDF 翻译工作流:从乱码到双语对照的实战记录
pdf
打工仔折腾 AI9 小时前
工业场景下时序库与实时计算一体化架构选型实践对比
java·开发语言·后端·python·性能优化·架构·ai agent 实战
ZealSinger9 小时前
Java虚拟线程上线后瓶颈转移到哪看三层
java·开发语言·firefox
2601_961133289 小时前
盘立方软件指标文华期货公式下载
java