itextPdf获取pdf文件宽高不准确

正常情况下我们通过下面方式获取宽高

java 复制代码
PdfReader reader = new PdfReader(file.getPath());
float width = reader.getPageSize(1).getWidth();
float height = reader.getPageSize(1).getHeight();

但是这样获取的宽高是不准确的,永远都是 宽 > 高,也就是横向。所以实际上是需要使用旋转角度来进行判断

java 复制代码
PdfReader reader = new PdfReader(file.getPath());
int rotation = reader.getPageRotation(1);
float width = 0f;
float height = 0f;
if (rotation == 270 || rotation == 90) {
    width = reader.getPageSize(1).getHeight();
    height = reader.getPageSize(1).getWidth();
}else{
    width = reader.getPageSize(1).getWidth();
    height = reader.getPageSize(1).getHeight();
}

当旋转为横向的时候,我们就把宽高倒置即可。

相关推荐
成为大佬先秃头33 分钟前
开放标准(RFC 7519):JSON Web Token (JWT)
spring boot·后端·json·jwt
不懂的浪漫2 小时前
# mqtt-plus 架构解析(八):Spring Boot 自动装配,这些零件是怎么被粘合起来的
spring boot·后端·物联网·mqtt·架构
却话巴山夜雨时i3 小时前
互联网大厂Java面试场景:Spring Boot、微服务与Redis实战解析
spring boot·redis·微服务·kafka·prometheus·java面试·电商场景
希望永不加班3 小时前
SpringBoot 配置绑定:@ConfigurationProperties
java·spring boot·后端·spring
indexsunny3 小时前
互联网大厂Java面试实战:Spring Boot、MyBatis与Kafka在电商场景中的应用
java·spring boot·面试·kafka·mybatis·电商·技术栈
IT枫斗者4 小时前
构建具有执行功能的 AI Agent:基于工作记忆的任务规划与元认知监控架构
android·前端·vue.js·spring boot·后端·架构
暴力袋鼠哥4 小时前
基于springboot与vue的ai多模态数据展示看板
java·spring boot
SEO-狼术4 小时前
Infragistics now supports .NET 10
pdf·.net
Carsene4 小时前
AutoScan Spring Boot Starter v1.3.0 发布:高级过滤与环境配置新特性
spring boot·后端