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

Java:获取PDF文件的总页数

引入依赖

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

代码工具类

package com.example.util;import org.apache.pdfbox.pdmodel.PDDocument;import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;/*** PDF工具类*/
public class PdfUtil {/*** 获取PDF文件的总页数** @param pdfUrl* @return*/public static int getPdfTotalPage(String pdfUrl) {if (pdfUrl == null || "".equals(pdfUrl)) {return 0;}int pages = 0;URL url = null;InputStream inputStream = null;PDDocument pdDocument = null;// 尝试打开文件流try {url = new URL(pdfUrl);} catch (MalformedURLException e) {e.printStackTrace();}if (url != null) {try {inputStream = url.openStream();} catch (IOException e) {e.printStackTrace();}}// 读取pdf的页数if (inputStream != null) {try {pdDocument = PDDocument.load(inputStream);pages = pdDocument.getNumberOfPages();} catch (IOException e) {e.printStackTrace();}}// 善后工作if (pdDocument != null) {try {pdDocument.close();} catch (IOException e) {e.printStackTrace();}}if (inputStream != null) {try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}return pages;}
}

测试类

package com.example.util;import org.junit.jupiter.api.Test;import java.io.IOException;public class PdfUtilTest {@Testpublic void getPdfTotalPage() throws IOException {String pdfUrl = "https://pdf.dfcfw.com/pdf/H3_AP202402231623204056_1.pdf?1708699798000.pdf";int pdfTotalPage = PdfUtil.getPdfTotalPage(pdfUrl);System.out.println(pdfTotalPage); // 17}
}

参考文章

  • java读取PDF页数
http://www.lryc.cn/news/304953.html

相关文章:

  • Git介绍与使用
  • React18源码: React中的LanePriority和SchedulerPriority
  • Android Studio基础(下载安装与简单使用)
  • MyBatisPlus条件构造器和常用接口
  • ABAP 导入Excel表示例程序
  • Spring之AOP源码解析(中)
  • 《Docker极简教程》--Docker卷和数据持久化--Docker卷的使用
  • 【Logback】如何在项目中快速引入Logback日志?
  • 【Linux从青铜到王者】 基础IO
  • C++之类作用域
  • SpringCloud Gateway网关 全局过滤器[AntPathMatcher 某些路径url禁止访问] 实现用户鉴权
  • ELK介绍以及搭建
  • Spring中的ApplicationContext.publishEvent
  • jackson、gson、fastjson和json-lib四种主流json解析框架对比
  • 已解决:IDEA中@Autowired自动注入MyBatis Mapper报红警告的几种解决方法
  • 在jar里限制指定的包名才可调用(白名单)。
  • python 提取PDF文字
  • 电气机械5G智能工厂数字孪生可视化平台,推进电气机械行业数字化转型
  • C# (WebApi)整合 Swagger
  • 导入excel某些数值是0
  • wo-gradient-card是一款采用uniapp实现的透明辉光动画卡片
  • Spark: a little summary
  • 018—pandas 生成笛卡尔积排列组合合并多列字符串数据
  • 【算法与数据结构】链表、哈希表、栈和队列、二叉树(笔记二)
  • bugku3
  • 相机的白平衡
  • 刷题日记-Day2- Leedcode-977. 有序数组的平方,209. 长度最小的子数组,59. 螺旋矩阵 II-Python实现
  • Linux命令-chcon命令(修改对象(文件)的安全上下文)
  • 【漏洞复现】大华DSS视频管理系统信息泄露漏洞
  • websocket了解下