C# 在表格单元格中如何停止iText7图像切断

C# 在表格单元格中如何停止iText7图像切断,c#,.net,itext,itext7,C#,.net,Itext,Itext7,我正在尝试使用iText7创建一个PDF,其中包含存储在图像和相应数字中的问题。数字和图像必须保持在同一页上,因此我使用表对象将它们保持在一起;但是,图像会从页面边缘溢出 Table table = new Table(UnitValue.CreatePercentArray(8)).UseAllAvailableWidth(); Cell cellQuestionNumber = new Cell().Add(questionNum).SetBorder(Border.NO_BORDER);

我正在尝试使用iText7创建一个PDF,其中包含存储在图像和相应数字中的问题。数字和图像必须保持在同一页上,因此我使用表对象将它们保持在一起;但是,图像会从页面边缘溢出

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);