private void writeField(Stream str) { // always hide the toc entry str.WriteByte(RtfWriter.openGroup); str.WriteByte(RtfWriter.escape); str.Write(ASCIIEncoding.ASCII.GetBytes("v"), 0, ASCIIEncoding.ASCII.GetBytes("v").Length); // tc field entry str.WriteByte(RtfWriter.openGroup); str.WriteByte(RtfWriter.escape); if (!hidePageNumber) { str.Write(ASCIIEncoding.ASCII.GetBytes("tc"), 0, ASCIIEncoding.ASCII.GetBytes("tc").Length); } else { str.Write(ASCIIEncoding.ASCII.GetBytes("tcn"), 0, ASCIIEncoding.ASCII.GetBytes("tcn").Length); } str.WriteByte(RtfWriter.delimiter); str.Write(ASCIIEncoding.ASCII.GetBytes(RtfWriter.filterSpecialChar(entryName)), 0, ASCIIEncoding.ASCII.GetBytes(RtfWriter.filterSpecialChar(entryName)).Length); str.WriteByte(RtfWriter.delimiter); str.WriteByte(RtfWriter.closeGroup); str.WriteByte(RtfWriter.closeGroup); }
public void Write(RtfWriter writer, Stream str) { if (!hideText) { writer.writeInitialFontSignature(str, new Chunk("", contentFont)); str.Write(ASCIIEncoding.ASCII.GetBytes(RtfWriter.filterSpecialChar(content.ToString())), 0, ASCIIEncoding.ASCII.GetBytes(RtfWriter.filterSpecialChar(content.ToString())).Length); writer.writeFinishingFontSignature(str, new Chunk("", contentFont)); } if (!entryFont.Equals(contentFont)) { writer.writeInitialFontSignature(str, new Chunk("", entryFont)); writeField(str); writer.writeFinishingFontSignature(str, new Chunk("", entryFont)); } else { writer.writeInitialFontSignature(str, new Chunk("", contentFont)); writeField(str); writer.writeFinishingFontSignature(str, new Chunk("", contentFont)); } }
public void Write(RtfWriter writer, Stream str) { writer.writeInitialFontSignature(str, this); byte[] tmp = System.Text.ASCIIEncoding.ASCII.GetBytes(RtfWriter.filterSpecialChar(content.ToString())); str.Write(tmp, 0, tmp.Length); writer.writeFinishingFontSignature(str, this); if (addTOCAsTOCEntry) { RtfTOCEntry entry = new RtfTOCEntry(entryName, entryFont); entry.HideText(); try { writer.Add(entry); } catch (DocumentException de) { Console.WriteLine(de.StackTrace); throw new RuntimeException("underlying " + de.Message); } } // line break after headline str.WriteByte(RtfWriter.escape); str.Write(RtfWriter.paragraph, 0, RtfWriter.paragraph.Length); str.WriteByte(RtfWriter.delimiter); // toc field entry str.WriteByte(RtfWriter.openGroup); str.WriteByte(RtfWriter.escape); str.Write(RtfWriter.field, 0, RtfWriter.field.Length); // field initialization stuff str.WriteByte(RtfWriter.openGroup); str.WriteByte(RtfWriter.escape); str.Write(RtfWriter.fieldContent, 0, RtfWriter.fieldContent.Length); str.WriteByte(RtfWriter.delimiter); str.Write(ASCIIEncoding.ASCII.GetBytes("TOC"), 0, ASCIIEncoding.ASCII.GetBytes("TOC").Length); // create the TOC based on the 'toc entries' str.WriteByte(RtfWriter.delimiter); str.WriteByte(RtfWriter.escape); str.WriteByte(RtfWriter.escape); str.Write(ASCIIEncoding.ASCII.GetBytes("f"), 0, ASCIIEncoding.ASCII.GetBytes("f").Length); str.WriteByte(RtfWriter.delimiter); // create Hyperlink TOC Entrie str.WriteByte(RtfWriter.escape); str.WriteByte(RtfWriter.escape); str.Write(ASCIIEncoding.ASCII.GetBytes("h"), 0, ASCIIEncoding.ASCII.GetBytes("h").Length); str.WriteByte(RtfWriter.delimiter); // create the TOC based on the paragraph level str.WriteByte(RtfWriter.delimiter); str.WriteByte(RtfWriter.escape); str.WriteByte(RtfWriter.escape); str.Write(ASCIIEncoding.ASCII.GetBytes("u"), 0, ASCIIEncoding.ASCII.GetBytes("u").Length); str.WriteByte(RtfWriter.delimiter); // create the TOC based on the paragraph headlines 1-5 str.WriteByte(RtfWriter.delimiter); str.WriteByte(RtfWriter.escape); str.WriteByte(RtfWriter.escape); str.Write(ASCIIEncoding.ASCII.GetBytes("o"), 0, ASCIIEncoding.ASCII.GetBytes("o").Length); str.WriteByte(RtfWriter.delimiter); str.Write(ASCIIEncoding.ASCII.GetBytes("\"1-5\""), 0, ASCIIEncoding.ASCII.GetBytes("\"1-5\"").Length); str.WriteByte(RtfWriter.delimiter); str.WriteByte(RtfWriter.closeGroup); // field default result stuff str.WriteByte(RtfWriter.openGroup); str.WriteByte(RtfWriter.escape); str.Write(RtfWriter.fieldDisplay, 0, RtfWriter.fieldDisplay.Length); str.WriteByte(RtfWriter.delimiter); str.Write(ASCIIEncoding.ASCII.GetBytes(defaultText), 0, ASCIIEncoding.ASCII.GetBytes(defaultText).Length); str.WriteByte(RtfWriter.delimiter); str.WriteByte(RtfWriter.closeGroup); str.WriteByte(RtfWriter.closeGroup); }