/// <summary> /// Renders the list hashtable within the RTF header. /// </summary> private void RenderListTable() { if (this.listList.Count == 0) { return; } rtfWriter.StartContent(); rtfWriter.WriteControlWithStar("listtable"); foreach (object obj in this.listList) { ListInfo lst = (ListInfo)obj; ListInfoRenderer lir = new ListInfoRenderer(lst, this); lir.Render(); } rtfWriter.EndContent(); rtfWriter.StartContent(); rtfWriter.WriteControlWithStar("listoverridetable"); foreach (object obj in this.listList) { ListInfo lst = (ListInfo)obj; ListInfoOverrideRenderer lir = new ListInfoOverrideRenderer(lst, this); lir.Render(); } rtfWriter.EndContent(); }
/// <summary> /// Prepares this renderer by collecting Information for font and color table. /// </summary> private void Prepare() { this.fontList.Clear(); //Fonts this.fontList.Add("Symbol"); this.fontList.Add("Wingdings"); this.fontList.Add("Courier New"); this.colorList.Clear(); this.colorList.Add(Colors.Black);//!!necessary for borders!! this.listList.Clear(); ListInfoRenderer.Clear(); ListInfoOverrideRenderer.Clear(); CollectTables(this.document); }
/// <summary> /// Renders a ParagraphFormat object. /// </summary> internal override void Render() { _useEffectiveValue = true; //unfortunately has to be true always. Translate("Alignment", "q"); Translate("SpaceBefore", "sb"); Translate("SpaceAfter", "sa"); TranslateBool("WidowControl", "widctlpar", "nowidctlpar", false); Translate("PageBreakBefore", "pagebb"); Translate("KeepTogether", "keep"); Translate("KeepWithNext", "keepn"); Translate("FirstLineIndent", "fi"); Translate("LeftIndent", "li"); Translate("LeftIndent", "lin"); Translate("RightIndent", "ri"); Translate("RightIndent", "rin"); object ol = GetValueAsIntended("OutlineLevel"); if (ol != null && ((OutlineLevel)ol) != OutlineLevel.BodyText) { Translate("OutlineLevel", "outlinelevel"); } Unit lineSpc = (Unit)GetValueAsIntended("LineSpacing"); LineSpacingRule lineSpcRule = (LineSpacingRule)GetValueAsIntended("LineSpacingRule"); switch (lineSpcRule) { case LineSpacingRule.Exactly: // A bit strange, but follows the RTF specification: _rtfWriter.WriteControl("sl", ToTwips(-lineSpc.Point)); break; case LineSpacingRule.AtLeast: Translate("LineSpacing", "sl"); break; case LineSpacingRule.Multiple: _rtfWriter.WriteControl("sl", ToRtfUnit(lineSpc, RtfUnit.Lines)); break; case LineSpacingRule.Double: _rtfWriter.WriteControl("sl", 480); // equals 12 * 2 * 20 (Standard line height * 2 in twips) break; case LineSpacingRule.OnePtFive: _rtfWriter.WriteControl("sl", 360); // equals 12 * 1.5 * 20 (Standard lineheight * 1.5 in twips) break; } Translate("LineSpacingRule", "slmult"); object shad = GetValueAsIntended("Shading"); if (shad != null) { new ShadingRenderer((DocumentObject)shad, _docRenderer).Render(); } object font = GetValueAsIntended("Font"); if (font != null) { RendererFactory.CreateRenderer((Font)font, _docRenderer).Render(); } object brdrs = GetValueAsIntended("Borders"); if (brdrs != null) { BordersRenderer brdrsRndrr = new BordersRenderer((Borders)brdrs, _docRenderer); brdrsRndrr.ParentFormat = _format; brdrsRndrr.Render(); } object tabStops = GetValueAsIntended("TabStops"); if (tabStops != null) { RendererFactory.CreateRenderer((TabStops)tabStops, _docRenderer).Render(); } // TODO: ListInfo is still under construction. object listInfo = GetValueAsIntended("ListInfo"); if (listInfo != null) { int nr = ListInfoOverrideRenderer.GetListNumber((ListInfo)listInfo); if (nr > 0) { _rtfWriter.WriteControl("ls", nr); } } }
/// <summary> /// Renders the list hashtable within the RTF header. /// </summary> private void RenderListTable() { if (this.listList.Count == 0) return; rtfWriter.StartContent(); rtfWriter.WriteControlWithStar("listtable"); foreach (object obj in this.listList) { ListInfo lst = (ListInfo)obj; ListInfoRenderer lir = new ListInfoRenderer(lst, this); lir.Render(); } rtfWriter.EndContent(); rtfWriter.StartContent(); rtfWriter.WriteControlWithStar("listoverridetable"); foreach (object obj in this.listList) { ListInfo lst = (ListInfo)obj; ListInfoOverrideRenderer lir = new ListInfoOverrideRenderer(lst, this); lir.Render(); } rtfWriter.EndContent(); }