带左缩进的MigraDoc表边框问题

时间:2015-10-27 14:48:07

标签: c# pdfsharp migradoc

我尝试使用MigraDoc创建PDF文档,并且在表格包含左缩进时遇到表格边框问题。

我将数据传递给以下函数以呈现表格。

public void AddTable(int _iNumberOfColumns, double leftInd)
{
    table = section.AddTable();
    if (leftInd != 0d)
    {
        table.Format.LeftIndent = leftInd;
    }

    for (int i = 0; i < _iNumberOfColumns; i++)
    {
        Column col = table.AddColumn();
    }                
}

在上面的方法中,我为参数leftInd传递了一个double值。我相信这是问题的原因。

添加单元格的代码如下。我通过bool变量来决定是否需要显示单元格边框...(要添加一行我只是调用row = table.AddRow();

public void AddColumn(int _iCellNum, int iColspan, double dCellWidthInPt, System.Drawing.Color color, bool bTopBorder, bool bLeftBorder, bool bBottomBorder, bool bRightBorder)
{
    cell = row.Cells[_iCellNum];

    if (iColspan > 0)
    {
        cell.MergeRight = iColspan-1;
        for (int i = 0; i < iColspan; i++)
        {
            row.Cells[_iCellNum + i].Column.Width = new Unit(dCellWidthInPt, UnitType.Point);
        }
    }
    else
    {
        cell.Column.Width = new Unit(dCellWidthInPt, UnitType.Point);
    }
    //bRightBorder = bLeftBorder = bTopBorder = bBottomBorder = true;
    cell.Borders.Right.Visible = bRightBorder;
    cell.Borders.Left.Visible = bLeftBorder;
    cell.Borders.Top.Visible = bTopBorder;
    cell.Borders.Bottom.Visible = bBottomBorder;
    if (color!=null)
    {
        cell.Format.Shading.Color = new Color(color.A, color.R, color.G, color.B);
    }

}

我得到以下输出: - enter image description here

如果我删除了左缩进,则表格正确呈现(即左缩进没有将表格边框移动到左侧)。

我无法更改页面的页边距,因为此表是具有不同页边距的文档的一部分。同样地,我无法添加新的部分,因为这将添加新页面。

  

版本:

     

Migradoc:1.32.3885.0

     

pdfSharp:1.32.2608.0

有关我可能遗失的任何建议吗?

修改

这就是我想要实现的目标。与段落相比,了解表格从左侧开始的方式。要实现这一目标,我尝试使用table.Format.LeftIndent enter image description here

这是我得到的 enter image description here

1 个答案:

答案 0 :(得分:6)

要缩进表格,请设置table.Rows.LeftIndent。负值也有效。

正如评论中所写,table.Format.LeftIndent为表格单元格中的所有段落设置默认缩进,因此它会移动文本,但不移动边框。