Spire.PDF for Java 提供了 PdfDocument.split() 方法可将一个 PDF 文档拆分为多个不同的 PDF 文档。本文,将通过 Java 后端程序来介绍如何使用 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.3.5</version>
</dependency>
</dependencies>
拆分 PDF 页面
Spire.PDF for Java 提供了 PdfPageBase.createTemplate().draw() 方法在新的 PDF 页面上绘制源文档页面的内容。将一个页面拆分为多个页面实际上意味着源页面的内容将绘制在多个较小的页面上。以下是将第一页分割成两页的主要代码步骤:
- 创建 PdfDocument 类的对象,并调用 PdfDocument.loadFromFile(String filename) 方法加载 PDF 文档。
- 通过 PdfDocument.getPages().get(int index) 方法获取指定页面。
- 创建一个新的 PDF 文档,并将页边距设置为0。
- 将新 PDF 的页面大小设置为原始PDF的一半或部分。
- 使用 PdfDocument.getPages().add() 方法向新的 PDF 文档添加一个新页面。
- 使用 PdfPageBase.createTemplate().draw(PdfPageBase page, Point2D location, PdfTextLayout format) 方法在新页面上绘制源页面的内容。
- 使用 PdfDocument.saveToFile(String filename, FileFormat fileFormat) 方法将新的 PDF 另存为到指定路径。
- Java
import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfLayoutBreakType;
import com.spire.pdf.graphics.PdfLayoutType;
import com.spire.pdf.graphics.PdfTextLayout;
import java.awt.*;
public class SplitHorizontally {
public static void main(String[] args) {
//加载PDF文档,并获取第一页
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("sample.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()/2);
/*//纵向拆分:设置新文档页面的宽度为原文档第一页的二分之一,页面高度为原文档第一页高度
newpdf.getPageSettings().setWidth((float) page.getSize().getWidth()/2);
newpdf.getPageSettings().setHeight((float) page.getSize().getHeight());*/
//添加新页面到新的PDF文档
PdfPageBase newpage = newpdf.getPages().add();
//设置文本布局样式
PdfTextLayout format = new PdfTextLayout();
format.setBreak(PdfLayoutBreakType.Fit_Page);
format.setLayout(PdfLayoutType.Paginate);
//根据原文档第一页创建模板,并将模板画到新文档的新添加页面,页面画满之后自动分页
page.createTemplate().draw(newpage, new Point(0, 0), format);
//保存文档
newpdf.saveToFile("HorizontallySplitPage.pdf");
newpdf.close();
pdf.close();
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。