您可以根据输入(例如字符串)确定 iText 中的列宽吗?

Can you determine column-width in iText based on input (e.g. a string)?

我正在使用 iText 和 Java 进行一个项目。在项目中,我将制作一个pdf。在此 pdf 中,将有多个 table,它们的列数和内容会发生变化,这意味着列宽也必须以灵活的方式确定。

到目前为止,很多都运行良好,但我被整个列宽问题困住了。我目前的尝试是根据数据库条目来确定它们。假设我有 2 列,我希望其中一列占 table 大小的 20%,另一列占 80%。然后,如果我手动完成,我只需要编写以下代码:

table.setWidths(new float[] { 20, 80 });

table.setWidths(new int[] { 20, 80 });

我尝试失败的一个例子是当我使用这个数据输入时:

20, 80

然后我尝试通过将其作为字符串解析为浮点数来使条目成为浮点数或整数,但是当然它给了我一个解析错误。

有没有人能解决我当前的问题或知道如何找到新的解决方案?

需要的是将字符串拆分为一个 int[],如下所示:

String inputFromDatabase = "1,5";
String[] p = inputFromDatabase.trim().split(",");
int[] ans = new int[p.length];
for (int a = 0; a < p.length; a++) {
    ans[a] = Integer.parseInt(p[a]);
}
table.setWidths(ans);

找到答案here