我有100条记录的清单,我想用3列的pdf格式制作表格。我的问题是,一旦将pdf文件制成33行3列,那么它的99条记录就变成了100条。我如何在pdf表中显示另一条记录?
这是我的代码:
Document document = new Document(PageSize.A4, -60f, -60f, 18f, 5f);
PdfPTable table = new PdfPTable(3);
PdfPCell cell;
if (filterPins.size() > 0) {
for (int i = 0; i < filterPins.size(); i++) {
Bitmap bmp = getRecyclerViewScreenshot(pinList, i);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);
Image image = Image.getInstance(stream.toByteArray());
cell = new PdfPCell(image, true);
cell.setPadding(0f);
cell.setBorder(Rectangle.NO_BORDER);
table.addCell(cell);
}
File myDirectory = new File(rootView.getContext().getFilesDir(), String.valueOf(factorNo));
if (!myDirectory.exists()) {
myDirectory.mkdirs();
}
File pdfFile = new File(myDirectory, fileName);
PdfWriter.getInstance(document, new FileOutputStream(pdfFile));
document.open();
document.add(table);
document.close();
}
filterPins是我的arrayList,其中包含100条记录。
答案 0 :(得分:1)
我如何在pdf表中显示另一条记录?
首先,这也是您必须问自己的问题。您是否希望第100个条目仅填充一行三个单元格中的一个?如果是,是哪一个?还是应该跨越整个行?还是您想要其他结构?
但是,假设您只是希望第100个条目成为第34行的第一个单元格,并且您还希望该行中的其他单元格为空。在这种情况下,有一个PdfPTable
实用程序方法用空单元格(默认单元格的副本)填充当前行:
table.completeRow();
答案 1 :(得分:0)
if(yourlist.size()%3 == 0){
int totalRows = yourlist.size()/ 3;
创建您的PDF。
例如list.size()= 99,然后您创建33行,每行有3列。
}
其他 {
int totalRows = yourlist.size()/ 3;
例如,如果yourlist.size()= 100。
然后首先创建33行,每行有3列。
在创建33行之后,剩下的1个项目会添加到新列表中。
将剩下的1或2列添加到新行中。
注意:无论如何,您只剩下1或2。
}