MigraDoc.Rendering.ParagraphRenderer.Format C# (CSharp) Method

Format() private method

Formats the paragraph by performing line breaks etc.
private Format ( MigraDoc.Rendering.Area area, MigraDoc.Rendering.FormatInfo previousFormatInfo ) : void
area MigraDoc.Rendering.Area The area in which to render.
previousFormatInfo MigraDoc.Rendering.FormatInfo The format info that was obtained on formatting the same paragraph on a previous area.
return void
    internal override void Format(Area area, FormatInfo previousFormatInfo)
    {
      ParagraphFormatInfo formatInfo = ((ParagraphFormatInfo)this.renderInfo.FormatInfo);
      if (!InitFormat(area, previousFormatInfo))
      {
        formatInfo.isStarting = false;
        return;
      }
      formatInfo.isEnding = true;

      FormatResult lastResult = FormatResult.Continue;
      while (this.currentLeaf != null)
      {
        FormatResult result = FormatElement(this.currentLeaf.Current);
        switch (result)
        {
          case FormatResult.Ignore:
            this.currentLeaf = this.currentLeaf.GetNextLeaf();
            break;

          case FormatResult.Continue:
            lastResult = result;
            this.currentLeaf = this.currentLeaf.GetNextLeaf();
            break;

          case FormatResult.NewLine:
            lastResult = result;
            StoreLineInformation();
            if (!StartNewLine())
            {
              result = FormatResult.NewArea;
              formatInfo.isEnding = false;
            }
            break;
        }
        if (result == FormatResult.NewArea)
        {
          lastResult = result;
          formatInfo.isEnding = false;
          break;
        }
      }
      if (formatInfo.IsEnding && lastResult != FormatResult.NewLine)
        StoreLineInformation();

      formatInfo.imageRenderInfos = this.imageRenderInfos;
      FinishLayoutInfo();
    }
ParagraphRenderer