NRtfTree Changelog

Version 0.3 Final (0.3.3503)

New features

  • New test project (NUnit).

Updated

  • Version numbering scheme updated to “major.minor.build.revision”.
  • SimpleDemo project updated to console application.

Bugfixes

  • Removed redundant code in RtfLex.
  • ImageNode ScaleX and ScaleY properties returned incorrect values.
  • RtfTreeNode.Rtf property inserted incorrect blank spaces when MergeSpecialCharacters property is true.
  • RtfTree.Text property returned non-document-text characters in images, objects and field nodes.
  • New method RtfTreeNode.SelectSingleChildGroup().

Version 0.3.0 beta 2

New features

  • Performance greatly improved.
  • New class RtfMerger.
  • New class RtfDocFormat.
  • New class RtfParFormat.
  • New enum TextAlignment.
  • New class RtfStyleSheetTable.
  • New class RtfStyleSheet.
  • New class RtfStyleSheetType.
  • Class RtfTree:
    • New method CloneTree().
    • New property MainGroup.
    • New method GetStyleSheetTable().
  • Class RtfTreeNode:
    • New property Index.
    • New method SelectGroups(string keyword).
    • New method SelectSingleGroup(string keyword).
    • New method SelectChildGroups(string keyword).
    • New method FindText(string txt).
    • New method ReplaceText(string txt).
    • New indexer this[int childIndex].
  • Class RtfNodeCollection:
    • New method IndexOf(string keyword).
    • New method IndexOf(RtfTreeNode node, int startIndex).
    • New method IndexOf(string keyword, int startIndex).
  • Class RtfDocument:
    • New method UpdateDocFormat(RtfDocFormat fmt).
    • New method UpdateCharFormat(RtfCharFormat fmt).
    • New method UpdateParFormat(RtfParFormat fmt).
    • New methods SetFormatXXX().
    • New method AddNewLine(int n).
    • New method AddNewParagraph().
    • New method AddNewParagraph(int n).
    • New method ResetFormat().
    • New method ResetCharFormat().
    • New method ResetParFormat().
  • Class ImageNode:
    • New property Bitmap.
  • New demo projects:
    • New folder Examples.
    • New demo application: Rtf2Html.

Updated

  • GetColorTable() and GetFontTable() updated. Now they return RtfColorTable y RtfFontTable objects.
  • Use of public properties in RtfTextFormat class.
  • Renamed RtfTextFormat class to RtfCharFormat.
  • RtfTreeNode.children field remains null if node hasn’t child nodes.

Bugfixes

  • Corrected initialization of StringBuilder object to avoid out of memory exception.
  • RtfFontTable class now uses internally a Dictionary. It must access fonts by \f keyword parameter, not by index.
  • Updated RtfTreeNode.getRtfInm() method. It inserted an incorrect blank space after GROUP nodes.
  • Characters ‘{‘, ‘}’ and ‘\\’ aren’t prefixed with ‘\\’ in RtfTreeNode.AppendEncoded() method.

Version 0.3.0 beta 1

New features

  • New license: LGPL.
  • New classes to create RTF documents (basic support in beta): RtfDocument, RtfColorTable, RtfFontTable and RtfTextFormat.
  • RtfTree class:
    • New property MergeSpecialCharacters. When it is set to true, if special character is found (\’) it is converted to Text node and eventually merged to adjacent text nodes.
    • New property Text. Returns plain text from the RTF document.
    • New method GetEncoding(). Returns document encoding.
  • RtfTreeNode class:
    • New property Tree. Returns a reference to owner RTF tree.
    • New method To String(). – New method InsertChild(). Inserts a new node at the specified location.
    • Methods SelectXXXByType have been replaced by SelectXXX() overloads.
    • New methods SelectSibling() (3 overloads).
  • RtfNodeCollection class:
    • New method Insert(). Inserts a new node at the specified location.
    • New method RemoveRange(). Remove a range of nodes from the list.
  • InfoGroup class:
    • New method ToString().

Updated

  • Group and Root node types initialization with “ROOT” and “GROUP”.
  • NRtfTree.Rtf property didn’t include last ‘}’ in a group node RTF code.
  • NRtfTree does not treat correctly special characters ‘\’, ‘{‘ and ‘}’ as part of the text.
  • Methods RtfTreeNode.AppendChild() and InsertChild() should update Root and Tree properties recursively.

Version 0.2.1

Bugfixes

  • Bug in SaveRtf() [Hex numbers with 1 digit].
  • New personal home page and file headers.

Version 0.2.0

New features

  • New namespaces
    • Net.Sgoliver.NRtfTree.Core –> Base classes
    • Net.Sgoliver.NRtfTree.Util –> Special classes (ImageNode, ObjectNode, InfoGroup)
  • Class RtfTreeNode:
    • New properties: LastChild, NextSibling, PreviousSibling y Rtf.
    • New private methods: getRtf() y getRtfInm() [Se han pasado desde RtfTree a RtfTreeNode].
    • New public methods: CloneNode(), HasChildNodes(), SelectSingleNode(), SelectSingleChildNode(), SelectChildNodes(), SelectNodes(), SelectSingleChildNodeType()
    • Rtf property is now implemented using StringBuilder class [efficiency].
    • New indexer to access child nodes. [ = SelectSingleChildNode() ]
  • Class RtfTree:
    • Removed private methods: getRtf() y getRtfInm() [ moved to RtfTreeNode class ]
    • toStringInm() method is now implemented using StringBuilder class [efficiency].
    • New public methods: ToStringEx(), SaveRtf(), GetColorTable() y GetFontTable() y GetInfoGroup().
    • New parameter ‘showNodeTypes’ in method toStringInm().
  • Class RtfNodeCollection:
    • New public methods: IndexOf(), AddRange()
  • Class RtfLex:
    • ParseText() and ParseKeyword() are now implemented using StringBuilder class [efficiency].
    • In this versión, there is only one construtor that receive a TextReader parameter.
    • Now, parseText() method ignore new lines, tabs and null characters.
  • New classes:
    • ImageNode
    • ObjectNode
    • InfoGroup
Versión 0.3.0 beta 2
, , ,