C# 单元格内的图像与文档中的其他单元格重叠

C# 单元格内的图像与文档中的其他单元格重叠,c#,pdf,migradoc,C#,Pdf,Migradoc,我想在MigraDoc的tables单元格中放置一个图像,但最终图像会拉伸整行。简化代码的部分如下所示: table = sec.AddTable(); table.Borders.Width = 0.1; //only for visualization column = table.AddColumn("6cm"); column = table.AddColumn("7.5cm"); column = table.AddColumn("2.5cm"); row = table.AddR

我想在MigraDoc的tables单元格中放置一个图像,但最终图像会拉伸整行。简化代码的部分如下所示:

table = sec.AddTable();
table.Borders.Width = 0.1; //only for visualization

column = table.AddColumn("6cm");
column = table.AddColumn("7.5cm");
column = table.AddColumn("2.5cm");

row = table.AddRow();
row[0].AddParagraph("title");
row[1].AddImage("C:\\sample.jpg").Width = "3cm";
row = table.AddRow();
row[0].AddParagraph("   - some text");
row = table.AddRow();
row[0].AddParagraph("   - some text");
row = table.AddRow();
row[0].AddParagraph("   - some text");
row = table.AddRow();
row[2].AddParagraph("0.00$");

下面的第一个图像显示结果,第二个图像显示所需的效果。

当您为图像设置
.WrapFormat.Style=WrapStyle.to
时,布局器将忽略图像,并且行的高度将不适应图像

如果表格有边框,则可能需要在表格后添加图像,以便在表格顶部绘制

一个简单的替代方法是对带有图像的表格单元格使用
.MergeDown
。这类似于HTML中的RowSpan。在这种情况下,表格将增长以适合图像,因此您无法获得第二个图像的效果(图像延伸到表格下方)。
这避免了WrapStyle.Through带来的复杂性,如果您必须处理许多不同大小的图像,并且如果表格不能容纳一个页面,则应该为您提供干净的分页符

发票样本在表中不使用图像,但使用了
MergeDown