2010-04-12 5 views
0

나는 com.itextpdf.text.pdf.PdfPTable을 사용하여 테이블 데이터를 PDF 파일로 변환하는 데 PdfPTable을 사용했습니다. 표가 표시되지만 표 데이터와 표제는 같은 스타일입니다. 차이를 만들려면 머리글 글꼴 스타일을 굵게 설정해야합니다. 아무도 나를 도울 수 있습니까? 여기에 내 코드를 첨부했습니다.jff의 테이블 헤더에 굵게 헤더 글꼴 스타일을 설정하는 방법

미리 감사드립니다.

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 




} 

답변

1

나는 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); 
} 

희망에 적용 (방법에서, 또는 인스턴스 속성이나 정적 최종 클래스 속성 ... 등) 이 도움

기 012

관련 문제