我想在MigraDoc中的一个表格单元格中放置一个图像,但最终我的图像会拉伸整行。简化代码的一部分如下所示:
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$");
答案 0 :(得分:1)
当您为图像设置.WrapFormat.Style = WrapStyle.Through
时,图像将被图层忽略,行的高度将不会适应图像。
如果表格有边框,那么您可能需要在表格后面添加图片,以便在桌面上绘制图片。
一个简单的替代方法是将.MergeDown
用于表格单元格和图像。这就像HTML中的RowSpan。在这种情况下,表格将增长以适合图像,因此您无法获得第二张图像的效果(图像延伸到表格下方)。
这样可以避免WrapStyle.Through带来的复杂问题,如果您必须处理许多不同的图像大小,并且如果表格不适合单个页面,则应该为您提供干净的分页符。
“发票”示例不使用表格中的图像,但使用了MergeDown
:
http://pdfsharp.net/wiki/Invoice-sample.ashx