将单元格中的图像对齐到右边不起作用

时间:2015-10-23 15:07:23

标签: pdfsharp migradoc

我需要在标题上对齐右边的图像。这是我的代码:

Section section = document.AddSection();
table = section.Headers.Primary.AddTable();

var column = table.AddColumn("5cm");
column.Format.Alignment = ParagraphAlignment.Left;

column = table.AddColumn("8cm");
column.Format.Alignment = ParagraphAlignment.Left;

column = table.AddColumn("4cm");
column.Format.Alignment = ParagraphAlignment.Right;

eRow.Cells[0].AddParagraph("Some text");
eRow.Cells[1].AddParagraph("Some text");

eRow.Cells[2].Format.Alignment = ParagraphAlignment.Right;

image = eRow.Cells[2].Elements.AddImage(imagePath);

image.LockAspectRatio = false;
image.Width = Unit.FromInch(0.16);
image.Height = Unit.FromInch(0.09);

image.RelativeVertical = RelativeVertical.Line;
image.RelativeHorizontal = RelativeHorizontal.Margin;
image.Top = ShapePosition.Top;
image.Left = ShapePosition.Right;
image.WrapFormat.Style = WrapStyle.Through;

但它始终在左边,请帮忙吗?

3 个答案:

答案 0 :(得分:4)

我知道有点晚了 但是你必须将你的图像包装在一个段落中。 http://forum.pdfsharp.net/viewtopic.php?f=2&t=158

类似的东西(我使用你的部分代码)

Section section = document.AddSection();
table = section.Headers.Primary.AddTable();

var column = table.AddColumn("5cm");

//I assume eRow is just a row added to your table
var eRow = table.AddRow();
var paragraph = eRow.Cells[0].AddParagraph();

//set the alignment on the paragraph object
paragraph.Format.Alignment = ParagraphAlignment.Right;
paragraph.AddImage(imagePath);

我在使用上面的代码/链接时遇到了同样的问题。

答案 1 :(得分:0)

image.RelativeVertical = RelativeVertical.Line;
image.RelativeHorizontal = RelativeHorizontal.Margin;
image.Top = ShapePosition.Top;
image.Left = ShapePosition.Right;
image.WrapFormat.Style = WrapStyle.Through;

逻辑上将图像从单元格中取出。这会创建一个可以出现在页面任何位置的图像,而不仅仅是在单元格内。

如果您只是删除这五行,也许它会起作用。如果您向Paragraph添加Cell并将Image添加到单元格,也许可行。

如果您提供了MCVE,如果我的建议有效,我会尝试过。但是你只显示一个代码片段。

image.LockAspectRatio = false;是多余的,但没有任何伤害。

答案 2 :(得分:-1)

如果您愿意的话,它将起作用:

row.Cells[1].AddParagraph().AddImage(fileName);
row.Cells[1].Format.Alignment = ParagraphAlignment.Right;