在PDF中绘制文字时,Spire.PDF for Java提供了PdfStringFormat类来控制文本在水平和垂直方向的对齐方式。本文将展示如何在行内以及矩形区域中设置文字的对齐方式。
行内文字的对齐方式
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);
//使用drawSting方法绘制文字,并在方法中传入左对齐参数
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("AlignText.pdf");
}
}
矩形中文字的对齐方式
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.Rectangle2D;
public class AlignTextWithinRectangle {
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("AlignTextWithinRectangle.pdf");
}
}