iTextPdfを使用してpdfのテーブルを作成しています。各ページには 9 ~ 15 の列があり、正確な数は実行時までわかりません。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;
}