在MigraDoc中设置段落宽度的问题

时间:2013-11-27 22:07:24

标签: c# .net pdfsharp migradoc

如何在MigraDoc中设置段落宽度?我想象的只是创建表并设置列宽,然后段落填充所有宽度。但我需要下一个:

var paragraph016 = section.AddParagraph();
paragraph016.Format.Borders.Bottom.Visible = true;
paragraph016.Format.WidowControl = true;
//here must be define paragraph width

或者也许有人知道如何在页面上画线,我可以在哪里设置线条的宽度和位置?

2 个答案:

答案 0 :(得分:1)

您可以通过指定左右缩进来间接设置宽度。我不知道这是否会导致所需的线路,但值得一试。

表格可以使用。

图像也可以使用 - 最好使用矢量图像(可以是PDF),但是具有所需颜色的单个像素的光栅图像也应该有效。

答案 1 :(得分:1)

我使用段落宽度作为我的'添加水平规则'辅助方法的一部分。使用左右缩进效果很好:

public static void AddHorizontalRule(Section section, double percentWidth, Color? color = null)
{
    double percent = (percentWidth < 0.0 || percentWidth > 1.0) ? 1.0 : percentWidth;
    Color hrColor = color ?? new Color(96, 96, 96); // Lt Grey default

    Unit contentWidth = section.PageSetup.PageWidth - section.PageSetup.LeftMargin - section.PageSetup.RightMargin;
    Unit indentSize = (contentWidth - (percent * contentWidth)) / 2.0;
    Paragraph paragraph = section.AddParagraph();
    paragraph.Format.LeftIndent = indentSize;
    paragraph.Format.RightIndent = indentSize;
    paragraph.Format.Borders.Top.Visible = true;
    paragraph.Format.Borders.Left.Visible = false;
    paragraph.Format.Borders.Right.Visible = false;
    paragraph.Format.Borders.Bottom.Visible = false;
    paragraph.Format.Borders.Top.Color = hrColor;
}

请注意,因为部分的PageSetup值为0,因此使用默认文档设置(如上所示使用客户区宽度),您需要在调用此方法之前在section.PageSetup中显式设置这些值。我是这样做的,所以我不必传递文件也不必依赖document.LastSection是我正在处理的部分。我只是传入一个Section对象并拥有它。

享受! 布赖恩