当我们需要对单个 PDF 页面的内容进行分开展示、分开打印等操作时,重新编辑内容往往会比较麻烦。我们可以直接将单个页面拆分成多个页面,从而方便我们分别进行展示、打印等操作。本文将介绍如何使用 Spire.PDF for Java 通过程序拆分 PDF 页面。
安装 Spire.PDF for Java
首先,您需要在 Java 程序中添加 Spire.Pdf.jar 文件作为依赖项。JAR 文件可以从此链接下载。如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而在应用程序中导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf</artifactId>
<version>11.1.2</version>
</dependency>
</dependencies>
将一个 PDF 页面拆分成多个页面
Spire.PDF for Java 提供了 PdfPageBase.createTemplate().draw() 方法来将一个 PDF 页面的内容绘制在一个新的 PDF 页面上。我们可以使用这个方法将原页面的内容分别绘制在多个页面上来达到拆分 PDF 页面的目的。以下是将一个 PDF 页面拆分成三个页面的详细操作步骤:
- 创建 PdfDocument 的对象。
- 使用 PdfDocument.loadFromFile() 方法载入 PDF 文档。
- 使用 PdfDocument.getPages().get() 方法获取指定页面。
- 创建一个新的 PDF 文档,并将其页边距设置为0。
- 将新建的 PDF 文档的页面大小设置为原 PDF 文档页面大小的三分之一部分。
- 使用 PdfDocument.getPages().add() 方法在新 PDF 文档中添加一个页面。
- 使用 PdfPageBase.createTemplate().draw() 方法将原 PDF 页面的内容绘制在新建的页面上。
- 使用 PdfDocument.saveToFile() 方法保存文档。
- Java
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.geom.Point2D;
public class splitPDFPage {
public static void main(String[] args) {
//创建PdfDocument的对象
PdfDocument pdf = new PdfDocument();
//载入PDF文档
pdf.loadFromFile("C:/四月.pdf");
//获取PDF文档的第一页
PdfPageBase page = pdf.getPages().get(0);
//创建一个新的PDF文档并移除页边距
PdfDocument newPdf = new PdfDocument();
newPdf.getPageSettings().getMargins().setAll(0);
//横向拆分
newPdf.getPageSettings().setWidth((float) page.getSize().getWidth());
newPdf.getPageSettings().setHeight((float) page.getSize().getHeight()/3);
//水平拆分
//newPdf.getPageSettings().setWidth((float) page.getSize().getWidth()/2);
//newPdf.getPageSettings().setHeight((float) page.getSize().getHeight());
//添加一个页面到新建的PDF文档
PdfPageBase newPage = newPdf.getPages().add();
//将PdfLayoutType设置为Paginate来使内容自动分页
PdfTextLayout layout = new PdfTextLayout();
layout.setBreak(PdfLayoutBreakType.Fit_Page);
layout.setLayout(PdfLayoutType.Paginate);
//将原文的页面的内容绘制在新文档页面上
page.createTemplate().draw(newPage, new Point2D.Float(0, 0), layout);
//保存文档
newPdf.saveToFile("拆分PDF页面.pdf");
newPdf.close();
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。