在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");
}
}