gpt4 book ai didi

java - ItextPdf 宽度不会针对横向页面扩展

转载 作者:行者123 更新时间:2023-12-02 11:57:10 27 4
gpt4 key购买 nike

我正在尝试将表格放在已在“PdfPageEventHelper”中横向旋转的 PDF 页面上:

public void onStartPage(PdfWriter writer_,Document document_) {
writer_.addPageDictEntry(PdfName.ROTATE,PdfPage.LANDSCAPE);
}

该部分似乎有效,但当我创建包含 10 列的表格时,设置宽度似乎不起作用:

float sizeY=page.getWidth();
PdfPTable table=new PdfPTable(10);
table.setTotalWidth(sizeY);
float[] widths=new float[] {1.f,1.5f,4.f,1.f,1.f,1.f,1.f,1.f,1.f,1.f};
table.setWidths(widths);

表格宽度似乎始终是默认宽度(纵向页面宽度的 80%)。如何让表格使用横向页面宽度? TIA。

最佳答案

您使用的是旧版 iText 5。iText 5 中的许多怪癖在 iText 7 中得到了解决。

在 iText 7 中,我们有 UnitValue 的概念,它可以帮助 iText 确定某个值是绝对值(以用户单位/点为单位)还是相对值(百分比)。

在 iText 5 中,这个概念是未知的。 PdfPTable 类有两个表宽度参数:

  • 宽度百分比:默认为 80%,
  • 绝对宽度

默认情况下,使用百分比形式的宽度。如果你想使用绝对宽度,你需要用setLockedWidth()方法“拉动开关”:

table.setTotalWidth(sizeY);
table.setLockedWidth(true);

我知道这很奇怪,但话又说回来,您使用的是 iText 版本。如果您想要更一致的 API,请使用 iText 7。这次升级非常重要。我们花费了大量的时间和金钱来改进 iText,因此看到新的 iText 开发人员选择使用 iText 5 而不是 iText 7 有点令人沮丧。

关于java - ItextPdf 宽度不会针对横向页面扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47515893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com