コード例 #1
0
        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);
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
        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);
        }