java操作pdf(pdfbox+poi)你想要的这里都有

java操作pdf(pdfbox+poi)你想要的这里都有

说两句废话

本来我只是想把我的一个pdf文件,多余的地方删除掉,再把个别页面的内容改下(多余内容干掉~),然后打印出来,我想要的这些wps还有很多软件都有,但是…

 

 

参考文献

https://www.baeldung.com/pdf-conversions-java

https://iowiki.com/pdfbox/pdfbox_merging_multiple_pdf_documents.html

基本功能就不多说了,看上面两个链接(创建、删除、拆分、合并等)

 

指定页码插入/替换

pdfbox好像没有专门提供这个方法,但是现有的方法多重组合起来也能实现这个功能,

需求:一个pdf文件A有10页,现在想在第6页插入一页新的pdf文件B,插入完成后整个pdf文件A变成11页。

思路1(插入):

  先将这个10的pdf拆分成10个1页的pdf,按顺序放好,文件名分别是:1.pdf、2.pdf….10.pdf。再拆分到第6页的时候将文件B放进来,重命名问6.pdf,原本pdf文件A里面的第6页重命名为7.pdf,依次后推,最后的得到的1.pdf—–>11.pdf一共11个文件

  然后使合并功能将这个11个pdf按顺序合并。

思路2(替换):

  在插入的基础上,拆分的时候将pdf文件A里面的第6个页丢弃,使用新的页面来代替它命名6.pdf,然后合并就完事了。

 

pom依赖

<!--pdfbox-->
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox-tools</artifactId>
    <version>2.0.25</version>
</dependency>
<dependency>
    <groupId>net.sf.cssbox</groupId>
    <artifactId>pdf2dom</artifactId>
    <version>2.0.1</version>
</dependency>

<!--poi-->
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.10</version>
</dependency>
<dependency>
    <groupId>com.itextpdf.tool</groupId>
    <artifactId>xmlworker</artifactId>
    <version>5.5.10</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.15</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>3.15</version>
</dependency>
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » java操作pdf(pdfbox+poi)你想要的这里都有