前面我们介绍了使用pdfgrid类创建表格,该文将介绍如何使用pdftable类创建并格式化表格。
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.tables.*;
import java.awt.*;
import java.awt.geom.point2d;
public class createpdftable {
public static void main(string[] args) {
//创建pdf文档
pdfdocument doc = new pdfdocument();
//设置margin
pdfunitconvertor unitcvtr = new pdfunitconvertor();
pdfmargins margin = new pdfmargins();
margin.settop(unitcvtr.convertunits(2.54f, pdfgraphicsunit.centimeter, pdfgraphicsunit.point));
margin.setbottom(margin.gettop());
margin.setleft(unitcvtr.convertunits(3.17f, pdfgraphicsunit.centimeter, pdfgraphicsunit.point));
margin.setright(margin.getleft());
// 添加一页
pdfpagebase page = doc.getpages().add(pdfpagesize.a4, margin);
//添加表格
pdftable table = new pdftable();
pdfsolidbrush brush = new pdfsolidbrush(new pdfrgbcolor(color.black));
table.getstyle().setborderpen(new pdfpen(brush, 0.5f));
table.getstyle().getheaderstyle().setstringformat(new pdfstringformat(pdftextalignment.center));
table.getstyle().setheadersource(pdfheadersource.rows);
table.getstyle().setheaderrowcount(1);
table.getstyle().setshowheader(true);
table.getstyle().setcellpadding(2);
table.getstyle().setheadersource(pdfheadersource.rows);
table.getstyle().setheaderrowcount(1);
table.getstyle().setshowheader(true);
//设置表头字体和样式
pdftruetypefont font = new pdftruetypefont(new font("宋体",font.plain, 12));
table.getstyle().getheaderstyle().setfont(font);
table.getstyle().getheaderstyle().setbackgroundbrush(pdfbrushes.getcadetblue());
pdftruetypefont fontbody = new pdftruetypefont(new font("宋体", font.plain,10));
//设置偶数行字体
table.getstyle().getdefaultstyle().setfont(fontbody);
//设置奇数行字体
table.getstyle().getalternatestyle().setfont(fontbody);
//定义数据
string[] data = {"洲;国家;人口;世界人口占比;备注",
"亚洲;中国;1,391,190,000;18.2%; ",
"亚洲;日本;126,490,000;1.66%; ",
"欧洲;英国;65,648,054;0.86%; ",
"欧洲;德国;82,665,600;1.08%; ",
"北美洲;加拿大;37,119,000;0.49%; ",
"北美洲;美国;327,216,000;4.29%; "
};
string[][] datasource = new string[data.length][];
for (int i = 0; i < data.length; i ) {
datasource[i] = data[i].split("[;]", -1);
}
table.setdatasource(datasource);
for(int i=0; i
效果图: