Java如何通过坐标值对一张PDF进行局部切割
使用Java代码对只有一页的PDF进行局部切割、部分切割。
我这里使用的jar依赖是:
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>1.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>1.7.1</version>
</dependency>
我使用的pdfbox版本较老,新版本应该也是可以的。
Java代码demo:
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
public static void cutPDF() throws Exception{
PDDocument outdoc = new PDDocument() ;
PDDocument doc = PDDocument.Load(new File("C:/test/test.pdf") ) ;
PDPage page = (PDPage)doc.getDocumentCatalog().getAllPages().get(0); //获取PDF第一页
PDRectangle artBox = page.getArtBox() ;
artBox.setUpperRightY(0.0F) ; //切割PDF的下部坐标,只需要Y坐标
artBox.setLowerLeftY(100.0F) ; //切割PDF的上部坐标,只需要Y坐标
page.setArtBox(artBox) ;
outdoc.importPage(page) ;
File destDir=new File("D:/dest/") ;//希望切割后的PDF存储的位置
if(!destDir.exists() ) {
destDir.mkdirs() ;
}
outdoc.save("D:/dest/afterCut.pdf") ;//保存输出切割后的PDF
outdoc.close() ;
doc.close() ;
}
如有写得不正确的地方,欢迎大家指出。