iTextPdf를 사용하여 PDF 용 테이블을 작성하고 있습니다. 각 페이지에는 9 ~ 15 개의 열이 있으며 런타임까지는 정확한 번호가 없습니다. iTextPDF는 페이지 너비에 걸쳐 동일한 크기의 열을 만드는 것이 좋습니다. 하지만 알아낼 수없는 것은 너비가 다른 열을 만드는 방법입니다.iTextPdf : 셀 너비를 동적으로 변경하기
페이지 너비 전체에 걸쳐 있기 때문에 고정 열 너비를 사용할 수 없습니다. 따라서 9 개의 열을 쓸 때 각 열은 반드시 12 또는 15 개의 열을 쓸 때보 다 넓어집니다. 고정 된 것은이 열 너비 간의 관계입니다. 예를 들어, 나는 열 A가 항상 열 B의 너비의 75 %가된다는 것을 알고 있으며, 열 C의 너비의 항상 50 %입니다. 모든 열에 대해이 값을 결정할 수 있습니다.
누구나이 열의 크기를 적절히 조정하기 위해 페이지를 나누는 방법에 대한 아이디어가 있습니까? 동일한 크기의 열을 만드는 데 사용하는 코드는 다음과 같습니다. 내가 아니라 고정 된 값으로, 열 너비를 변경하는
cell.setColspan(1);
근처 끝으로 다른 뭔가가 필요합니다. 고맙습니다!
public static void newPDF() throws DocumentException, IOException {
PdfWriter writer;
Document document;
int cols = 9; //can be either 9, 12, or 15
document = new Document();
writer = PdfWriter.getInstance(document, new FileOutputStream("test.pdf"));
document.open();
document.add(createTable(cols));
document.close();
}
public static PdfPTable createTable(int cols) {
PdfPTable table = new PdfPTable(cols);
PdfPCell cell;
for (int i = 0; i < cols; i++) {
ph = selector.process("some text");
cell = new PdfPCell(ph);
cell.setColspan(1); //repeated 9, 12, or 15 times
table.addCell(cell);
}
return table;
}