Ejemplo n.º 1
0
 /// <summary>
 /// Adds one or more Character objects.
 /// </summary>
 public Character AddCharacter(SymbolName symbolType, int count)
 {
   Character character = new Character();
   this.Add(character);
   character.SymbolName = symbolType;
   character.Count = count;
   return character;
 }
Ejemplo n.º 2
0
 void RenderSpace(Character character)
 {
   this.currentXPosition += GetSpaceWidth(character);
 }
Ejemplo n.º 3
0
    void RenderSymbol(Character character)
    {
      string sym = GetSymbol(character);
      string completeWord = sym;
      for (int idx = 1; idx < character.Count; ++idx)
        completeWord += sym;

      RenderWord(completeWord);
    }
Ejemplo n.º 4
0
    /// <summary>
    /// Processes (measures) a special character within text.
    /// </summary>
    /// <param name="character">The character to process.</param>
    /// <returns>True if the character should start at a new line.</returns>
    FormatResult FormatCharacter(Character character)
    {
      switch (character.SymbolName)
      {
        case SymbolName.Blank:
        case SymbolName.Em:
        case SymbolName.Em4:
        case SymbolName.En:
          return FormatSpace(character);

        case SymbolName.LineBreak:
          return FormatLineBreak();

        case SymbolName.Tab:
          return FormatTab();

        default:
          return FormatSymbol(character);
      }
    }
Ejemplo n.º 5
0
    void RenderCharacter(Character character)
    {
      switch (character.SymbolName)
      {
        case SymbolName.Blank:
        case SymbolName.Em:
        case SymbolName.Em4:
        case SymbolName.En:
          RenderSpace(character);
          break;
        case SymbolName.LineBreak:
          RenderLinebreak();
          break;

        case SymbolName.Tab:
          RenderTab();
          break;

        default:
          RenderSymbol(character);
          break;
      }
    }
Ejemplo n.º 6
0
    static string GetSymbol(Character character)
    {
      char ch;
      switch (character.SymbolName)
      {
        case SymbolName.Euro:
          ch = '€';
          break;

        case SymbolName.Copyright:
          ch = '©';
          break;

        case SymbolName.Trademark:
          ch = '™';
          break;

        case SymbolName.RegisteredTrademark:
          ch = '®';
          break;

        case SymbolName.Bullet:
          ch = '•';
          break;

        case SymbolName.Not:
          ch = '¬';
          break;
        //REM: Non-breakable blanks are still ignored.
        //        case SymbolName.SymbolNonBreakableBlank:
        //          return "\xA0";
        //          break;

        case SymbolName.EmDash:
          ch = '—';
          break;

        case SymbolName.EnDash:
          ch = '–';
          break;

        default:
          char c = character.Char;
          char[] chars = System.Text.Encoding.Default.GetChars(new byte[] { (byte)c });
          ch = chars[0];
          break;
      }
      string returnString = "";
      returnString += ch;
      int count = character.Count;
      while (--count > 0)
        returnString += ch;
      return returnString;
    }
Ejemplo n.º 7
0
 FormatResult FormatSymbol(Character character)
 {
   return FormatWord(GetSymbol(character));
 }
Ejemplo n.º 8
0
 FormatResult FormatSpace(Character character)
 {
   XUnit width = GetSpaceWidth(character);
   return FormatAsWord(width);
 }
Ejemplo n.º 9
0
 XUnit GetSpaceWidth(Character character)
 {
   XUnit width = 0;
   switch (character.SymbolName)
   {
     case SymbolName.Blank:
       width = MeasureString(" ");
       break;
     case SymbolName.Em:
       width = MeasureString("m");
       break;
     case SymbolName.Em4:
       width = 0.25 * MeasureString("m");
       break;
     case SymbolName.En:
       width = MeasureString("n");
       break;
   }
   return width * character.Count;
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Adds a new Character
 /// </summary>
 public void Add(Character character)
 {
   this.Elements.Add(character);
 }
Ejemplo n.º 11
0
 void RenderSpace(Character character)
 {
     XUnit width = GetSpaceWidth(character);
     RenderUnderline(width, false);
     RealizeHyperlink(width);
     _currentXPosition += width;
 }
Ejemplo n.º 12
0
 /// <summary>
 /// Creates a new instance of the CharacterRenderer class.
 /// </summary>
 internal CharacterRenderer(DocumentObject domObj, RtfDocumentRenderer docRenderer)
     : base(domObj, docRenderer)
 {
     this.character = domObj as Character;
 }