页边距是指文档页面主要内容以外的边缘区域。在创建 PDF 文档时,通常会设定每页固定页边距,以确保页面的统一性。然而,在某些情况下,已创建的 PDF 文档可能需要调整页边距以获得更好的视觉效果或满足打印需求。这通常是一项复杂的任务,但使用Free Spire.PDF for Java就可以通过简单的Java代码轻松实现此操作。本文将介绍如何使用简单的Java代码调整PDF文档的页边距。
文章目录
- 用Java增加PDF文档页边距
- 用Java减少PDF文档页边距
Free Spire.PDF for Java可通过官网下载或Maven安装。
用Java增加PDF文档页边距
增加 PDF 文档页边距的方法是新建一个页面尺寸较大的 PDF,并在较大页面的适当位置绘制原始页面。 具体步骤如下:
- 创建一个 PdfDocument 类的对象并使用 PdfDocument.loadFromFile() 方法加载 PDF 文档。
- 创建另一个 PdfDocument 对象,并创建一个页面尺寸较大的 PDF 文档。
- 使用 PdfMargins 类下的方法设置要增加的页边距。
- 使用 Dimension2D.setSize() 方法设置新文档的页面大小。
- 循环遍历原始文档的页面,并使用 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 EnlargePdfPageMargins {
public static void main(String[] args) {
// 创建PdfDocument对象并加载PDF文档
PdfDocument originalPdf = new PdfDocument();
originalPdf.loadFromFile("示例.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());
// 遍历原始PDF文档中的所有页面
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));
}
// 保存新的PDF文档
newPdf.saveToFile("增加PDF页边距.pdf", FileFormat.PDF);
}
}
设置结果
用Java减少PDF文档页边距
同样,要缩小 PDF 的页边距,可新建一个页面尺寸较小的 PDF,并在指定坐标处将原页面绘制到较小的页面上。 具体步骤如下:
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.loadFromFile() 方法加载现有的 PDF 文档。
- 创建另一个 PdfDocument 对象,并创建一个页面尺寸缩小的 PDF 文档。
- 使用 PdfMargins 类下的方法设置要缩小的页边距值。
- 使用 Dimension2D.setSize() 方法设置新 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 ReducePdfPageMargins {
public static void main(String[] args) {
// 创建PdfDocument对象并加载PDF文档
PdfDocument originalPdf = new PdfDocument();
originalPdf.loadFromFile("示例.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(firstPage.getSize().getWidth() + left + right, firstPage.getSize().getHeight() + top + bottom);
// 遍历原始PDF文档中的所有页面
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));
}
// 保存新的PDF文档
newPdf.saveToFile("减少PDF页边距.pdf", FileFormat.PDF);
}
}
设置结果
以上是关于如何使用 Free Spire.PDF for Java 来更改PDF页边距大小的介绍。同时,此 API 还有许多其他的功能您可前往 Spire.PDF for Java 教程查看。