java利用apache pdfbox工具裁剪PDF文件
一、导入apache pdfbox工具jar包
maven仓库导入工具包
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.25</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>2.0.25</version>
</dependency>
二、裁剪pdf工具类
package com.mhx.info.service.util;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.junit.Test;
import java.io.File;
/**
* @Description: pdf文件裁剪工具类
* @BelongsProject: mhx
* @BelongsPackage: com.mhx.info.service.util
* @ClassName: PdfBoxChangUtilTest
* @Author: MHX
* @CreateTime: 2022/11/25
*/
public class PdfBoxChangUtilTest {
/**
* pdf格式改变
*
* @throws Exception 异常
*/
@Test
public void pdfToChange() throws Exception {
String sourceFilePath = "D:/zhxcmfs";
String sourceFileName = "证明.pdf";
PDDocument outdoc = new PDDocument();
PDDocument doc = PDDocument.load(new File(sourceFilePath + "/" + sourceFileName));
//获取PDF第一页
PDPage page = doc.getDocumentCatalog().getPages().get(0);
PDRectangle artBox = page.getArtBox();
//切割PDF的左部坐标,只需要X坐标
artBox.setUpperRightX(312.0F);
//切割PDF的上右部坐标,只需要X坐标
artBox.setLowerLeftX(839.0F);
// 切割pdf的左下角坐标,只需Y坐标
artBox.setLowerLeftY(50F);
// 切割pdf的右上角坐标,只需Y坐标
artBox.setUpperRightY(500F);
page.setArtBox(artBox);
outdoc.importPage(page);
//希望切割后的PDF存储的位置
String savePath = "D:\\zhxcmfs\\myFiles";
String fileName = "裁剪后的证明.pdf";
// 该文件如果存在不创建,不存在则创建
File destDir = new File(savePath + "/" + fileName);
if (!destDir.exists()) {
destDir.mkdir();
}
//保存输出切割后的PDF
outdoc.save(savePath + "/" + fileName);
outdoc.close();
doc.close();
}
}