ItextPdf 宽度不扩展横向页面
ItextPdf Width Does Not Expand for Landscape Page
我正在尝试将 table 放在已在我的 'PdfPageEventHelper' 中横向旋转的 PDF 页面上:
public void onStartPage(PdfWriter writer_,Document document_) {
writer_.addPageDictEntry(PdfName.ROTATE,PdfPage.LANDSCAPE);
}
该部分似乎有效,但当我创建包含 10 列的 table 时,设置宽度似乎无效:
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);
table 宽度似乎总是默认值(纵向页面宽度的 80%)。如何让 table 使用横向页面宽度? TIA.
您使用的是旧版 iText 5。iText 5 中有很多问题已在 iText 7 中解决。
在 iText 7 中,我们有 UnitValue
的概念,它帮助 iText 确定某物是绝对值(用户单位/点)还是相对值(百分比)。
在 iText 5 中,这个概念是未知的。 PdfPTable
class 的宽度有两个参数 a table:
- 宽度百分比:默认为 80%,
- 绝对宽度
默认情况下,使用百分比形式的宽度。如果要使用绝对宽度,需要"pull the switch"配合setLockedWidth()
方法:
table.setTotalWidth(sizeY);
table.setLockedWidth(true);
我知道这很奇怪,但话又说回来,您使用的是 旧 iText 版本。如果您想要更一致的 API,请使用 iText 7。该升级非常重要。我们花费了大量的时间和金钱来改进 iText,因此看到新的 iText 开发人员选择使用 iText 5 而不是 iText 7 有点令人沮丧。
我正在尝试将 table 放在已在我的 'PdfPageEventHelper' 中横向旋转的 PDF 页面上:
public void onStartPage(PdfWriter writer_,Document document_) {
writer_.addPageDictEntry(PdfName.ROTATE,PdfPage.LANDSCAPE);
}
该部分似乎有效,但当我创建包含 10 列的 table 时,设置宽度似乎无效:
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);
table 宽度似乎总是默认值(纵向页面宽度的 80%)。如何让 table 使用横向页面宽度? TIA.
您使用的是旧版 iText 5。iText 5 中有很多问题已在 iText 7 中解决。
在 iText 7 中,我们有 UnitValue
的概念,它帮助 iText 确定某物是绝对值(用户单位/点)还是相对值(百分比)。
在 iText 5 中,这个概念是未知的。 PdfPTable
class 的宽度有两个参数 a table:
- 宽度百分比:默认为 80%,
- 绝对宽度
默认情况下,使用百分比形式的宽度。如果要使用绝对宽度,需要"pull the switch"配合setLockedWidth()
方法:
table.setTotalWidth(sizeY);
table.setLockedWidth(true);
我知道这很奇怪,但话又说回来,您使用的是 旧 iText 版本。如果您想要更一致的 API,请使用 iText 7。该升级非常重要。我们花费了大量的时间和金钱来改进 iText,因此看到新的 iText 开发人员选择使用 iText 5 而不是 iText 7 有点令人沮丧。