Tôi đang tạo danh sách các tháng theo chiều dọc với danh sách ngày theo chiều ngang trong mỗi tháng. Mỗi ngày tôi thêm một hình chữ nhật có kích thước và màu; kích thước và màu sắc phụ thuộc vào một giá trị từ truy vấn db.Cách căn chỉnh phần tử mẫu Căn chỉnh trong PdfPCell
Tôi đang sử dụng PdfPTable
, PdfPCell
và cbCreateTemplate
cung cấp trong this answer
Mọi thứ khác hoạt động tốt (kích thước của hình chữ nhật, màu sắc của hình chữ nhật), ngoài vị trí của hình chữ nhật: nó luôn luôn đặt ở 0,0 mặc dù tôi (nghĩ) tôi đã đặt định vị V & H. Một đoạn trích của mã dưới đây; xin vui lòng tư vấn cho.
int Severity = args.getPLR().get(i).getItems().get(j).getItems().get(itemIndex).getSeverity();
Severity = Severity + 5; //plump up, so that max (10) should fill the cell
PdfPCell cell = new PdfPCell();
cell.setPadding(0);
template = cb.createTemplate(Severity, Severity);
template.setLineWidth(0.5f);
template.rectangle(0, 0, Severity, Severity);
//we should switch the color
//based on the Severity
switch ((Severity-5)) {
case 0:
template.setColorFill(Color.GREEN);
break;
case 1:
template.setColorFill(Color.GREEN);
break;
case 2:
template.setColorFill(Color.YELLOW);
break;
case 3:
template.setColorFill(Color.YELLOW);
break;
case 4:
template.setColorFill(Color.YELLOW);
break;
case 5:
template.setColorFill(Color.ORANGE);
break;
case 6:
template.setColorFill(Color.ORANGE);
break;
case 7:
template.setColorFill(Color.ORANGE);
break;
case 8:
template.setColorFill(Color.RED);
break;
case 9:
template.setColorFill(Color.RED);
break;
case 10:
template.setColorFill(Color.RED);
break;
}
template.fill();
img = Image.getInstance(template);
chunk = new Chunk(img, 0f, 0f);
cell.addElement(chunk);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
painTable.addCell(cell);
Đây là một hình ảnh về những gì đang hiển thị:
Nó sẽ được Trung tâm/Trung tâm. Tôi đã đi sai ở đâu?
Đây là phần đang được cập nhật bằng cách sử dụng giải pháp được chấp nhận:
img = Image.getInstance(template);
chunk = new Chunk(img, 0f, 0f);
Phrase severityChunk = new Phrase(chunk);
PdfPCell cell = new PdfPCell(severityChunk);
cell.setPadding(0);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
painTable.addCell(cell);
Cảm ơn Bruno. Tôi đã sử dụng cụm từ trong một giải pháp Cell và thêm mã được cập nhật ở trên. – DaveSav