iTextSharp.text.rtf.list.RtfList.WriteDefinition C# (CSharp) Method

WriteDefinition() public method

public WriteDefinition ( Stream result ) : void
result Stream
return void
        public void WriteDefinition(Stream result)
        {
            byte[] t;
            result.Write(OPEN_GROUP, 0, OPEN_GROUP.Length);
            result.Write(LIST, 0, LIST.Length);
            result.Write(LIST_TEMPLATE_ID, 0, LIST_TEMPLATE_ID.Length);
            result.Write(t = IntToByteArray(document.GetRandomInt()), 0, t.Length);

            int levelsToWrite = -1;
            
            switch (this.listType) {
            case LIST_TYPE_NORMAL:
                levelsToWrite = listLevels.Count;
                break;
            case LIST_TYPE_SIMPLE:
                result.Write(LIST_SIMPLE, 0, LIST_SIMPLE.Length);
                result.Write(t = IntToByteArray(1), 0, t.Length); 
                levelsToWrite = 1;
                break;
            case LIST_TYPE_HYBRID:
                result.Write(LIST_HYBRID, 0, LIST_HYBRID.Length);
                levelsToWrite = listLevels.Count;
                break;
            default:
                break;
            }
            this.document.OutputDebugLinebreak(result);

            // TODO: Figure out hybrid because multi-level hybrid does not work.
            // Seems hybrid is mixed type all single level - Simple = single level
            // SIMPLE1/HYRBID
            // 1. Line 1
            // 2. Line 2
            // MULTI-LEVEL LISTS Are Simple0 - 9 levels (0-8) all single digit
            // 1. Line 1
            // 1.1. Line 1.1
            // 1.2. Line 1.2
            // 2. Line 2
             
            // write the listlevels here
            for (int i = 0; i<levelsToWrite; i++) {
                ((RtfListLevel)listLevels[i]).WriteDefinition(result);
                this.document.OutputDebugLinebreak(result);
            }
            
            result.Write(LIST_ID, 0, LIST_ID.Length);
            result.Write(t = IntToByteArray(this.listID), 0, t.Length);
            result.Write(CLOSE_GROUP, 0, CLOSE_GROUP.Length);
            this.document.OutputDebugLinebreak(result);
            if (items != null) {
            for (int i = 0; i < items.Count; i++) {
                RtfElement rtfElement = (RtfElement) items[i];
                if (rtfElement is RtfList) {
                    RtfList rl = (RtfList)rtfElement;
                    rl.WriteDefinition(result);
                    break;
                } else if (rtfElement is RtfListItem) {
                    RtfListItem rli = (RtfListItem) rtfElement;
                    if (rli.WriteDefinition(result)) break;
                }
            }    
            }
        }
        

Usage Example

Beispiel #1
0
 /**
  * Writes the definition of the first element in this RtfListItem that is
  * an is {@link RtfList} to the given stream.<br>
  * If this item does not contain a {@link RtfList} element nothing is written
  * and the method returns <code>false</code>.
  *
  * @param out destination stream
  * @return <code>true</code> if a RtfList definition was written, <code>false</code> otherwise
  * @throws IOException
  * @see {@link RtfList#writeDefinition(Stream)}
  */
 public bool WriteDefinition(Stream outp)
 {
     for (int i = 0; i < chunks.Count; i++)
     {
         IRtfBasicElement rtfElement = (IRtfBasicElement)chunks[i];
         if (rtfElement is RtfList)
         {
             RtfList rl = (RtfList)rtfElement;
             rl.WriteDefinition(outp);
             return(true);
         }
     }
     return(false);
 }
All Usage Examples Of iTextSharp.text.rtf.list.RtfList::WriteDefinition