如何在 Table 单元格中停止 iText7 图像截断
How To Stop iText7 Image Cutoff When In A Table Cell
我正在尝试使用 iText7 创建一个 PDF,其中包含存储在图像和相应编号中的问题。数字和图像必须放在同一页上,所以我使用 table 对象将它们放在一起;但是,图像 运行 超出了页面边缘。
Table table = new Table(UnitValue.CreatePercentArray(8)).UseAllAvailableWidth();
Cell cellQuestionNumber = new Cell().Add(questionNum).SetBorder(Border.NO_BORDER);
Cell cellImage = new Cell().Add(img).SetBorder(Border.NO_BORDER);
table.AddCell(cellQuestionNumber);
table.AddCell(cellImage);
document.Add(table);
我看到有些人在图片上使用 .SetAutoScaleWidth(true)
,但当我这样做时,图片会缩小到难以辨认的大小。
。 .
有什么建议吗?
这里不需要使用表格 - 您可以将要保留在一页中的元素添加到 Div
中,然后使用 setKeepTogether(true)
属性 来防止拆分Div
超过两页。
要确保图片占用的宽度不超过页面宽度,您可以将其最大宽度 属性 设置为 100%。
这是一个代码示例:
Image image = new Image(ImageDataFactory.create("C:\Users\Alexey\Desktop\Capture.PNG"));
Div div = new Div();
div.add(new Paragraph("#1.)"));
div.add(image.setMaxWidth(UnitValue.createPercentValue(100)));
div.setKeepTogether(true);
document.add(div);
我正在尝试使用 iText7 创建一个 PDF,其中包含存储在图像和相应编号中的问题。数字和图像必须放在同一页上,所以我使用 table 对象将它们放在一起;但是,图像 运行 超出了页面边缘。
Table table = new Table(UnitValue.CreatePercentArray(8)).UseAllAvailableWidth();
Cell cellQuestionNumber = new Cell().Add(questionNum).SetBorder(Border.NO_BORDER);
Cell cellImage = new Cell().Add(img).SetBorder(Border.NO_BORDER);
table.AddCell(cellQuestionNumber);
table.AddCell(cellImage);
document.Add(table);
我看到有些人在图片上使用 .SetAutoScaleWidth(true)
,但当我这样做时,图片会缩小到难以辨认的大小。
有什么建议吗?
这里不需要使用表格 - 您可以将要保留在一页中的元素添加到 Div
中,然后使用 setKeepTogether(true)
属性 来防止拆分Div
超过两页。
要确保图片占用的宽度不超过页面宽度,您可以将其最大宽度 属性 设置为 100%。
这是一个代码示例:
Image image = new Image(ImageDataFactory.create("C:\Users\Alexey\Desktop\Capture.PNG"));
Div div = new Div();
div.add(new Paragraph("#1.)"));
div.add(image.setMaxWidth(UnitValue.createPercentValue(100)));
div.setKeepTogether(true);
document.add(div);