java 读取pdf文件的宽,高

java 处理pdf文档,比如:在特定位置插入图片,签名,需要计算pdf的宽度,高度

1.项目结构 和引用类库

除了标准java jdk库外,还需引入下图表示的两个jar

java 读取pdf文件的宽,高_第1张图片

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

总结:可以看到

 一. 获取尺寸的两个方法:

  1.      Rectangle pageSize = reader.getPageSize(1);
  2.      Document document = new Document(pdfreader.getPageSize(1));

    这两个方法获取的pdf宽高相同

二. 获取任意页面的宽高

     //默认获取第一页的尺寸:参数是1

     Rectangle pageSize = reader.getPageSize(1);

    若要获取n页pdf的尺寸:宽高

    Rectangle pageSize = reader.getPageSize(n);


你可能感兴趣的:(java语法)