【问题标题】:Issue with set up paragraph width in MigraDoc在 MigraDoc 中设置段落宽度的问题
【发布时间】:2013-11-27 22:07:23
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# .net pdfsharp migradoc


    【解决方案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;
    }
    

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

    享受吧! 布赖恩

    【讨论】:

      【解决方案2】:

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

      一张桌子就可以了。

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

      【讨论】:

      • 感谢您的帮助,但我创建了一种方法,其中插入宽度和值,并通过具有固定列和 MergeRight 属性的表格显示在页面中。
      猜你喜欢
      • 1970-01-01
      • 2013-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多