1

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

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

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

4

2 回答 2

2

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

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 对象并拥有它。

享受!布赖恩

于 2016-10-26T16:48:52.233 回答
1

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

一张桌子就可以了。

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

于 2013-11-28T08:52:17.547 回答