我使用 PdfPTable 将表数据转换为 pdf 文件,使用 com.itextpdf.text.pdf.PdfPTable
。正在显示表格,但表格数据和标题的样式相同。为了有所不同,我必须将标题字体样式设置为粗体。有人可以帮我解决这个问题吗?我已在此处附上我的代码。
提前致谢。
import java.awt.Color;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.ListDataModel;
import com.mypackage.core.filter.domainobject.FilterResultDO;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.PdfPTable;
public class PDFGenerator {
//This method will generate PDF for Filter Result Screen (only DataTable level)
@SuppressWarnings("unchecked")
public static PdfPTable generatePDF(PdfPTable table,List<FilterResultDO> filterResultDOList ,List<ColumnHeader> filterResultHeaderList )
{
//Initialize the table with number of columns required for the Datatable header
int numberOfFilterLabelCols = filterResultHeaderList.size();
//PDF Table Frame
table = new PdfPTable(numberOfFilterLabelCols);
//Getting Filter Detail Table Heading
for(int i = 0 ; i < numberOfFilterLabelCols; i++)
{
ColumnHeader commandHeaderObj = filterResultHeaderList.get(i);
table.addCell(commandHeaderObj.getLabel());
}
//Getting Filter Detail Data (Rows X Cols)
FilterResultDO filterResultDOObj = filterResultDOList.get(0);
List <List> filterResultDataList = filterResultDOObj.getFilterResultLst();
int numberOfFilterDataRows = filterResultDataList.size();
//each row iteration
for(int row = 0; row < numberOfFilterDataRows; row++)
{
List filterResultCols = filterResultDataList.get(row);
int numberOfFilterDataCols = filterResultCols.size();
//columns iteration of each row
for(int col = 0; col < numberOfFilterDataCols ; col++)
{
String filterColumnsValues = (String) filterResultCols.get(col);
table.addCell(filterColumnsValues);
}
}
return table;
}//generatePDF
}
最佳答案
我认为 commandHeaderObj.getLabel() 方法返回一个字符串。 您只需定义一种字体(在方法中,或作为实例属性或静态最终类属性......)
Font tableHeader =
FontFactory.getFont(FontFactory.HELVETICA, 10, Font.BOLD);
然后将其应用到单元格
for(int i = 0 ; i < numberOfFilterLabelCols; i++)
{
ColumnHeader commandHeaderObj = filterResultHeaderList.get(i);
Paragraph header = new Paragraph();
header.setFont(tableHeader);
header.add(commandHeaderObj.getLabel());
table.addCell(header);
}
希望这有帮助
纪尧姆
关于java - 如何在jsf中将pdf文件中表格标题的标题字体样式设置为粗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2620942/