如何用MigraDoc在单元格中将图像居中显示

16

我需要将一张图片放置在表格单元格的中心位置。当我在单元格中添加图片时,图片会被左上角对齐。如何使图片居中对齐于单元格?

4个回答

29

你可能需要在单元格中添加一个段落,设置段落的对齐方式,然后将图片添加到段落中。

row.Cells[0].Format.Alignment = ParagraphAlignment.Center;
row.Cells[0].VerticalAlignment = VerticalAlignment.Center;
row.Cells[0].AddParagraph().AddImage(imageLocation);

1
谢谢!这对我有用。应该将其标记为答案。 - saurabhj

6
row.Cells[0].Format.Alignment = ParagraphAlignment.Center;
row.Cells[0].VerticalAlignment = VerticalAlignment.Center;

2
它不起作用。我正在尝试做另一件事情。我正在尝试根据图像的大小设置单元格的宽度。我使用了“Column column = table.AddColumn(); column.Width = Image.FromFile(shotOfImplants).Width;”,但我得到的单元格与图像“shotOfImplants”的大小不同。 - Martina
3
只有当您的图片在单元格中的段落内时,此方法才有效。 - Reuben

-1
在我的MigraDoc版本中,Jeff和Reuben的解决方案并不像他们所说的那样有效:设置单元格的Format.Alignment属性没有效果,即使图像位于段落内部也是如此。
然而,对我而言有效的方法是将图像放入一个段落中,就像Jeff和Reuben所说的那样,然后给该段落一个包括居中的命名样式。
在我预定义所有样式的方法中,我会做一些类似这样的事情:
// Here we assume the "TableText" style has already been created

var sty = doc.Styles.AddStyle( "TableTextCenter", "TableText" );
sty.ParagraphFormat.Alignment = ParagraphAlignment.Center;

在我添加图片的那个点,我会这样做:

var para = table.Cells[ 0 ].AddParagraph();
para.Style = "TableTextCenter"; // <----- This is the magic!
var img = para.AddImage( imageFileSpec );
img.LockAspectRatio = true;
img.Width = "4cm";
img.WrapFormat = new WrapFormat {
  Style = WrapStyle.Through
};

-1

正如@Reuben所说,有趣的是:

row.Cells[0].AddParagraph().AddImage(imageLocation);

我正在尝试使用

row.Cells[0].AddImage(imageLocation);

图片已插入文档,但我无法使其居中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接