无法使用ASPOSE幻灯片设置表格单元格的边距

时间:2019-05-07 07:49:17

标签: c# asp.net powerpoint openxml aspose-slides

我在幻灯片中添加了一个表格,并且在表格中添加了一些文本行。我面临的问题是我无法减小单元格之间的间距/边距。我可以在打开ppt后设置top margin-bottom margin属性,它可以很好地减少单元格之间的空间。但是,通过代码无法实现同一件事。以下是我正在处理的示例代码。附件是我得到的ppt表部分的屏幕截图。 Current output

            ISlide sld = press.Slides[0];
            // Define columns with widths and rows with heights
            double[] dblC = { 300, 300 };
            double[] dblR = { 70, 70, 70 };

            ITable tblH = sld.Shapes.AddTable(100, 82, dblC, dblR);
            tblH.FirstRow = false;
            tblH.Rows[0].MinimalHeight = 0;
            tblH.Rows[1].MinimalHeight = 0;
            tblH.Rows[2].MinimalHeight = 0;

            ITextFrame txtFrame = tblH[0, 0].TextFrame;
            txtFrame.TextFrameFormat.MarginBottom = 50f;
            IParagraph paragraph = txtFrame.Paragraphs[0];
            IPortion portion = paragraph.Portions[0];
            portion.PortionFormat.LatinFont = new FontData("Arial");
            portion.PortionFormat.FontBold = NullableBool.True;
            portion.Text = "Some Text";
            portion.PortionFormat.FillFormat.FillType = FillType.Solid;
            portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
            portion.PortionFormat.FontHeight = 8;

            ITextFrame txtFrame1 = tblH[0, 1].TextFrame;
            txtFrame1.TextFrameFormat.MarginTop = 30f;
            IParagraph paragraph1 = txtFrame1.Paragraphs[0];
            IPortion portion1 = paragraph1.Portions[0];
            portion1.PortionFormat.LatinFont = new FontData("Arial");
            portion1.PortionFormat.FontBold = NullableBool.True;
            portion1.Text = "Some Text";
            txtFrame1.TextFrameFormat.ColumnSpacing = 5f;
            portion1.PortionFormat.FillFormat.FillType = FillType.Solid;
            portion1.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
            portion1.PortionFormat.FontHeight = 6;

            ITextFrame txtFrame2 = tblH[0, 2].TextFrame;
            txtFrame2.TextFrameFormat.MarginTop = 30f;
            IParagraph paragraph2 = txtFrame2.Paragraphs[0];
            IPortion portion2 = paragraph2.Portions[0];
            portion2.PortionFormat.LatinFont = new FontData("Arial");
            portion2.PortionFormat.FontBold = NullableBool.True;
            portion2.Text = "Some Text";
            portion2.PortionFormat.FillFormat.FillType = FillType.Solid;
            portion2.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
            portion2.PortionFormat.FontHeight = 5;

期望的输出将是应该减少单元格之间的间隔。请提出建议。

1 个答案:

答案 0 :(得分:2)

@pankaj,

能否请您共享要使用Aspose.Slides生成的所需输出演示文件。我将调查您的要求,并将在这方面为您提供所需信息提供进一步的帮助。

我还观察了您的示例代码,并且您使用的是TextFrame页边距。我想在这里补充一点,当您使用表格单元格时,需要直接设置表格单元格的边距。建议您考虑对代码进行以下修改以观察更改。

        tblH[0, 0].MarginBottom=50f;

我正在Aspose中担任支持开发人员/宣传人员。