页边距是 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>10.9.0</version>
</dependency>
</dependencies>
增加现有 PDF 文档的页边距
增加 PDF 文档页边距的方法是创建一个更大页面的新 PDF,然后在较大页面上的适当位置绘制原始页面。以下是使用 Spire.PDF for Java 增加现有 PDF 文档页边距的主要步骤。
- 在初始化 PdfDocument 对象时加载原始 PDF 文档。
- 创建另一个 PdfDocument 对象,该对象用于创建具有更大页面大小的新 PDF 文档。
- 设置边距的增值。
- 设置新 PDF 文档的页面大小。
- 循环遍历原始文档中的页面,并使用 PdfPageBase.createTemplate() 方法基于某个页面创建模板。
- 使用 PdfDocument.getPages().add() 方法在新的 PDF 文档中添加页面。
- 使用 PdfTemplate.draw()方法从(0, 0) 开始在页面上绘制模板。
- 使用 PdfDocument.saveToFile() 方法将新的 PDF 文档保存到文件中。
- Java
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfMargins;
import com.spire.pdf.graphics.PdfTemplate;
import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;
public class IncreaseMargins {
public static void main(String[] args) {
//加载原始PDF文档
PdfDocument originalPdf = new PdfDocument("C:\\Users\\Administrator\\Desktop\\sample.pdf");
//获取第一页的内容
PdfPageBase firstPage = originalPdf.getPages().get(0);
//创建一个新的PdfDocument对象
PdfDocument newPdf = new PdfDocument();
//设置边距的增值
PdfMargins margins = newPdf.getPageSettings().getMargins();
margins.setTop(40);
margins.setBottom(40);
margins.setLeft(40);
margins.setRight(40);
//设置新PDF文档的大小
Dimension2D dimension2D = new Dimension();
dimension2D.setSize(firstPage.getSize().getWidth() + margins.getLeft() + margins.getRight(), firstPage.getSize().getHeight() + margins.getTop() + margins.getBottom());
//循环浏览原始文档中的页面
for (int i = 0; i < originalPdf.getPages().getCount(); i++) {
//根据源页面创建模板
PdfTemplate template = originalPdf.getPages().get(i).createTemplate();
//在新的PDF文档中添加页面
PdfPageBase page = newPdf.getPages().add(dimension2D);
//在页面上绘制模板
template.draw(page.getCanvas(), new Point2D.Float(0, 0));
}
//将新文档保存到文件
newPdf.saveToFile("output/IncreaseMargins.pdf", FileFormat.PDF);
}
}
减小现有 PDF 文档的页边距
同样,减少 PDF 边距的方法是创建一个更小页面的新 PDF,然后在较小页面的指定坐标位置绘制原始页面。以下是使用 Spire.PDF for Java 减少现有 PDF 文档页边距的主要步骤。
- 在初始化 PdfDocument 对象时加载原始 PDF 文档。
- 创建另一个 PdfDocument 对象,该对象用于创建具有较小页面大小的新 PDF 文档。
- 设置边距的减值。
- 设置新 PDF 文档的页面大小。
- 循环遍历原始文档中的页面,并使用 PdfPageBase.createTemplate() 方法基于某个页面创建模板。
- 使用 PdfDocument.getPages().add() 方法在新的PDF文档中添加页面。
- 使用 PdfTemplate.draw() 方法在页面上的指定位置绘制模板。
- 使用 PdfDocument.saveToFile() 方法将新的PDF文档保存到文件中。
- Java
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfMargins;
import com.spire.pdf.graphics.PdfTemplate;
import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;
public class DecreaseMargins {
public static void main(String[] args) {
//加载原始PDF文档
PdfDocument originalPdf = new PdfDocument("C:\\Users\\Administrator\\Desktop\\sample.pdf");
//获取第一页的内容
PdfPageBase firstPage = originalPdf.getPages().get(0);
//创建一个新的PdfDocument对象
PdfDocument newPdf = new PdfDocument();
//设置减值
double left = -20;
double right = -20;
double top = -20;
double bottom = -20;
//设置新PDF文档的页面大小
Dimension2D dimension2D = new Dimension();
dimension2D.setSize(originalPdf.getPages().get(0).getSize().getWidth() + left + right, originalPdf.getPages().get(0).getSize().getHeight() + top + bottom);
//循环浏览原始文档中的页面
for (int i = 0; i < originalPdf.getPages().getCount(); i++) {
//根据源页面创建模板
PdfTemplate template = originalPdf.getPages().get(i).createTemplate();
//在新的PDF文档中添加页面
PdfPageBase page = newPdf.getPages().add(dimension2D, new PdfMargins(0));
//在页面上绘制模板
template.draw(page.getCanvas(), new Point2D.Float((float) left, (float) top));
}
//将新文档保存到文件
newPdf.saveToFile("output/DecreaseMargins.pdf", FileFormat.PDF);
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取有效期 30 天的临时许可证。