如何使用 MigraDoc (C#) 在 PDF 中将图像并排放置

How to put images next to each other in a PDF using MigraDoc (C#)

我有一个 table 单元格,我想在其中将两张图片并排放置。好像不太对。

var imageIndex = 0;
foreach (var fileName in fileNames)
{
    var image = new Image(fileName)
    {
        WrapFormat =
        {
            DistanceTop = 10,
            DistanceRight = 10,
            DistanceLeft = imageIndex * imageSize
        },
        Width = imageSize,
        Height = imageSize
    };

    row.Cells[0].Add(image);
    imageIndex++;
}

MigraDoc samples 使用 RelativeHorizontal/RelativeVertical 投放广告,但我无法理解如何做。只有图片和文字的例子,没有2张图片的例子。

最简单的解决方案:在 table 单元格中添加一个段落,将两个图像都添加到该段落中,并在它们之间添加 non-breaking 个空格作为距离。
如果两个图像具有(几乎)相同的高度,这就可以正常工作。
在这种情况下,图像将由普通文本布局器处理。

另一个简单的解决方案:为每个图像创建一个单独的单元格。如果您不希望额外的单元格在那里可见,您可以在其他行中使用 MergeRight

您可以使用 RelativeHorizontalRelativeVertical 将图像从正常布局流中取出,但这会使事情变得有点复杂。据我所知,您必须设置 image.WrapFormat.Style = WrapStyle.Through; 才能完成这项工作。但是你还必须注意文本和图像不要重叠。