如何对齐PDF文档中打印的表格中的列?

时间:2015-11-06 07:14:54

标签: java pdf pdf-generation itext

这是我用pdf生成记录的代码。我需要逐个显示记录,但此代码无法控制pdfptable的列宽。如何设置?

我使用Itext生成PDF。

pdfDocument=new Document();

PdfWriter.getInstance(pdfDocument, new FileOutputStream(sOutputDirectory + "/" + sOutputFileName, false));       
pdfDocument.open();
if(valuelist!=null && !valuelist.isEmpty() && valuelist!=null && !valuelist.isEmpty() && pdfDocument.isOpen() ){
    System.out.println("CP 1");

    PdfPTable pdfPTable=new PdfPTable(valuelist.size());
    pdfPTable.setWidthPercentage(100);
    float[] columnWidths = new float[] {15f, 15f, 15f, 35f,15f,15f};
    pdfPTable.setWidths(columnWidths);
    PdfPCell pdfPCell;

    for(int i=0;i<valuelist.size();i++){

        System.out.println("CP :"+i);

        Bean bean = (Bean) valuelist.get(i);
        pdfPCell=new PdfPCell(new Phrase(bean.getsName()));
        pdfPCell.setBorder(Rectangle.NO_BORDER);
        pdfPTable.addCell(pdfPCell);

        pdfPCell=new PdfPCell(new Phrase(bean.getsNumber()));
        pdfPCell.setBorder(Rectangle.NO_BORDER);
        pdfPTable.addCell(pdfPCell);

        pdfPCell=new PdfPCell(new Phrase(bean.getsTransactionDate()));
        pdfPCell.setBorder(Rectangle.NO_BORDER);
        pdfPTable.addCell(pdfPCell);

        pdfPCell=new PdfPCell(new Phrase(bean.getsItemNo()));
        pdfPCell.setBorder(Rectangle.NO_BORDER);
        pdfPTable.addCell(pdfPCell);

        pdfPCell=new PdfPCell(new Phrase(bean.getsPoints()));
        pdfPCell.setBorder(Rectangle.NO_BORDER);
        pdfPTable.addCell(pdfPCell);

        pdfPCell=new PdfPCell(new Phrase(bean.getsQuantity()));
        pdfPCell.setBorder(Rectangle.NO_BORDER);
        pdfPTable.addCell(pdfPCell);
    }

    pdfDocument.add(pdfPTable);
}
pdfDocument.close();

0 个答案:

没有答案