要将一个 PDF 文档拆分为多个 PDF 文档,您可以使用 PDFBox Java API 的 Splitter.split() 方法。

在本教程中,我们将学习使用示例 Java 程序拆分 PDF 文档。

  • 将 PDF 文档中的每一页拆分为不同的 PDF
  • 以指定的时间间隔拆分 PDF

PDFBox 示例 1 - 将 PDF 拆分为多个 PDF

在此示例中,我们将采用多页 PDF,并将此 PDF 文档拆分为多个 PDF,其中每个生成的 PDF 文档仅包含源文档中的一页。

SplitPDFExample.java

import org.apache.pdfbox.multipdf.Splitter;
import org.apache.pdfbox.pdmodel.PDDocument;
 
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Iterator;
 
public class SplitPDFExample {
 
    public static void main(String[] args) throws IOException {
          File file = new File("/home/tk/sample_pdf.pdf");
           
          // load pdf file
          PDDocument document = PDDocument.load(file);
 
          // instantiating Splitter
          Splitter splitter = new Splitter();
           
          // split the pages of a PDF document
          List<PDDocument> Pages = splitter.split(document);
 
          // Creating an iterator
          Iterator<PDDocument> iterator = Pages.listIterator();
 
          // saving splits as pdf
          int i = 0;
          while(iterator.hasNext()) {
             PDDocument pd = iterator.next();
             // provide destination path to the PDF split
             pd.save("/home/tk/pdfs/sample_part_"+ ++i +".pdf");
             System.out.println("Saved /home/tk/pdfs/sample_part_"+ i +".pdf");
          }
          System.out.println("Provided PDF has been split into multiple.");
          document.close();
    }
 
}

输出

Saved /home/tk/pdfs/sample_part_1.pdf
Saved /home/tk/pdfs/sample_part_2.pdf
Saved /home/tk/pdfs/sample_part_3.pdf
Saved /home/tk/pdfs/sample_part_4.pdf
Saved /home/tk/pdfs/sample_part_5.pdf
Saved /home/tk/pdfs/sample_part_6.pdf
Provided PDF has been split into multiple.

PDFBox 示例 2 - 以指定间隔拆分 PDF

以下是将 PDF 文档拆分为多个 PDF 文档的分步指南,这些文档已在源文档中以特定间隔拆分。

SplitPDFAtPageExample.java

import org.apache.pdfbox.multipdf.Splitter;
import org.apache.pdfbox.pdmodel.PDDocument;
 
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Iterator;
 
public class SplitPDFAtPageExample {
 
    public static void main(String[] args) throws IOException {
          File file = new File("/home/tk/sample_pdf.pdf");
           
          // load pdf file
          PDDocument document = PDDocument.load(file);
 
          // instantiating Splitter
          Splitter splitter = new Splitter();
           
          splitter.setSplitAtPage(2);
           
          // split the pages of a PDF document
          List<PDDocument> Pages = splitter.split(document);
 
          // Creating an iterator
          Iterator<PDDocument> iterator = Pages.listIterator();
 
          // saving splits as pdf
          int i = 0;
          while(iterator.hasNext()) {
             PDDocument pd = iterator.next();
             pd.save("/home/tk/pdfs/sample_part_"+ ++i +".pdf");
             System.out.println("Saved /home/tk/pdfs/sample_part_"+ i +".pdf");
          }
           
          // close the document
          document.close();
    }
 
}

输出

Saved /home/tk/pdfs/sample_part_1.pdf
Saved /home/tk/pdfs/sample_part_2.pdf
Saved /home/tk/pdfs/sample_part_3.pdf

默认情况下,splitAtPage 设置为 1。

结论

在本PDFBox 教程中,我们学习了将 PDF 文档拆分为多个 PDF。

Java使用PDFBox将一个 PDF 文档拆分为多个 PDF相关推荐

  1. python处理pdf文件的程序_Python处理PDF文档-拆分合并

    使用Python处理PDF文档.将需要处理的PDF文档与处理程序放到一个新建的文件夹中.运行程序. S模式,将单个PDF文档拆分到单页,并以数字命名. image.png C模式,合并文档,需要提前将 ...

  2. html在电脑里怎么打开pdf文件,电脑上的PDF文档怎么打开?打开PDF的5种方法

    原标题:电脑上的PDF文档怎么打开?打开PDF的5种方法 目前常用的办公文档中PDF因其格式的稳定性和兼容性都较好,而被越来越多的人使用.那么PDF文档应该如何打开呢?有哪些常用的PDF文件的打开方式 ...

  3. python书籍pdf文档密码-Python玩转PDF的各种骚操作

    Portable Document Format(可移植文档格式),或者PDF是一种文件格式,可以用于跨操作系统的呈现和文档交换.尽管PDF最初是由Adobe发明的,但它现在是由国际标准化组织(ISO ...

  4. PDF文档阅读器-福昕PDF阅读器下载

    福昕PDF阅读器(Foxit Reader)是福昕公司推出的首款简体中文版本PDF文档阅读器,它的启动速度是很快的,是一款非常好用的软件.福昕PDF阅读器(Foxit Reader)是用户信赖的阅读器 ...

  5. pdf 文档 搜索 服务器,福昕PDF搜索工具_PDF文档索引与检索_福昕软件官网

    快速精准的索引技术,帮助您快速搜索PDF文档 Foxit PDF IFilter实现了快速精准的索引技术,通过指定搜索条件,对大量PDF文件进行索引,从而快速定位到所需文档.Foxit PDF IFi ...

  6. 用C#实现生成PDF文档和将WORD转换为PDF (转自海东的技术资料)

    转自:http://www.cnblogs.com/ghd258/articles/258060.html 前言:由于一个客户的项目中需要将WORD文档转换成PDF格式,故写了本篇实站教程  需求分析 ...

  7. 用C#实现生成PDF文档和将WORD转换为PDF

    知识点:线程调用,异步线程,异步线程回调函数,C#的类,WSH宿主脚本开发 前言:由于一个客户的项目中需要将WORD文档转换成PDF格式,故写了本篇实站教程 需求分析:客户的项目以B/S结构为主,提供 ...

  8. 服务器上pdf文档无法删除,怎么对PDF文件进行编辑,PDF怎么删除空白页

    随着PDF文件越来越受大家的欢迎,PDF文件的修改编辑是需要用到PDF编辑器的,不知道大家在使用PDF文件的时候,编辑文件之后有没有文件中有页面需要删除的情况,在编辑文件的时候如果遇到文件中有页面需要 ...

  9. pdf压缩的网站?pdf文件在线压缩?在线压缩pdf文件大小?pdf文档压缩,在线压缩pdf文件大小,压缩pdf大小的方法?

    pdf在线压缩大小?在工作中需要处理大量PDF文件,我们通常要对PDF文件进行压缩处理.那么问题来了,PDF文件该怎么压缩呢?可能很多人都不知道具体的操作方法,今天要分享给大家的正是PDF压缩的方法, ...

  10. 如何把一个PDF文档拆分为多个文档

    随着PDF格式文件的广泛应用,我们不可避免的遇到将一个大的PDF文件切分成为一个个单独的文件.下面我们以迅捷 pdf分割软件 为例,仔细谈谈怎么把PDF文件分割成若干个文件. 步骤与方法: ①拆分一个 ...

最新文章

  1. SQL-16 统计出当前各个title类型对应的员工当前薪水对应的平均工资。结果给出title以及平均工资avg。...
  2. Java深入研究_Java深入研究【1、object类】
  3. 整数中1出现的次数(从1到n整数中1出现的次数)
  4. Java并发编程—为什么 wait() 方法需要写在 while 里,而不是 if?
  5. ubuntu16.04下面安装mongodb
  6. PHP 框架 模块化,Laravel 的模块化开发框架 Notadd RC1
  7. html5情人节贺卡,Web工程师的情人节卡片
  8. linux安装jdk(以1.6为例)
  9. 数据挖掘之自然语言处理
  10. Recommendation
  11. 服务器link系统命令,可以使用命令(7)来查看网络接口的运行情况。输入该命令后,系统的输出信息如下。...
  12. C Primer Plus 第13章 文件输入/输出 13.11 编程练习答案
  13. ipad2 白苹果惊魂
  14. JDK8与JDK7并存时切换的问题
  15. C++萌新来看,一篇文让你让你彻底搞定类(超详细)!
  16. 汇率转换方法java,[java] 汇率换算器实现(2)
  17. c++primer 第二章 变量和基本类型
  18. 在调试的时候碰到了Render process gone.问题
  19. 2016年11月5日学习总结
  20. 对不可能之事持一种健康的漠视

热门文章

  1. 影视文件下载,合并,修复,转换…
  2. 肿瘤外显子数据分析指南 复现
  3. mac虚拟机改显存_虚拟机mac怎么增大显存
  4. ssb门限_ssb单边带的产生方法
  5. “collect2: error: ld returned 1 exit status“解决方法
  6. java实现简单泡泡屏保动画及点击变实心泡泡
  7. 猴子吃桃问题的函数递归解决方案
  8. Android开发:基站定位
  9. linux渗透后清除日志,后渗透阶段清理痕迹方式总结
  10. 修改封装系统的默认壁纸、锁屏和OEM信息