这是我用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();