java 处理pdf文档,比如:在特定位置插入图片,签名,需要计算pdf的宽度,高度
1.项目结构 和引用类库
除了标准java jdk库外,还需引入下图表示的两个jar
2.具体实现代码:
import java.io.FileInputStream;
import java.io.IOException;
import com.itextpdf.text.Document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfReader;
public class WidthAndHeight {
public static void main(String[] args) throws Exception {
String filename = "E:\\pdfsign\\test接口操作_sign666.pdf";
// TODO Auto-generated method stub
PdfReader reader = new PdfReader(filename);
//或者下面的也可以
// PdfReader reader = new PdfReader(new FileInputStream(filename));
Rectangle pageSize = reader.getPageSize(1);
float height = pageSize.getHeight();
float width = pageSize.getWidth();
System.out.println("width = "+width+", height = "+height);
// Document document = new Document();
// document.getPageSize().getHeight();
// document.getPageSize().getWidth();
PdfReader pdfreader = new PdfReader(filename);
Document document = new Document(pdfreader.getPageSize(1));
// Document document = new Document(PageSize.A4.rotate(), 0, 0, 30, 0);
// 获取页面宽度
float widths = document.getPageSize().getWidth();
// 获取页面高度
float heights = document.getPageSize().getHeight();
System.out.println("widths = "+widths+", heights = "+heights);
}
}
运行结果:width = 595.32, height = 841.92
widths = 595.32, heights = 841.92
总结:可以看到
一. 获取尺寸的两个方法:
- Rectangle pageSize = reader.getPageSize(1);
- Document document = new Document(pdfreader.getPageSize(1));
这两个方法获取的pdf宽高相同
二. 获取任意页面的宽高
//默认获取第一页的尺寸:参数是1
Rectangle pageSize = reader.getPageSize(1);
若要获取n页pdf的尺寸:宽高
Rectangle pageSize = reader.getPageSize(n);