在MigraDoc图和表之间水平分割部分

本文关键字:水平 分割部 之间 MigraDoc | 更新日期: 2023-09-27 18:17:32

我有以下元素:

1. MigraDoc.DocumentObjectModel.Shapes.Charts.Chart
2. MigraDoc.DocumentObjectModel.Tables.Table

我想在图表(1)的右侧显示数据表(2)。有点像图例,但包含更多信息。这个自定义表将提供比标准图例更多的信息。

出于某种原因,我可以使用:

PdfDoc.LastSection.Add(Chart);
PdfDoc.LastSection.Add(Table);

但这是垂直加法。我可以水平放置它们吗?

在MigraDoc图和表之间水平分割部分

有几种方法可以将项目水平放置。

图表源自Shape,可以放置在任何位置(绝对位置或相对位置)。表格可以放在TextFrame中,TextFrame也派生自Shape。不过,形状的放置有点棘手。

我很可能会使用表格,并将图表放在表格的一个单元格中。使用MergeDown和MergeRight,你几乎可以创建任何东西。

示例:图例需要两列六行。创建一个包含三列和六(或七)行的表,为第一列中的第一个单元格设置MergeDown=5(或6)。只能为第2列和第3列以及前6行中的单元格设置边框。如果图例可能比图表短,则应使用7行。如果你知道图例比图表长,那么6行就足够了。

注意:MergeDown=5将创建一个跨6行的单元格。

Invoice示例显示了工作中的MergeDown和MergeRight:
http://www.pdfsharp.net/wiki/Invoice-sample.ashx