
在生成 PDF 文档时,设置文本的对齐方式非常重要,它是决定文档视觉效果的核心要素。本文将带你掌握使用 Spire.PDF for Java 调整文字对齐的技巧,从简单的段落文本对齐,到文本框内文字精准排布,再到复杂的表格中的文本调整,助力你轻松创建专业的、阅读体验极佳的标准化 PDF 报告。
安装专业的 Java PDF 库
在开始介绍具体实现之前,我们需要先安装一个专业的 Java PDF 处理库: Spire.PDF for Java。
该库无需依赖 Adobe Acrobat,即可高效完成各类 PDF 相关操作。从创建简单的 PDF 文档,到精细控制文本、布局等内容,Spire.PDF 都可以通过代码自动化实现,适用于从基础到复杂的多种使用场景。
安装方式
Spire.PDF for Java 提供了多种安装方式,下面介绍两种常见且实用的方法。
1. 使用 Maven 安装
如果你的项目使用 Maven 进行依赖管理,只需在项目的 pom.xml 文件中添加以下依赖,即可快速引入 Spire.PDF for Java。
<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>12.1.4</version>
</dependency>
</dependencies>
这种方式可以自动处理依赖关系,适合大多数 Java 项目,也是官方推荐的安装方式。
2. 手动安装
如果你更倾向于手动管理依赖,也可以选择下载 Spire.PDF for Java 的安装包。
解压后,将对应的 .jar 文件添加到项目的 Java 编译器或构建路径中即可使用。
版本说明
此外,Spire.PDF 还提供免费版,适合功能验证、小型项目或测试环境使用。对于需要完整功能或商业用途的场景,则可以选择专业版。
通过 Java 设置 PDF 中段落文本的对齐方式
在 PDF 文档排版中,段落文本的对齐方式是最常见、也最基础的设置需求之一。通过统一段落中文本的对齐方式,可以快速整理页面布局,在不增加额外设计成本的情况下,显著提升文档的整洁度和专业感。
在 Spire.PDF 中,段落文本的对齐方式主要通过 PdfTextAlignment 属性来控制指定文本是左对齐、居中对齐还是右对齐,并通过 PdfStringFormat 对象传递给绘制文本的方法,从而在渲染阶段生效。
步骤解析:
- 创建一个 PdfDocument 类的对象。
- 通过 PdfDocument.getPages().add() 方法添加页面。
- 创建字体、笔刷对象。
- 创建 PdfStringFormat 对象,并将 PdfTextAlignment 属性分别设置为 Left、Right、Center,用以设置文本左对齐、右对齐或居中对齐。
- 使用 PdfPageBase.getCanvas().drawString() 方法在页面上绘制设置后的文本。
- 使用 PdfDocument.saveToFile() 方法保存 PDF 文档。
下方代码展示了怎样在 Java 中同时设置段落文本左对齐、右对齐和居中对齐:
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
public class AlignText {
public static void main(String[] args) {
// 创建 PdfDocument 对象
PdfDocument doc = new PdfDocument();
// 添加一页
PdfPageBase page = doc.getPages().add();
// 创建 CJK 字体
PdfCjkStandardFont cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.Sino_Type_Song_Light, 15f);
// 创建画刷
PdfSolidBrush brush = new PdfSolidBrush(new PdfRGBColor(Color.black));
// 使用 PdfStringFormat 创建左对齐
PdfStringFormat leftAlignment = new PdfStringFormat(PdfTextAlignment.Left);
// 使用 drawSrting 方法绘制文字,并在方法中传入左对齐参数
page.getCanvas().drawString("靠左", cjkFont , brush, 0, 20, leftAlignment);
// 绘制右对齐文字
PdfStringFormat rightAlignment = new PdfStringFormat(PdfTextAlignment.Right);
page.getCanvas().drawString("靠右", cjkFont , brush, page.getCanvas().getClientSize().getWidth(), 20, rightAlignment);
// 绘制居中文字
PdfStringFormat centerAlignment = new PdfStringFormat(PdfTextAlignment.Center);
page.getCanvas().drawString("居中", cjkFont , brush, page.getCanvas().getClientSize().getWidth() / 2, 20, centerAlignment);
// 保存文档
doc.saveToFile("/output/段落文本对齐.pdf");
}
}
结果文件预览:

提示:在实际排版中,为了进一步增强 PDF 文档的可读性与美观度,除了统一段落中的文本对齐方式外,还可以结合设置文本的旋转、倾斜效果,实现更加灵活的文本排版。
Java 设置 PDF 中文本框内的文本对齐方式
当我们需要在特定的矩形区域,也就是文本框中填充内容时,单纯的水平对齐往往不够,还需要考虑到文字在垂直方向上的排布。通过 Spire.PDF,我们可以将文本锁定指定的矩形区域内,并利用 PdfStringFormat 同时定义水平与垂直两个维度的对齐属性。
这种方式能够精准地将文本定位在区域内的左上角、正中央或右下角等位置,是处理 PDF 表单和规范化排版(如名片、证件等)的有效解决方案。
步骤解析:
- 创建一个 PdfDocument 类的对象。
- 通过 PdfDocument.getPages().add() 方法添加页面。
- 创建字体、画笔、画刷对象。
- 使用 PdfPageBase.getCanvas().drawRectangle() 绘制一个矩形作为文本框。
- 创建 PdfStringFormat 对象,并将PdfTextAlignment 属性设置为 Left,PdfVerticalAlignment 属性设置为 Top,将文本最终的对齐方式设置为左上。
- 使用 PdfPageBase.getCanvas().drawString() 方法在页面上绘制设置后的文本。
- 保存 PDF 文档。
下方代码展示了怎样将文本框中的文字设置为左上、右上、居中、左下、右下对齐:
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.Rectangle2D;
public class AlignText {
public static void main(String[] args) {
// 创建 PdfDocument 对象
PdfDocument doc = new PdfDocument();
// 添加一页
PdfPageBase page = doc.getPages().add();
// 创建 CJK 字体
PdfCjkStandardFont cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.Sino_Type_Song_Light, 15f);
// 创建画笔
PdfPen pen = new PdfPen(new PdfRGBColor(Color.black));
// 创建画刷
PdfSolidBrush brush = new PdfSolidBrush(new PdfRGBColor(Color.black));
// 在 PDF 中绘制一个矩形
Rectangle2D.Float rect = new Rectangle2D.Float();
rect.setRect(0, 20, page.getCanvas().getClientSize().getWidth() / 2, 100);
page.getCanvas().drawRectangle(pen, rect);
// 使用 PdfSringFormat 创建左上对齐
PdfStringFormat topLeft = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Top);
// 使用 drawSting方 法绘制文字,并在方法中传入左上对齐参数
page.getCanvas().drawString("左上", cjkFont, brush, rect, topLeft);
// 绘制右上对齐文字
PdfStringFormat topRight = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Top);
page.getCanvas().drawString("右上", cjkFont, brush, rect, topRight);
// 绘制居中文字
PdfStringFormat center = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
page.getCanvas().drawString("居中", cjkFont, brush, rect, center);
// 绘制左下对齐文字
PdfStringFormat bottomLeft = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Bottom);
page.getCanvas().drawString("左下", cjkFont, brush, rect, bottomLeft);
// 绘制右下对齐文字
PdfStringFormat bottomRight = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Bottom);
page.getCanvas().drawString("右下", cjkFont, brush, rect, bottomRight);
// 保存文档
doc.saveToFile("/output/文本框文字对齐.pdf");
}
}
结果文件预览:

进阶:设置 PDF 表格中文本对齐方式
在创建 PDF 报告时,表格承载着核心数据。与基础的文本框不同,表格对齐不仅追求视觉的美观,还直接影响到数据的可读性,例如,表头通常需要居中以示醒目,而金额类数值则往往需要靠右对齐以便于视觉上的位数比对。在 Spire.PDF 中,我们使用 PdfGrid 类创建表格,然后同样使用 PdfStringFormat 来实现文字对齐。
步骤解析:
- 创建一个 PdfDocument 类的对象。
- 通过 PdfDocument.getPages().add() 方法添加页面。
- 创建 PdfGrid 实例,然后使用 PdfGrid.getColumns().add() 和 PdfGrid.getRows().add() 方法添加列和行,组成完整表格。
- 通过PdfTextAlignment 属性设置文本的左右对齐,通过 PdfVerticalAlignment 属性设置文本上下对齐。
- 使用 PdfGridRow.getCells().get(0).setStringFormat() 方法将文本对齐效果应用到指定单元格。
- 保存 PDF 文档。
这个代码例子展示了怎样在 PDF 表格中设置文本垂直居中的同时,设置水平方向上的左对齐、右对齐和居中对齐:
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.grid.*;
import java.awt.*;
public class AlignText {
public static void main(String[] args) {
// 创建 PdfDocument 对象,并添加一个页面
PdfDocument doc = new PdfDocument();
PdfPageBase page = doc.getPages().add();
// 创建表格
PdfGrid grid = new PdfGrid();
grid.getColumns().add(3);
grid.getColumns().get(0).setWidth(100f);
grid.getColumns().get(1).setWidth(100f);
grid.getColumns().get(2).setWidth(100f);
// 添加一行数据
PdfGridRow row = grid.getRows().add();
row.getCells().get(0).setValue("靠左");
row.getCells().get(1).setValue("居中");
row.getCells().get(2).setValue("靠右");
// 为单元格单独设置对齐方式
PdfCjkStandardFont cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.Sino_Type_Song_Light, 12f);
// 设置第一列单元格左对齐
row.getCells().get(0).setStringFormat(new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle));
// 设置第二列单元格居中对齐
row.getCells().get(1).setStringFormat(new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle));
// 设置第三列单元格右对齐
row.getCells().get(2).setStringFormat(new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle));
// 设置字体并绘制
grid.getStyle().setFont(cjkFont);
grid.draw(page, 0, 150);
doc.saveToFile("/output/表格文本对齐.pdf");
}
}
结果文件预览:

结论
通过学习今天的教程,你可以使用 Java 结合 Spire.PDF for Java 灵活控制 PDF 中文本的对齐方式。无论是段落文本、文本框还是表格中的文字,都可以通过 PdfStringFormat 来实现精准排版。掌握这项技能,开发者可以自动化高效构建规范、易读并且美观的 PDF 文档。







