当前位置: 首页 > article >正文

java读取设置pdf属性信息

pom

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.24</version>
</dependency>

读取属性

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();
        }
    }
}

设置属性

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();
        }
    }
}

http://www.kler.cn/a/516590.html

相关文章:

  • Springboot3 自动装配流程与核心文件:imports文件
  • 图形化数据报文转换映射工具
  • PL/SQL语言的图形用户界面
  • linux+docker+nacos+mysql部署
  • uniapp+Vue3(<script setup lang=“ts“>)模拟12306城市左右切换动画效果
  • Vue3.5 企业级管理系统实战(三):页面布局及样式处理 (Scss UnoCSS )
  • 二分查找题目:快照数组
  • Docker Hub 全面解析及应对策略
  • 2【选修】再探宝可梦、数码宝贝分类器
  • 组播IGMP协议报文介绍
  • QT6 + CMAKE编译OPENCV3.9
  • 1.23寒假作业
  • linux中关闭服务的开机自启动
  • “上门按摩” 小程序开发项目:基于 SOP 的全流程管理
  • C语言文件操作:标准库与系统调用实践
  • 【Linux】其他备选高级IO模型
  • IPhone16 Plus 设备详情
  • 详解:TCP/IP五层(四层)协议模型
  • 23.日常算法
  • CVPR 2024 无人机/遥感/卫星图像方向总汇(航空图像和交叉视角定位)
  • pandas基础:文件的读取和写入
  • leetcode——矩阵置零(java)
  • 亚马逊新店铺流量怎么提升?自养号测评新趋势
  • rabbitmq单机与集群模式的部署
  • 刷题笔记 贪心算法-1 贪心算法理论基础
  • 拒绝 Github 投毒,通过 Sharp4SuoBrowser 分析 Visual Studio 隐藏文件