When drawing text on PDF page, you can align text horizontally and vertically. This tutorial will show you how to align text in a line and a rectangle by using Spire.PDF for Java.
Align Text in Line
import com.spire.pdf.graphics.*;
import java.awt.*;
public class AlignTextInLine {
public static void main(String[] args) {
//create a PdfDocument object
PdfDocument doc = new PdfDocument();
//add a page
PdfPageBase page = doc.getPages().add();
//create a true type font
PdfTrueTypeFont font= new PdfTrueTypeFont(new Font("Times New Roman",Font.PLAIN,15));
//create a brush
PdfSolidBrush brush = new PdfSolidBrush(new PdfRGBColor(Color.black));
//create a PdfStringFormat object, specifying PdfTextAlignment to Left
PdfStringFormat leftAlignment = new PdfStringFormat(PdfTextAlignment.Left);
//draw text at left
page.getCanvas().drawString("Left", font , brush, 0, 20, leftAlignment);
//draw text at right
PdfStringFormat rightAlignment = new PdfStringFormat(PdfTextAlignment.Right);
page.getCanvas().drawString("Right", font , brush, page.getCanvas().getClientSize().getWidth(), 20, rightAlignment);
//draw text in center
PdfStringFormat centerAlignment = new PdfStringFormat(PdfTextAlignment.Center);
page.getCanvas().drawString("Center", font , brush, page.getCanvas().getClientSize().getWidth() / 2, 20, centerAlignment);
//save the file
doc.saveToFile("AlignTextInLine.pdf");
}
}
Output:

Align Text in Rectangle
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.Rectangle2D;
public class AlignTextInRectangle {
public static void main(String[] args) {
//create a PdfDocument object
PdfDocument doc = new PdfDocument();
//add a page
PdfPageBase page = doc.getPages().add();
//create a true type font
PdfTrueTypeFont font= new PdfTrueTypeFont(new Font("Times New Roman",Font.PLAIN,15));
//craete a pen
PdfPen pen = new PdfPen(new PdfRGBColor(Color.black));
//create a brush
PdfSolidBrush brush = new PdfSolidBrush(new PdfRGBColor(Color.black));
//draw a rectangle
Rectangle2D.Float rect = new Rectangle2D.Float();
rect.setRect(0, 20, page.getCanvas().getClientSize().getWidth() / 2, 100);
page.getCanvas().drawRectangle(pen, rect);
//create a PdfStringFormat object, specifying PdfTextAlignment to Top and Left
PdfStringFormat topLeft = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Top);
//draw text at top left
page.getCanvas().drawString("TopLeft", font, brush, rect, topLeft);
//draw text at top right
PdfStringFormat topRight = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Top);
page.getCanvas().drawString("TopRight", font, brush, rect, topRight);
//draw text in center
PdfStringFormat center = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
page.getCanvas().drawString("Center", font, brush, rect, center);
//draw text at bottom left
PdfStringFormat bottomLeft = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Bottom);
page.getCanvas().drawString("BottomLeft", font, brush, rect, bottomLeft);
//draw text at bottom right
PdfStringFormat bottomRight = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Bottom);
page.getCanvas().drawString("BottomRight", font, brush, rect, bottomRight);
//save the file
doc.saveToFile("AlignTextInRectangle.pdf");
}
}
Output:

