KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > lowagie > text > rtf > RtfTOCEntry


1 /**
2  * $Id: RtfTOCEntry.java 2698 2007-04-19 12:03:08Z blowagie $
3  *
4  * Copyright 2002 by
5  * <a HREF="http://www.smb-tec.com">SMB</a>
6  * Steffen.Stundzig (Steffen.Stundzig@smb-tec.com)
7  *
8  * The contents of this file are subject to the Mozilla Public License Version 1.1
9  * (the "License"); you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at http://www.mozilla.org/MPL/
11  *
12  * Software distributed under the License is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14  * for the specific language governing rights and limitations under the License.
15  *
16  * The Original Code is 'iText, a free JAVA-PDF library'.
17  *
18  * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
19  * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
20  * All Rights Reserved.
21  * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
22  * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
23  *
24  * Contributor(s): all the names of the contributors are added in the source code
25  * where applicable.
26  *
27  * Alternatively, the contents of this file may be used under the terms of the
28  * LGPL license (the "GNU LIBRARY GENERAL PUBLIC LICENSE"), in which case the
29  * provisions of LGPL are applicable instead of those above. If you wish to
30  * allow use of your version of this file only under the terms of the LGPL
31  * License and not to allow others to use your version of this file under
32  * the MPL, indicate your decision by deleting the provisions above and
33  * replace them with the notice and other provisions required by the LGPL.
34  * If you do not delete the provisions above, a recipient may use your version
35  * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
36  *
37  * This library is free software; you can redistribute it and/or modify it
38  * under the terms of the MPL as stated above or under the terms of the GNU
39  * Library General Public License as published by the Free Software Foundation;
40  * either version 2 of the License, or any later version.
41  *
42  * This library is distributed in the hope that it will be useful, but WITHOUT
43  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
44  * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
45  * details.
46  *
47  * If you didn't download this code from the following link, you should check if
48  * you aren't using an obsolete version:
49  * http://www.lowagie.com/iText/
50  */

51
52 package com.lowagie.text.rtf;
53
54 import java.io.IOException JavaDoc;
55 import java.io.OutputStream JavaDoc;
56
57 import com.lowagie.text.Chunk;
58 import com.lowagie.text.Font;
59
60 /**
61  * This class can be used to insert entries for a table of contents into
62  * the RTF document.
63  *
64  * ONLY FOR USE WITH THE RtfWriter NOT with the RtfWriter2.
65  *
66  * This class is based on the RtfWriter-package from Mark Hall.
67  * @author Steffen.Stundzig (Steffen.Stundzig@smb-tec.com)
68  * @version $Revision: 2698 $Date: 2007/03/15 19:26:36 $
69  * @deprecated Please move to the RtfWriter2 and associated classes. com.lowagie.text.rtf.field.RtfTOCEntry replaces the functionality of this class.
70  */

71 public class RtfTOCEntry extends Chunk implements RtfField {
72
73
74     private boolean hideText = false;
75
76     private boolean hidePageNumber = false;
77
78     private String JavaDoc entryName;
79
80     private Font entryFont;
81
82     private Font contentFont;
83
84
85     /**
86      * Constructs an entry for the Table of Contents
87      * @param content the content of the entry
88      * @param contentFont the font
89      */

90     public RtfTOCEntry( String JavaDoc content, Font contentFont ) {
91         this( content, contentFont, content, contentFont );
92 // super( content, font );
93
// this.entryName = content;
94
// printEntryNameAsText = true;
95
}
96
97
98     /**
99      * Constructs an entry for the Table of Contents
100      * @param content the content of the entry
101      * @param contentFont the font
102      * @param entryName name of the entry
103      * @param entryFont font of the entryname
104      */

105     public RtfTOCEntry( String JavaDoc content, Font contentFont, String JavaDoc entryName, Font entryFont ) {
106         super( content, contentFont );
107         // hide the text of the entry, because it is printed
108
this.entryName = entryName;
109         this.entryFont = entryFont;
110         this.contentFont = contentFont;
111     }
112
113     /**
114      * @see com.lowagie.text.rtf.RtfField#write(com.lowagie.text.rtf.RtfWriter, java.io.OutputStream)
115      */

116     public void write( RtfWriter writer, OutputStream JavaDoc out ) throws IOException JavaDoc {
117
118         if (!hideText) {
119             writer.writeInitialFontSignature( out, new Chunk("", contentFont) );
120             out.write( RtfWriter.filterSpecialChar( getContent(), true ).getBytes() );
121             writer.writeFinishingFontSignature( out, new Chunk("", contentFont) );
122         }
123
124         if (!entryFont.equals( contentFont )) {
125             writer.writeInitialFontSignature(out, new Chunk("", entryFont) );
126             writeField( out );
127             writer.writeFinishingFontSignature(out, new Chunk("", entryFont) );
128         } else {
129             writer.writeInitialFontSignature(out, new Chunk("", contentFont) );
130             writeField( out );
131             writer.writeFinishingFontSignature(out, new Chunk("", contentFont) );
132         }
133     }
134
135     
136     private void writeField( OutputStream JavaDoc out ) throws IOException JavaDoc {
137         
138         // always hide the toc entry
139
out.write( RtfWriter.openGroup );
140         out.write( RtfWriter.escape );
141         out.write( "v".getBytes() );
142
143         // tc field entry
144
out.write( RtfWriter.openGroup );
145         out.write( RtfWriter.escape );
146         if (!hidePageNumber) {
147             out.write( "tc".getBytes() );
148         } else {
149             out.write( "tcn".getBytes() );
150         }
151         out.write( RtfWriter.delimiter );
152         out.write( RtfWriter.filterSpecialChar( entryName, true ).getBytes() );
153         out.write( RtfWriter.delimiter );
154         out.write( RtfWriter.closeGroup );
155
156         out.write( RtfWriter.closeGroup );
157     }
158
159     /**
160      * sets the hideText value to true
161      */

162     public void hideText() {
163         hideText = true;
164     }
165
166     /**
167      * sets the hidePageNumber value to true
168      */

169     public void hidePageNumber() {
170         hidePageNumber = true;
171     }
172 }
173
174
175
Popular Tags