NRtfTree v0.3 Final (0.3.3503)

List of changes:

  • New test project (NUnit).
  • Updated:
    • Version numbering scheme updated to “major.minor.build.revision”.
    • SimpleDemo project updated to console application.
  • Bug fixes:
    • 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().

NRtfTree v0.3.0 beta 2

List of changes:

  • 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.
  • Bug fixes:
    • 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.

NRtfTree v0.3.0 beta 1

List of changes:

  • 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().
  • Fixed Bugs:
    • 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.

NRtfTree v0.2.1

List of changes:

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

NRtfTree v0.2.0

List of changes:

General Changes:

  • 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