/// <summary>
 /// function that write the content
 /// </summary>
 /// <param name="content"></param>
 /// <param name="writer"></param>
 protected virtual void WriteInternal(PdfObjectBase content, PdfWriter writer)
 {
     if (content != null)
     {
         content.Write(writer);
     }
 }
 /// <summary>
 /// Write prepared object
 /// </summary>
 /// <param name="writer"></param>
 /// <param name="position"></param>
 public void Write(PdfWriter writer, long position)
 {
     if (contentForWriting != null)
     {
         Write(writer, contentForWriting, position);
         contentForWriting = null;
     }
 }
 /// <summary>
 /// write this object to writer
 /// </summary>
 /// <param name="writer"></param>
 /// <param name="content"></param>
 /// <param name="position"></param>
 public void Write(PdfWriter writer, PdfObjectBase content, long position)
 {
     offset = position;
     writer.Write(number);
     writer.WriteLn(" 0 obj");
     WriteInternal(content, writer);
     writer.WriteLn("");
     writer.WriteLn("endobj");
 }
 /// <summary>
 /// Prepare objectBase to writing later
 /// </summary>
 /// <param name="objectBase"></param>
 public void Prepare(PdfObjectBase objectBase)
 {
     contentForWriting = objectBase;
 }