aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/lowagie/text/rtf/document
diff options
context:
space:
mode:
authortknall <tknall@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2008-11-25 12:04:30 +0000
committertknall <tknall@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2008-11-25 12:04:30 +0000
commit13d6dc3a6a5e8bd3c17997351a0e6f087eb301a2 (patch)
tree3ed3bcd97f1980169ef095a49f7facc8a0df0465 /src/main/java/com/lowagie/text/rtf/document
parentc68ad0ec056b37c82debebcecfcde1866d61b4d9 (diff)
downloadpdf-as-3-13d6dc3a6a5e8bd3c17997351a0e6f087eb301a2.tar.gz
pdf-as-3-13d6dc3a6a5e8bd3c17997351a0e6f087eb301a2.tar.bz2
pdf-as-3-13d6dc3a6a5e8bd3c17997351a0e6f087eb301a2.zip
Removing itext from source.
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@302 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c
Diffstat (limited to 'src/main/java/com/lowagie/text/rtf/document')
-rw-r--r--src/main/java/com/lowagie/text/rtf/document/RtfCodePage.java102
-rw-r--r--src/main/java/com/lowagie/text/rtf/document/RtfDocument.java301
-rw-r--r--src/main/java/com/lowagie/text/rtf/document/RtfDocumentHeader.java310
-rw-r--r--src/main/java/com/lowagie/text/rtf/document/RtfDocumentSettings.java182
-rw-r--r--src/main/java/com/lowagie/text/rtf/document/RtfInfoElement.java181
-rw-r--r--src/main/java/com/lowagie/text/rtf/document/RtfInfoGroup.java117
-rw-r--r--src/main/java/com/lowagie/text/rtf/document/RtfPageSetting.java435
-rw-r--r--src/main/java/com/lowagie/text/rtf/document/output/RtfDataCache.java86
-rw-r--r--src/main/java/com/lowagie/text/rtf/document/output/RtfDiskCache.java113
-rw-r--r--src/main/java/com/lowagie/text/rtf/document/output/RtfMemoryCache.java93
10 files changed, 0 insertions, 1920 deletions
diff --git a/src/main/java/com/lowagie/text/rtf/document/RtfCodePage.java b/src/main/java/com/lowagie/text/rtf/document/RtfCodePage.java
deleted file mode 100644
index e88a942..0000000
--- a/src/main/java/com/lowagie/text/rtf/document/RtfCodePage.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * $Id: RtfCodePage.java,v 1.16 2005/05/04 14:33:53 blowagie Exp $
- * $Name: $
- *
- * Copyright 2003, 2004 by Mark Hall
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the License.
- *
- * The Original Code is 'iText, a free JAVA-PDF library'.
- *
- * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
- * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
- * All Rights Reserved.
- * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
- * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
- *
- * Contributor(s): all the names of the contributors are added in the source code
- * where applicable.
- *
- * Alternatively, the contents of this file may be used under the terms of the
- * LGPL license (the ?GNU LIBRARY GENERAL PUBLIC LICENSE?), in which case the
- * provisions of LGPL are applicable instead of those above. If you wish to
- * allow use of your version of this file only under the terms of the LGPL
- * License and not to allow others to use your version of this file under
- * the MPL, indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by the LGPL.
- * If you do not delete the provisions above, a recipient may use your version
- * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the MPL as stated above or under the terms of the GNU
- * Library General Public License as published by the Free Software Foundation;
- * either version 2 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
- * details.
- *
- * If you didn't download this code from the following link, you should check if
- * you aren't using an obsolete version:
- * http://www.lowagie.com/iText/
- */
-
-package com.lowagie.text.rtf.document;
-
-import com.lowagie.text.rtf.RtfElement;
-import com.lowagie.text.rtf.RtfExtendedElement;
-
-import java.io.IOException;
-import java.io.ByteArrayOutputStream;
-
-/**
- * The RtfCodePage class allows different code pages to be used in the rtf document.
- * Currently always ansi / ansicpg1252
- *
- * Version: $Id: RtfCodePage.java,v 1.16 2005/05/04 14:33:53 blowagie Exp $
- * @author Mark Hall (mhall@edu.uni-klu.ac.at)
- */
-public class RtfCodePage extends RtfElement implements RtfExtendedElement {
- /**
- * Constant for ansi encoded rtf documents
- */
- private static final byte[] ANSI = "\\ansi".getBytes();
- /**
- * Constant for the ansi codepage
- */
- private static final byte[] ANSI_CODEPAGE = "\\ansicpg".getBytes();
-
- /**
- * Construct an RtfCodePage
- *
- * @param doc The RtfDocument this RtfCodePage belongs to
- */
- public RtfCodePage(RtfDocument doc) {
- super(doc);
- }
-
- /**
- * Writes the selected codepage to a byte array
- *
- * @return Byte array with the current codepage
- */
- public byte[] writeDefinition() {
- ByteArrayOutputStream result = new ByteArrayOutputStream();
- try {
- result.write(ANSI);
- result.write(ANSI_CODEPAGE);
- result.write(intToByteArray(1252));
- result.write((byte)'\n');
- } catch(IOException ioe) {
- ioe.printStackTrace();
- }
- return result.toByteArray();
- }
-}
diff --git a/src/main/java/com/lowagie/text/rtf/document/RtfDocument.java b/src/main/java/com/lowagie/text/rtf/document/RtfDocument.java
deleted file mode 100644
index 63f0321..0000000
--- a/src/main/java/com/lowagie/text/rtf/document/RtfDocument.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * $Id: RtfDocument.java,v 1.16 2005/12/24 13:14:59 hallm Exp $
- * $Name: $
- *
- * Copyright 2003, 2004, 2005 by Mark Hall
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the License.
- *
- * The Original Code is 'iText, a free JAVA-PDF library'.
- *
- * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
- * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
- * All Rights Reserved.
- * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
- * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
- *
- * Contributor(s): all the names of the contributors are added in the source code
- * where applicable.
- *
- * Alternatively, the contents of this file may be used under the terms of the
- * LGPL license (the ?GNU LIBRARY GENERAL PUBLIC LICENSE?), in which case the
- * provisions of LGPL are applicable instead of those above. If you wish to
- * allow use of your version of this file only under the terms of the LGPL
- * License and not to allow others to use your version of this file under
- * the MPL, indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by the LGPL.
- * If you do not delete the provisions above, a recipient may use your version
- * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the MPL as stated above or under the terms of the GNU
- * Library General Public License as published by the Free Software Foundation;
- * either version 2 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
- * details.
- *
- * If you didn't download this code from the following link, you should check if
- * you aren't using an obsolete version:
- * http://www.lowagie.com/iText/
- */
-
-package com.lowagie.text.rtf.document;
-
-import com.lowagie.text.DocumentException;
-import com.lowagie.text.rtf.RtfBasicElement;
-import com.lowagie.text.rtf.RtfElement;
-import com.lowagie.text.rtf.RtfMapper;
-import com.lowagie.text.rtf.document.output.RtfDataCache;
-import com.lowagie.text.rtf.document.output.RtfDiskCache;
-import com.lowagie.text.rtf.document.output.RtfMemoryCache;
-import com.lowagie.text.rtf.graphic.RtfImage;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-
-/**
- * The RtfDocument stores all document related data and also the main data stream.
- * INTERNAL CLASS - NOT TO BE USED DIRECTLY
- *
- * Version: $Id: RtfDocument.java,v 1.16 2005/12/24 13:14:59 hallm Exp $
- * @author Mark Hall (mhall@edu.uni-klu.ac.at)
- * @author Todd Bush (Todd.Bush@canopysystems.com) [Tab support]
- */
-public class RtfDocument extends RtfElement {
- /**
- * Stores the actual document data
- */
- private RtfDataCache data = null;
- /**
- * The RtfMapper to use in this RtfDocument
- */
- private RtfMapper mapper = null;
- /**
- * The RtfDocumentHeader that handles all document header methods
- */
- private RtfDocumentHeader documentHeader = null;
- /**
- * Stores integers that have been generated as unique random numbers
- */
- private ArrayList previousRandomInts = null;
- /**
- * Whether to automatically generate TOC entries for Chapters and Sections. Defaults to false
- */
- private boolean autogenerateTOCEntries = false;
- /**
- * Whether data has been written to the RtfDataCache.
- */
- private boolean dataWritten = false;
- /**
- * The RtfDocumentSettings for this RtfDocument.
- */
- private RtfDocumentSettings documentSettings = null;
- /**
- * The last RtfBasicElement that was added directly to the RtfDocument.
- */
- private RtfBasicElement lastElementWritten = null;
-
- /**
- * Constant for the Rtf document start
- */
- private static final byte[] RTF_DOCUMENT = "\\rtf1".getBytes();
-
- /**
- * The default constructor for a RtfDocument
- */
- public RtfDocument() {
- super(null);
- data = new RtfMemoryCache();
- mapper = new RtfMapper(this);
- documentHeader = new RtfDocumentHeader(this);
- documentHeader.init();
- previousRandomInts = new ArrayList();
- this.documentSettings = new RtfDocumentSettings(this);
- }
-
- /**
- * Writes the document
- *
- * @return A byte array containing the complete rtf document
- */
- public byte[] writeDocument() {
- ByteArrayOutputStream docStream = new ByteArrayOutputStream();
- try {
- docStream.write(OPEN_GROUP);
- docStream.write(RtfDocument.RTF_DOCUMENT);
- docStream.write(documentHeader.write());
- data.writeTo(docStream);
- docStream.write(CLOSE_GROUP);
- } catch(IOException ioe) {
- ioe.printStackTrace();
- }
- return docStream.toByteArray();
- }
-
- /**
- * Adds an element to the rtf document
- *
- * @param element The element to add
- */
- public void add(RtfBasicElement element) {
- try {
- if(element instanceof RtfInfoElement) {
- this.documentHeader.addInfoElement((RtfInfoElement) element);
- } else {
- this.dataWritten = true;
- if(element instanceof RtfImage) {
- ((RtfImage) element).setTopLevelElement(true);
- }
- data.getOutputStream().write(element.write());
- this.lastElementWritten = element;
- }
- } catch(IOException ioe) {
- ioe.printStackTrace();
- }
- }
-
- /**
- * Gets the RtfMapper object of this RtfDocument
- *
- * @return The RtfMapper
- */
- public RtfMapper getMapper() {
- return mapper;
- }
-
- /**
- * Generates a random integer that is unique with respect to the document.
- *
- * @return A random int
- */
- public int getRandomInt() {
- Integer newInt = null;
- do {
- newInt = new Integer((int) (Math.random() * Integer.MAX_VALUE));
- } while(previousRandomInts.contains(newInt));
- previousRandomInts.add(newInt);
- return newInt.intValue();
- }
-
- /**
- * Gets the RtfDocumentHeader of this RtfDocument
- *
- * @return The RtfDocumentHeader of this RtfDocument
- */
- public RtfDocumentHeader getDocumentHeader() {
- return this.documentHeader;
- }
-
- /**
- * Replaces special characters with their unicode values
- * @param str The original <code>String</code>
- * @param useHex indicated if the hexadecimal value has to be used
- * @param softLineBreaks whether to use soft line breaks instead of default hard ones.
- *
- * @return The converted String
- */
- public String filterSpecialChar(String str, boolean useHex, boolean softLineBreaks) {
- int length = str.length();
- int z = (int) 'z';
- StringBuffer ret = new StringBuffer(length);
- for (int i = 0; i < length; i++) {
- char ch = str.charAt(i);
-
- if (ch == '\\') {
- ret.append("\\\\");
- } else if (ch == '\n') {
- if(softLineBreaks) {
- ret.append("\\line ");
- } else {
- ret.append("\\par ");
- }
- } else if (ch == '\t') {
- ret.append("\\tab ");
- } else if (((int) ch) > z && this.documentSettings.isAlwaysUseUnicode()) {
- if(useHex) {
- ret.append("\\\'").append(Long.toHexString((long) ch));
- } else {
- ret.append("\\u").append((long) ch).append('?');
- }
- } else {
- ret.append(ch);
- }
- }
- String s = ret.toString();
- if(s.indexOf("$newpage$") >= 0) {
- String before = s.substring(0, s.indexOf("$newpage$"));
- String after = s.substring(s.indexOf("$newpage$") + 9);
- ret = new StringBuffer(before);
- ret.append("\\page\\par ");
- ret.append(after);
- return ret.toString();
- }
- return s;
- }
-
- /**
- * Whether to automagically generate table of contents entries when
- * adding Chapters or Sections.
- *
- * @param autogenerate Whether to automatically generate TOC entries
- */
- public void setAutogenerateTOCEntries(boolean autogenerate) {
- this.autogenerateTOCEntries = autogenerate;
- }
-
- /**
- * Get whether to autmatically generate table of contents entries
- *
- * @return Wheter to automatically generate TOC entries
- */
- public boolean getAutogenerateTOCEntries() {
- return this.autogenerateTOCEntries;
- }
-
- /**
- * Sets the rtf data cache style to use. Valid values are given in the
- * RtfDataCache class.
- *
- * @param dataCacheStyle The style to use.
- * @throws DocumentException If data has already been written into the data cache.
- * @throws IOException If the disk cache could not be initialised.
- */
- public void setDataCacheStyle(int dataCacheStyle) throws DocumentException, IOException {
- if(dataWritten) {
- throw new DocumentException("Data has already been written into the data cache. You can not change the cache style anymore.");
- }
- switch(dataCacheStyle) {
- case RtfDataCache.CACHE_MEMORY : this.data = new RtfMemoryCache(); break;
- case RtfDataCache.CACHE_DISK : this.data = new RtfDiskCache(); break;
- default : this.data = new RtfMemoryCache(); break;
- }
- }
-
- /**
- * Gets the RtfDocumentSettings that specify how the rtf document is generated.
- *
- * @return The current RtfDocumentSettings.
- */
- public RtfDocumentSettings getDocumentSettings() {
- return this.documentSettings;
- }
-
- /**
- * Gets the last RtfBasicElement that was directly added to the RtfDocument.
- *
- * @return The last RtfBasicElement that was directly added to the RtfDocument.
- */
- public RtfBasicElement getLastElementWritten() {
- return this.lastElementWritten;
- }
-}
diff --git a/src/main/java/com/lowagie/text/rtf/document/RtfDocumentHeader.java b/src/main/java/com/lowagie/text/rtf/document/RtfDocumentHeader.java
deleted file mode 100644
index 1ae8027..0000000
--- a/src/main/java/com/lowagie/text/rtf/document/RtfDocumentHeader.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * $Id: RtfDocumentHeader.java,v 1.16 2005/12/24 13:14:59 hallm Exp $
- * $Name: $
- *
- * Copyright 2003, 2004 by Mark Hall
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the License.
- *
- * The Original Code is 'iText, a free JAVA-PDF library'.
- *
- * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
- * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
- * All Rights Reserved.
- * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
- * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
- *
- * Contributor(s): all the names of the contributors are added in the source code
- * where applicable.
- *
- * Alternatively, the contents of this file may be used under the terms of the
- * LGPL license (the ?GNU LIBRARY GENERAL PUBLIC LICENSE?), in which case the
- * provisions of LGPL are applicable instead of those above. If you wish to
- * allow use of your version of this file only under the terms of the LGPL
- * License and not to allow others to use your version of this file under
- * the MPL, indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by the LGPL.
- * If you do not delete the provisions above, a recipient may use your version
- * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the MPL as stated above or under the terms of the GNU
- * Library General Public License as published by the Free Software Foundation;
- * either version 2 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
- * details.
- *
- * If you didn't download this code from the following link, you should check if
- * you aren't using an obsolete version:
- * http://www.lowagie.com/iText/
- */
-
-package com.lowagie.text.rtf.document;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-import com.lowagie.text.HeaderFooter;
-import com.lowagie.text.rtf.RtfElement;
-import com.lowagie.text.rtf.headerfooter.RtfHeaderFooter;
-import com.lowagie.text.rtf.headerfooter.RtfHeaderFooterGroup;
-import com.lowagie.text.rtf.list.RtfList;
-import com.lowagie.text.rtf.list.RtfListTable;
-import com.lowagie.text.rtf.style.RtfColor;
-import com.lowagie.text.rtf.style.RtfColorList;
-import com.lowagie.text.rtf.style.RtfFont;
-import com.lowagie.text.rtf.style.RtfFontList;
-import com.lowagie.text.rtf.style.RtfParagraphStyle;
-import com.lowagie.text.rtf.style.RtfStylesheetList;
-
-
-/**
- * The RtfDocumentHeader contains all classes required for the generation of
- * the document header area.
- *
- * @version $Version:$
- * @author Mark Hall (mhall@edu.uni-klu.ac.at)
- */
-public class RtfDocumentHeader extends RtfElement {
- /**
- * Constant for the title page
- */
- private static final byte[] TITLE_PAGE = "\\titlepg".getBytes();
- /**
- * Constant for facing pages
- */
- private static final byte[] FACING_PAGES = "\\facingp".getBytes();
-
- /**
- * The code page to use
- */
- private RtfCodePage codePage = null;
- /**
- * Stores all the colors used in the document
- */
- private RtfColorList colorList = null;
- /**
- * Stores all the fonts used in the document
- */
- private RtfFontList fontList = null;
- /**
- * Manages List tables
- */
- private RtfListTable listTable = null;
- /**
- * Stores all paragraph styles used in the document.
- */
- private RtfStylesheetList stylesheetList = null;
- /**
- * The information group with author/subject/keywords/title/producer/creationdate data
- */
- private RtfInfoGroup infoGroup = null;
- /**
- * The page settings
- */
- private RtfPageSetting pageSetting = null;
- /**
- * The current RtfHeaderFooterGroup for the header
- */
- private RtfHeaderFooterGroup header = null;
- /**
- * The current RtfHeaderFooterGroup for the footer
- */
- private RtfHeaderFooterGroup footer = null;
-
- /**
- * Constructs a RtfDocumentHeader for a RtfDocument
- *
- * @param doc The RtfDocument this RtfDocumentHeader belongs to
- */
- protected RtfDocumentHeader(RtfDocument doc) {
- super(doc);
- }
-
- /**
- * Initialises the RtfDocumentHeader.
- */
- protected void init() {
- this.codePage = new RtfCodePage(this.document);
- this.colorList = new RtfColorList(this.document);
- this.fontList = new RtfFontList(this.document);
- this.listTable = new RtfListTable(this.document);
- this.stylesheetList = new RtfStylesheetList(this.document);
- this.infoGroup = new RtfInfoGroup(this.document);
- this.pageSetting = new RtfPageSetting(this.document);
- this.header = new RtfHeaderFooterGroup(this.document, RtfHeaderFooter.TYPE_HEADER);
- this.footer = new RtfHeaderFooterGroup(this.document, RtfHeaderFooter.TYPE_FOOTER);
- }
-
- /**
- * Write the contents of the document header area.
- *
- * @return A byte array with the contents of the document header area
- */
- public byte[] write() {
- ByteArrayOutputStream result = new ByteArrayOutputStream();
- try {
- result.write(this.codePage.writeDefinition());
- result.write(this.fontList.writeDefinition());
- result.write(this.colorList.writeDefinition());
- result.write(this.stylesheetList.writeDefinition());
- result.write(this.listTable.writeDefinition());
- result.write(this.infoGroup.write());
- result.write(this.pageSetting.writeDefinition());
- result.write(writeSectionDefinition());
- } catch(IOException ioe) {
- ioe.printStackTrace();
- }
- return result.toByteArray();
- }
-
- /**
- * Writes the section definition data
- *
- * @return A byte array with the section definition data
- */
- public byte[] writeSectionDefinition() {
- ByteArrayOutputStream result = new ByteArrayOutputStream();
- try {
- if(header.hasTitlePage() || footer.hasTitlePage()) {
- result.write(TITLE_PAGE);
- header.setHasTitlePage();
- footer.setHasTitlePage();
- }
- if(header.hasFacingPages() || footer.hasFacingPages()) {
- result.write(FACING_PAGES);
- header.setHasFacingPages();
- footer.setHasFacingPages();
- }
- result.write(footer.write());
- result.write(header.write());
- result.write(pageSetting.writeSectionDefinition());
- } catch(IOException ioe) {
- ioe.printStackTrace();
- }
- return result.toByteArray();
- }
-
- /**
- * Gets the number of the specified RtfFont
- *
- * @param font The RtfFont for which to get the number
- * @return The number of the font
- */
- public int getFontNumber(RtfFont font) {
- return this.fontList.getFontNumber(font);
- }
-
- /**
- * Gets the number of the specified RtfColor
- *
- * @param color The RtfColor for which to get the number
- * @return The number of the color
- */
- public int getColorNumber(RtfColor color) {
- return this.colorList.getColorNumber(color);
- }
-
- /**
- * Gets the number of the specified RtfList
- *
- * @param list The RtfList for which to get the number
- * @return The number of the list
- */
- public int getListNumber(RtfList list) {
- return this.listTable.getListNumber(list);
- }
-
- /**
- * Gets the RtfParagraphStyle with the given style name.
- *
- * @param styleName The style name of the RtfParagraphStyle to get.
- * @return The RtfParagraphStyle with the given style name or null.
- */
- public RtfParagraphStyle getRtfParagraphStyle(String styleName) {
- return this.stylesheetList.getRtfParagraphStyle(styleName);
- }
-
- /**
- * Removes a RtfList from the list table
- *
- * @param list The RtfList to remove
- */
- public void freeListNumber(RtfList list) {
- this.listTable.freeListNumber(list);
- }
-
- /**
- * Gets the RtfPageSetting object of this RtfDocument
- *
- * @return The RtfPageSetting object
- */
- public RtfPageSetting getPageSetting() {
- return this.pageSetting;
- }
-
- /**
- * Adds an RtfInfoElement to the list of RtfInfoElements
- *
- * @param rtfInfoElement The RtfInfoElement to add
- */
- public void addInfoElement(RtfInfoElement rtfInfoElement) {
- this.infoGroup.add(rtfInfoElement);
- }
-
- /**
- * Sets the current header to use
- *
- * @param header The HeaderFooter to use as header
- */
- public void setHeader(HeaderFooter header) {
- if(header != null) {
- if(header instanceof RtfHeaderFooterGroup) {
- this.header = new RtfHeaderFooterGroup(this.document, (RtfHeaderFooterGroup) header, RtfHeaderFooter.TYPE_HEADER);
- } else if(header instanceof RtfHeaderFooter) {
- this.header = new RtfHeaderFooterGroup(this.document, (RtfHeaderFooter) header, RtfHeaderFooter.TYPE_HEADER);
- } else {
- this.header = new RtfHeaderFooterGroup(this.document, header, RtfHeaderFooter.TYPE_HEADER);
- }
- } else {
- this.header = new RtfHeaderFooterGroup(this.document, RtfHeaderFooter.TYPE_HEADER);
- }
- }
-
- /**
- * Sets the current footer to use
- *
- * @param footer The HeaderFooter to use as footer
- */
- public void setFooter(HeaderFooter footer) {
- if(footer != null) {
- if(footer instanceof RtfHeaderFooterGroup) {
- this.footer = new RtfHeaderFooterGroup(this.document, (RtfHeaderFooterGroup) footer, RtfHeaderFooter.TYPE_FOOTER);
- } else if(footer instanceof RtfHeaderFooter) {
- this.footer = new RtfHeaderFooterGroup(this.document, (RtfHeaderFooter) footer, RtfHeaderFooter.TYPE_FOOTER);
- } else {
- this.footer = new RtfHeaderFooterGroup(this.document, footer, RtfHeaderFooter.TYPE_FOOTER);
- }
- } else {
- this.footer = new RtfHeaderFooterGroup(this.document, RtfHeaderFooter.TYPE_FOOTER);
- }
- }
-
- /**
- * Registers the RtfParagraphStyle for further use in the document.
- *
- * @param rtfParagraphStyle The RtfParagraphStyle to register.
- */
- public void registerParagraphStyle(RtfParagraphStyle rtfParagraphStyle) {
- this.stylesheetList.registerParagraphStyle(rtfParagraphStyle);
- }
-}
diff --git a/src/main/java/com/lowagie/text/rtf/document/RtfDocumentSettings.java b/src/main/java/com/lowagie/text/rtf/document/RtfDocumentSettings.java
deleted file mode 100644
index 15b5b92..0000000
--- a/src/main/java/com/lowagie/text/rtf/document/RtfDocumentSettings.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * $Id: RtfDocumentSettings.java,v 1.4 2005/12/24 13:14:59 hallm Exp $
- * $Name: $
- *
- * Copyright 2003, 2004, 2005 by Mark Hall
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the License.
- *
- * The Original Code is 'iText, a free JAVA-PDF library'.
- *
- * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
- * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
- * All Rights Reserved.
- * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
- * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
- *
- * Contributor(s): all the names of the contributors are added in the source code
- * where applicable.
- *
- * Alternatively, the contents of this file may be used under the terms of the
- * LGPL license (the ?GNU LIBRARY GENERAL PUBLIC LICENSE?), in which case the
- * provisions of LGPL are applicable instead of those above. If you wish to
- * allow use of your version of this file only under the terms of the LGPL
- * License and not to allow others to use your version of this file under
- * the MPL, indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by the LGPL.
- * If you do not delete the provisions above, a recipient may use your version
- * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the MPL as stated above or under the terms of the GNU
- * Library General Public License as published by the Free Software Foundation;
- * either version 2 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
- * details.
- *
- * If you didn't download this code from the following link, you should check if
- * you aren't using an obsolete version:
- * http://www.lowagie.com/iText/
- */
-
-package com.lowagie.text.rtf.document;
-
-import com.lowagie.text.rtf.style.RtfParagraphStyle;
-
-
-/**
- * The RtfDocumentSettings contains output specific settings. These settings modify
- * how the actual document is then generated and some settings may mean that some
- * RTF readers can't read the document or render it wrongly.
- *
- * @version $Revision: 1.4 $
- * @author Mark Hall (mhall@edu.uni-klu.ac.at)
- */
-public class RtfDocumentSettings {
-
- /**
- * The RtfDocument this RtfDocumentSettings belongs to.
- */
- private RtfDocument document = null;
- /**
- * Whether to also output the table row definition after the cell content.
- */
- private boolean outputTableRowDefinitionAfter = true;
- /**
- * Whether to output the line breaks that make the rtf document source more readable.
- */
- private boolean outputDebugLineBreaks = true;
- /**
- * Whether to always generate soft linebreaks for \n in Chunks.
- */
- private boolean alwaysGenerateSoftLinebreaks = false;
- /**
- * Whether to always translate characters past 'z' into unicode representations.
- */
- private boolean alwaysUseUnicode = true;
-
-
- /**
- * Constructs a new RtfDocumentSettings object.
- *
- * @param document The RtfDocument this RtfDocumentSettings belong to.
- */
- public RtfDocumentSettings(RtfDocument document) {
- this.document = document;
- }
-
- /**
- * Gets whether to output the line breaks for increased rtf document readability.
- *
- * @return Whether to output line breaks.
- */
- public boolean isOutputDebugLineBreaks() {
- return outputDebugLineBreaks;
- }
-
- /**
- * Sets whether to output the line breaks for increased rtf document readability.
- * Some line breaks may be added where the rtf specification demands it.
- *
- * @param outputDebugLineBreaks The outputDebugLineBreaks to set.
- */
- public void setOutputDebugLineBreaks(boolean outputDebugLineBreaks) {
- this.outputDebugLineBreaks = outputDebugLineBreaks;
- }
-
- /**
- * Gets whether the table row definition should also be written after the cell content.
- *
- * @return Returns the outputTableRowDefinitionAfter.
- */
- public boolean isOutputTableRowDefinitionAfter() {
- return outputTableRowDefinitionAfter;
- }
-
- /**
- * Sets whether the table row definition should also be written after the cell content.
- * This is recommended to be set to <code>true</code> if you need Word2000 compatiblity and
- * <code>false</code> if the document should be opened in OpenOffice.org Writer.
- *
- * @param outputTableRowDefinitionAfter The outputTableRowDefinitionAfter to set.
- */
- public void setOutputTableRowDefinitionAfter(
- boolean outputTableRowDefinitionAfter) {
- this.outputTableRowDefinitionAfter = outputTableRowDefinitionAfter;
- }
-
- /**
- * Gets whether all linebreaks inside Chunks are generated as soft linebreaks.
- *
- * @return <code>True</code> if soft linebreaks are generated, <code>false</code> for hard linebreaks.
- */
- public boolean isAlwaysGenerateSoftLinebreaks() {
- return this.alwaysGenerateSoftLinebreaks;
- }
-
- /**
- * Sets whether to always generate soft linebreaks.
- *
- * @param alwaysGenerateSoftLinebreaks Whether to always generate soft linebreaks.
- */
- public void setAlwaysGenerateSoftLinebreaks(boolean alwaysGenerateSoftLinebreaks) {
- this.alwaysGenerateSoftLinebreaks = alwaysGenerateSoftLinebreaks;
- }
-
- /**
- * Gets whether all characters bigger than 'z' are represented as unicode.
- *
- * @return <code>True</code> if unicode representation is used, <code>false</code> otherwise.
- */
- public boolean isAlwaysUseUnicode() {
- return this.alwaysUseUnicode;
- }
-
- /**
- * Sets whether to represent all characters bigger than 'z' as unicode.
- *
- * @param alwaysUseUnicode <code>True</code> to use unicode representation, <code>false</code> otherwise.
- */
- public void setAlwaysUseUnicode(boolean alwaysUseUnicode) {
- this.alwaysUseUnicode = alwaysUseUnicode;
- }
-
- /**
- * Registers the RtfParagraphStyle for further use in the document. This does not need to be
- * done for the default styles in the RtfParagraphStyle object. Those are added automatically.
- *
- * @param rtfParagraphStyle The RtfParagraphStyle to register.
- */
- public void registerParagraphStyle(RtfParagraphStyle rtfParagraphStyle) {
- this.document.getDocumentHeader().registerParagraphStyle(rtfParagraphStyle);
- }
-}
diff --git a/src/main/java/com/lowagie/text/rtf/document/RtfInfoElement.java b/src/main/java/com/lowagie/text/rtf/document/RtfInfoElement.java
deleted file mode 100644
index 5549684..0000000
--- a/src/main/java/com/lowagie/text/rtf/document/RtfInfoElement.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * $Id: RtfInfoElement.java,v 1.16 2005/05/04 14:33:53 blowagie Exp $
- * $Name: $
- *
- * Copyright 2003, 2004 by Mark Hall
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the License.
- *
- * The Original Code is 'iText, a free JAVA-PDF library'.
- *
- * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
- * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
- * All Rights Reserved.
- * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
- * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
- *
- * Contributor(s): all the names of the contributors are added in the source code
- * where applicable.
- *
- * Alternatively, the contents of this file may be used under the terms of the
- * LGPL license (the ?GNU LIBRARY GENERAL PUBLIC LICENSE?), in which case the
- * provisions of LGPL are applicable instead of those above. If you wish to
- * allow use of your version of this file only under the terms of the LGPL
- * License and not to allow others to use your version of this file under
- * the MPL, indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by the LGPL.
- * If you do not delete the provisions above, a recipient may use your version
- * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the MPL as stated above or under the terms of the GNU
- * Library General Public License as published by the Free Software Foundation;
- * either version 2 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
- * details.
- *
- * If you didn't download this code from the following link, you should check if
- * you aren't using an obsolete version:
- * http://www.lowagie.com/iText/
- */
-
-package com.lowagie.text.rtf.document;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import com.lowagie.text.Meta;
-import com.lowagie.text.rtf.RtfElement;
-
-
-/**
- * Stores one information group element. Valid elements are
- * author, title, subject, keywords, producer and creationdate.
- *
- * @version $Version:$
- * @author Mark Hall (mhall@edu.uni-klu.ac.at)
- */
-public class RtfInfoElement extends RtfElement {
-
- /**
- * Constant for the author element
- */
- private static final byte[] INFO_AUTHOR = "\\author".getBytes();
- /**
- * Constant for the subject element
- */
- private static final byte[] INFO_SUBJECT = "\\subject".getBytes();
- /**
- * Constant for the keywords element
- */
- private static final byte[] INFO_KEYWORDS = "\\keywords".getBytes();
- /**
- * Constant for the title element
- */
- private static final byte[] INFO_TITLE = "\\title".getBytes();
- /**
- * Constant for the producer element
- */
- private static final byte[] INFO_PRODUCER = "\\operator".getBytes();
- /**
- * Constant for the creationdate element
- */
- private static final byte[] INFO_CREATION_DATE = "\\creationdate".getBytes();
-
- /**
- * The type of this RtfInfoElement. The values from Element.INFO_ELEMENT_NAME are used.
- */
- private int infoType = -1;
- /**
- * The content of this RtfInfoElement
- */
- private String content = "";
-
- /**
- * Constructs a RtfInfoElement based on the given Meta object
- *
- * @param doc The RtfDocument this RtfInfoElement belongs to
- * @param meta The Meta object this RtfInfoElement is based on
- */
- public RtfInfoElement(RtfDocument doc, Meta meta) {
- super(doc);
- infoType = meta.type();
- content = meta.content();
- }
-
- /**
- * Writes this RtfInfoElement
- *
- * @return A byte array containing the RtfInfoElement data
- */
- public byte[] write() {
- ByteArrayOutputStream result = new ByteArrayOutputStream();
- try {
- result.write(OPEN_GROUP);
- switch(infoType) {
- case Meta.AUTHOR:
- result.write(INFO_AUTHOR);
- break;
- case Meta.SUBJECT:
- result.write(INFO_SUBJECT);
- break;
- case Meta.KEYWORDS:
- result.write(INFO_KEYWORDS);
- break;
- case Meta.TITLE:
- result.write(INFO_TITLE);
- break;
- case Meta.PRODUCER:
- result.write(INFO_PRODUCER);
- break;
- case Meta.CREATIONDATE:
- result.write(INFO_CREATION_DATE);
- break;
- default:
- result.write(INFO_AUTHOR);
- break;
- }
- result.write(DELIMITER);
- if(infoType == Meta.CREATIONDATE) {
- result.write(convertDate(content).getBytes());
- } else {
- result.write(content.getBytes());
- }
- result.write(CLOSE_GROUP);
- } catch(IOException ioe) {
- ioe.printStackTrace();
- }
- return result.toByteArray();
- }
-
- /**
- * Converts a date from the format used by iText to the format required by
- * rtf.<br>iText: EEE MMM dd HH:mm:ss zzz yyyy - rtf: \\'yr'yyyy\\'mo'MM\\'dy'dd\\'hr'HH\\'min'mm\\'sec'ss
- *
- * @param date The date formated by iText
- * @return The date formated for rtf
- */
- private String convertDate(String date) {
- SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
- try {
- Date creationDate = sdf.parse(date);
- sdf = new SimpleDateFormat("\\'yr'yyyy\\'mo'MM\\'dy'dd\\'hr'HH\\'min'mm\\'sec'ss");
- return sdf.format(creationDate);
- } catch(ParseException pe) {
- pe.printStackTrace();
- return "";
- }
- }
-}
diff --git a/src/main/java/com/lowagie/text/rtf/document/RtfInfoGroup.java b/src/main/java/com/lowagie/text/rtf/document/RtfInfoGroup.java
deleted file mode 100644
index fc6c46a..0000000
--- a/src/main/java/com/lowagie/text/rtf/document/RtfInfoGroup.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * $Id: RtfInfoGroup.java,v 1.16 2005/05/04 14:33:52 blowagie Exp $
- * $Name: $
- *
- * Copyright 2003, 2004 by Mark Hall
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the License.
- *
- * The Original Code is 'iText, a free JAVA-PDF library'.
- *
- * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
- * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
- * All Rights Reserved.
- * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
- * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
- *
- * Contributor(s): all the names of the contributors are added in the source code
- * where applicable.
- *
- * Alternatively, the contents of this file may be used under the terms of the
- * LGPL license (the ?GNU LIBRARY GENERAL PUBLIC LICENSE?), in which case the
- * provisions of LGPL are applicable instead of those above. If you wish to
- * allow use of your version of this file only under the terms of the LGPL
- * License and not to allow others to use your version of this file under
- * the MPL, indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by the LGPL.
- * If you do not delete the provisions above, a recipient may use your version
- * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the MPL as stated above or under the terms of the GNU
- * Library General Public License as published by the Free Software Foundation;
- * either version 2 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
- * details.
- *
- * If you didn't download this code from the following link, you should check if
- * you aren't using an obsolete version:
- * http://www.lowagie.com/iText/
- */
-
-package com.lowagie.text.rtf.document;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import com.lowagie.text.rtf.RtfElement;
-
-
-/**
- * The RtfInfoGroup stores information group elements.
- *
- * @version $Version:$
- * @author Mark Hall (mhall@edu.uni-klu.ac.at)
- */
-public class RtfInfoGroup extends RtfElement {
- /**
- * Information group starting tag
- */
- private static final byte[] INFO_GROUP = "\\info".getBytes();
-
- /**
- * The RtfInfoElements that belong to this RtfInfoGroup
- */
- ArrayList infoElements = null;
-
- /**
- * Constructs a RtfInfoGroup belonging to a RtfDocument
- *
- * @param doc The RtfDocument this RtfInfoGroup belongs to
- */
- public RtfInfoGroup(RtfDocument doc) {
- super(doc);
- infoElements = new ArrayList();
- }
-
- /**
- * Adds an RtfInfoElement to the RtfInfoGroup
- *
- * @param infoElement The RtfInfoElement to add
- */
- public void add(RtfInfoElement infoElement) {
- this.infoElements.add(infoElement);
- }
-
- /**
- * Writes the RtfInfoGroup and its RtfInfoElement elements.
- *
- * @return A byte array containing the group and its elements
- */
- public byte[] write() {
- ByteArrayOutputStream result = new ByteArrayOutputStream();
- try {
- result.write(OPEN_GROUP);
- result.write(INFO_GROUP);
- for(int i = 0; i < infoElements.size(); i++) {
- RtfInfoElement infoElement = (RtfInfoElement) infoElements.get(i);
- result.write(infoElement.write());
- }
- result.write(CLOSE_GROUP);
- result.write((byte)'\n');
- } catch(IOException ioe) {
- ioe.printStackTrace();
- }
- return result.toByteArray();
- }
-}
diff --git a/src/main/java/com/lowagie/text/rtf/document/RtfPageSetting.java b/src/main/java/com/lowagie/text/rtf/document/RtfPageSetting.java
deleted file mode 100644
index fd456e4..0000000
--- a/src/main/java/com/lowagie/text/rtf/document/RtfPageSetting.java
+++ /dev/null
@@ -1,435 +0,0 @@
-/*
- * $Id: RtfPageSetting.java,v 1.15 2005/02/23 16:57:45 hallm Exp $
- * $Name: $
- *
- * Copyright 2003, 2004 by Mark Hall
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the License.
- *
- * The Original Code is 'iText, a free JAVA-PDF library'.
- *
- * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
- * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
- * All Rights Reserved.
- * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
- * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
- *
- * Contributor(s): all the names of the contributors are added in the source code
- * where applicable.
- *
- * Alternatively, the contents of this file may be used under the terms of the
- * LGPL license (the ?GNU LIBRARY GENERAL PUBLIC LICENSE?), in which case the
- * provisions of LGPL are applicable instead of those above. If you wish to
- * allow use of your version of this file only under the terms of the LGPL
- * License and not to allow others to use your version of this file under
- * the MPL, indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by the LGPL.
- * If you do not delete the provisions above, a recipient may use your version
- * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the MPL as stated above or under the terms of the GNU
- * Library General Public License as published by the Free Software Foundation;
- * either version 2 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
- * details.
- *
- * If you didn't download this code from the following link, you should check if
- * you aren't using an obsolete version:
- * http://www.lowagie.com/iText/
- */
-
-package com.lowagie.text.rtf.document;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-import com.lowagie.text.PageSize;
-import com.lowagie.text.Rectangle;
-import com.lowagie.text.rtf.RtfElement;
-import com.lowagie.text.rtf.RtfExtendedElement;
-
-
-/**
- * The RtfPageSetting stores the page size / page margins for a RtfDocument.
- * INTERNAL CLASS - NOT TO BE USED DIRECTLY
- *
- * @version $Version:$
- * @author Mark Hall (mhall@edu.uni-klu.ac.at)
- */
-public class RtfPageSetting extends RtfElement implements RtfExtendedElement {
-
- /**
- * Constant for the page height
- */
- private static final byte[] PAGE_WIDTH = "\\paperw".getBytes();
- /**
- * Constant for the page width
- */
- private static final byte[] PAGE_HEIGHT = "\\paperh".getBytes();
- /**
- * Constant for the left margin
- */
- private static final byte[] MARGIN_LEFT = "\\margl".getBytes();
- /**
- * Constant for the right margin
- */
- private static final byte[] MARGIN_RIGHT = "\\margr".getBytes();
- /**
- * Constant for the top margin
- */
- private static final byte[] MARGIN_TOP = "\\margt".getBytes();
- /**
- * Constant for the bottom margin
- */
- private static final byte[] MARGIN_BOTTOM = "\\margb".getBytes();
- /**
- * Constant for landscape
- */
- private static final byte[] LANDSCAPE = "\\lndscpsxn".getBytes();
- /**
- * Constant for the section page width
- */
- private static final byte[] SECTION_PAGE_WIDTH = "\\pgwsxn".getBytes();
- /**
- * Constant for the section page height
- */
- private static final byte[] SECTION_PAGE_HEIGHT = "\\pghsxn".getBytes();
- /**
- * Constant for the section left margin
- */
- private static final byte[] SECTION_MARGIN_LEFT = "\\marglsxn".getBytes();
- /**
- * Constant for the section right margin
- */
- private static final byte[] SECTION_MARGIN_RIGHT = "\\margrsxn".getBytes();
- /**
- * Constant for the section top margin
- */
- private static final byte[] SECTION_MARGIN_TOP = "\\margtsxn".getBytes();
- /**
- * Constant for the section bottom margin
- */
- private static final byte[] SECTION_MARGIN_BOTTOM = "\\margbsxn".getBytes();
-
- /**
- * The page width to use
- */
- private int pageWidth = 11906;
- /**
- * The page height to use
- */
- private int pageHeight = 16840;
- /**
- * The left margin to use
- */
- private int marginLeft = 1800;
- /**
- * The right margin to use
- */
- private int marginRight = 1800;
- /**
- * The top margin to use
- */
- private int marginTop = 1440;
- /**
- * The bottom margin to use
- */
- private int marginBottom = 1440;
- /**
- * Whether the page is portrait or landscape
- */
- private boolean landscape = false;
-
- /**
- * Constructs a new RtfPageSetting object belonging to a RtfDocument.
- *
- * @param doc The RtfDocument this RtfPageSetting belongs to
- */
- public RtfPageSetting(RtfDocument doc) {
- super(doc);
- }
-
- /**
- * Writes the page size / page margin definition
- *
- * @return A byte array with the page size / page margin definition
- */
- public byte[] writeDefinition() {
- ByteArrayOutputStream result = new ByteArrayOutputStream();
- try {
- result.write(PAGE_WIDTH);
- result.write(intToByteArray(pageWidth));
- result.write(PAGE_HEIGHT);
- result.write(intToByteArray(pageHeight));
- result.write(MARGIN_LEFT);
- result.write(intToByteArray(marginLeft));
- result.write(MARGIN_RIGHT);
- result.write(intToByteArray(marginRight));
- result.write(MARGIN_TOP);
- result.write(intToByteArray(marginTop));
- result.write(MARGIN_BOTTOM);
- result.write(intToByteArray(marginBottom));
- result.write((byte)'\n');
- } catch(IOException ioe) {
- ioe.printStackTrace();
- }
- return result.toByteArray();
- }
-
- /**
- * Writes the definition part for a new section
- *
- * @return A byte array containing the definition for a new section
- */
- public byte[] writeSectionDefinition() {
- ByteArrayOutputStream result = new ByteArrayOutputStream();
- try {
- if(landscape) {
- result.write(LANDSCAPE);
- result.write(SECTION_PAGE_WIDTH);
- result.write(intToByteArray(pageWidth));
- result.write(SECTION_PAGE_HEIGHT);
- result.write(intToByteArray(pageHeight));
- result.write((byte)'\n');
- } else {
- result.write(SECTION_PAGE_WIDTH);
- result.write(intToByteArray(pageWidth));
- result.write(SECTION_PAGE_HEIGHT);
- result.write(intToByteArray(pageHeight));
- result.write((byte)'\n');
- }
- result.write(SECTION_MARGIN_LEFT);
- result.write(intToByteArray(marginLeft));
- result.write(SECTION_MARGIN_RIGHT);
- result.write(intToByteArray(marginRight));
- result.write(SECTION_MARGIN_TOP);
- result.write(intToByteArray(marginTop));
- result.write(SECTION_MARGIN_BOTTOM);
- result.write(intToByteArray(marginBottom));
- } catch(IOException ioe) {
- ioe.printStackTrace();
- }
- return result.toByteArray();
- }
-
- /**
- * Gets the bottom margin
- *
- * @return Returns the bottom margin
- */
- public int getMarginBottom() {
- return marginBottom;
- }
-
- /**
- * Sets the bottom margin
- *
- * @param marginBottom The bottom margin to use
- */
- public void setMarginBottom(int marginBottom) {
- this.marginBottom = marginBottom;
- }
-
- /**
- * Gets the left margin
- *
- * @return Returns the left margin
- */
- public int getMarginLeft() {
- return marginLeft;
- }
-
- /**
- * Sets the left margin to use
- *
- * @param marginLeft The left margin to use
- */
- public void setMarginLeft(int marginLeft) {
- this.marginLeft = marginLeft;
- }
-
- /**
- * Gets the right margin
- *
- * @return Returns the right margin
- */
- public int getMarginRight() {
- return marginRight;
- }
-
- /**
- * Sets the right margin to use
- *
- * @param marginRight The right margin to use
- */
- public void setMarginRight(int marginRight) {
- this.marginRight = marginRight;
- }
-
- /**
- * Gets the top margin
- *
- * @return Returns the top margin
- */
- public int getMarginTop() {
- return marginTop;
- }
-
- /**
- * Sets the top margin to use
- *
- * @param marginTop The top margin to use
- */
- public void setMarginTop(int marginTop) {
- this.marginTop = marginTop;
- }
-
- /**
- * Gets the page height
- *
- * @return Returns the page height
- */
- public int getPageHeight() {
- return pageHeight;
- }
-
- /**
- * Sets the page height to use
- *
- * @param pageHeight The page height to use
- */
- public void setPageHeight(int pageHeight) {
- this.pageHeight = pageHeight;
- }
-
- /**
- * Gets the page width
- *
- * @return Returns the page width
- */
- public int getPageWidth() {
- return pageWidth;
- }
-
- /**
- * Sets the page width to use
- *
- * @param pageWidth The page width to use
- */
- public void setPageWidth(int pageWidth) {
- this.pageWidth = pageWidth;
- }
-
- /**
- * Set the page size to use. This method will use guessFormat to try to guess the correct
- * page format. If no format could be guessed, the sizes from the pageSize are used and
- * the landscape setting is determined by comparing width and height;
- *
- * @param pageSize The pageSize to use
- */
- public void setPageSize(Rectangle pageSize) {
- if(!guessFormat(pageSize, false)) {
- this.pageWidth = (int) (pageSize.width() * RtfElement.TWIPS_FACTOR);
- this.pageHeight = (int) (pageSize.height() * RtfElement.TWIPS_FACTOR);
- this.landscape = pageWidth > pageHeight;
- }
- }
-
- /**
- * This method tries to fit the <code>Rectangle pageSize</code> to one of the predefined PageSize rectangles.
- * If a match is found the pageWidth and pageHeight will be set according to values determined from files
- * generated by MS Word2000 and OpenOffice 641. If no match is found the method will try to match the rotated
- * Rectangle by calling itself with the parameter rotate set to true.
- *
- * @param pageSize the page size for which to guess the correct format
- * @param rotate Whether we should try to rotate the size befor guessing the format
- * @return <code>True</code> if the format was guessed, <code>false/<code> otherwise
- */
- private boolean guessFormat(Rectangle pageSize, boolean rotate) {
- if (rotate) {
- pageSize = pageSize.rotate();
- }
- if (rectEquals(pageSize, PageSize.A3)) {
- pageWidth = 16837;
- pageHeight = 23811;
- landscape = rotate;
- return true;
- }
- if (rectEquals(pageSize, PageSize.A4)) {
- pageWidth = 11907;
- pageHeight = 16840;
- landscape = rotate;
- return true;
- }
- if (rectEquals(pageSize, PageSize.A5)) {
- pageWidth = 8391;
- pageHeight = 11907;
- landscape = rotate;
- return true;
- }
- if (rectEquals(pageSize, PageSize.A6)) {
- pageWidth = 5959;
- pageHeight = 8420;
- landscape = rotate;
- return true;
- }
- if (rectEquals(pageSize, PageSize.B4)) {
- pageWidth = 14570;
- pageHeight = 20636;
- landscape = rotate;
- return true;
- }
- if (rectEquals(pageSize, PageSize.B5)) {
- pageWidth = 10319;
- pageHeight = 14572;
- landscape = rotate;
- return true;
- }
- if (rectEquals(pageSize, PageSize.HALFLETTER)) {
- pageWidth = 7927;
- pageHeight = 12247;
- landscape = rotate;
- return true;
- }
- if (rectEquals(pageSize, PageSize.LETTER)) {
- pageWidth = 12242;
- pageHeight = 15842;
- landscape = rotate;
- return true;
- }
- if (rectEquals(pageSize, PageSize.LEGAL)) {
- pageWidth = 12252;
- pageHeight = 20163;
- landscape = rotate;
- return true;
- }
- if (!rotate && guessFormat(pageSize, true)) {
- int x = pageWidth;
- pageWidth = pageHeight;
- pageHeight = x;
- return true;
- }
- return false;
- }
-
- /**
- * This method compares to Rectangles. They are considered equal if width and height are the same
- *
- * @param rect1 The first Rectangle to compare
- * @param rect2 The second Rectangle to compare
- * @return <code>True</code> if the Rectangles equal, <code>false</code> otherwise
- */
- private boolean rectEquals(Rectangle rect1, Rectangle rect2) {
- return (rect1.width() == rect2.width()) && (rect1.height() == rect2.height());
- }
-}
diff --git a/src/main/java/com/lowagie/text/rtf/document/output/RtfDataCache.java b/src/main/java/com/lowagie/text/rtf/document/output/RtfDataCache.java
deleted file mode 100644
index f9b3e9d..0000000
--- a/src/main/java/com/lowagie/text/rtf/document/output/RtfDataCache.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * $Id: RtfDataCache.java,v 1.1 2005/02/02 18:09:32 hallm Exp $
- * $Name: $
- *
- * Copyright 2005 by Mark Hall
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the License.
- *
- * The Original Code is 'iText, a free JAVA-PDF library'.
- *
- * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
- * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
- * All Rights Reserved.
- * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
- * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
- *
- * Contributor(s): all the names of the contributors are added in the source code
- * where applicable.
- *
- * Alternatively, the contents of this file may be used under the terms of the
- * LGPL license (the ?GNU LIBRARY GENERAL PUBLIC LICENSE?), in which case the
- * provisions of LGPL are applicable instead of those above. If you wish to
- * allow use of your version of this file only under the terms of the LGPL
- * License and not to allow others to use your version of this file under
- * the MPL, indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by the LGPL.
- * If you do not delete the provisions above, a recipient may use your version
- * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the MPL as stated above or under the terms of the GNU
- * Library General Public License as published by the Free Software Foundation;
- * either version 2 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
- * details.
- *
- * If you didn't download this code from the following link, you should check if
- * you aren't using an obsolete version:
- * http://www.lowagie.com/iText/
- */
-
-package com.lowagie.text.rtf.document.output;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-
-/**
- * The RtfDataCache interface must be implemented by classes wishing to
- * act as caches for the rtf document data.
- *
- * @version $Revision: 1.1 $
- * @author Mark Hall (mhall@edu.uni-klu.ac.at)
- */
-public interface RtfDataCache {
- /**
- * Constant for caching into memory.
- */
- public static final int CACHE_MEMORY = 2;
- /**
- * Constant for caching to the disk.
- */
- public static final int CACHE_DISK = 1;
- /**
- * Get the OutputStream that the RtfDocument can write to.
- *
- * @return The OutputStream the RtfDocument can use.
- */
- public OutputStream getOutputStream();
- /**
- * Write the content of the cache into the OutputStream.
- *
- * @param target The OutputStream to write the content into.
- * @throws IOException If an error occurs reading/writing.
- */
- public void writeTo(OutputStream target) throws IOException;
-}
diff --git a/src/main/java/com/lowagie/text/rtf/document/output/RtfDiskCache.java b/src/main/java/com/lowagie/text/rtf/document/output/RtfDiskCache.java
deleted file mode 100644
index 77053ac..0000000
--- a/src/main/java/com/lowagie/text/rtf/document/output/RtfDiskCache.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * $Id: RtfDiskCache.java,v 1.1 2005/02/02 18:09:32 hallm Exp $
- * $Name: $
- *
- * Copyright 2005 by Mark Hall
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the License.
- *
- * The Original Code is 'iText, a free JAVA-PDF library'.
- *
- * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
- * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
- * All Rights Reserved.
- * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
- * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
- *
- * Contributor(s): all the names of the contributors are added in the source code
- * where applicable.
- *
- * Alternatively, the contents of this file may be used under the terms of the
- * LGPL license (the ?GNU LIBRARY GENERAL PUBLIC LICENSE?), in which case the
- * provisions of LGPL are applicable instead of those above. If you wish to
- * allow use of your version of this file only under the terms of the LGPL
- * License and not to allow others to use your version of this file under
- * the MPL, indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by the LGPL.
- * If you do not delete the provisions above, a recipient may use your version
- * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the MPL as stated above or under the terms of the GNU
- * Library General Public License as published by the Free Software Foundation;
- * either version 2 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
- * details.
- *
- * If you didn't download this code from the following link, you should check if
- * you aren't using an obsolete version:
- * http://www.lowagie.com/iText/
- */
-
-package com.lowagie.text.rtf.document.output;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-
-/**
- * The RtfFileCache is a RtfDataCache that uses a temporary file
- * to store the rtf document data. Not so fast, but doesn't use any
- * memory (just disk space).
- *
- * @version $Revision: 1.1 $
- * @author Mark Hall (mhall@edu.uni-klu.ac.at)
- */
-public class RtfDiskCache implements RtfDataCache {
-
- /**
- * The BufferedOutputStream that stores the cache data.
- */
- private BufferedOutputStream data = null;
- /**
- * The temporary file to store the data in.
- */
- private File tempFile = null;
-
- /**
- * Constructs a RtfFileCache. Creates the temp file.
- *
- * @throws IOException If the temporary file could not be created.
- */
- public RtfDiskCache() throws IOException {
- this.tempFile = File.createTempFile("iText", null);
- this.data = new BufferedOutputStream(new FileOutputStream(tempFile));
- }
-
- /**
- * Gets the BufferedOutputStream to write to.
- */
- public OutputStream getOutputStream() {
- return this.data;
- }
-
- /**
- * Writes the content of the temporary file into the OutputStream.
- */
- public void writeTo(OutputStream target) throws IOException {
- this.data.close();
- BufferedInputStream tempIn = new BufferedInputStream(new FileInputStream(this.tempFile));
- byte[] buffer = new byte[8192];
- int bytesRead = -1;
- while((bytesRead = tempIn.read(buffer)) >= 0) {
- target.write(buffer, 0, bytesRead);
- }
- tempIn.close();
- this.tempFile.delete();
- }
-
-}
diff --git a/src/main/java/com/lowagie/text/rtf/document/output/RtfMemoryCache.java b/src/main/java/com/lowagie/text/rtf/document/output/RtfMemoryCache.java
deleted file mode 100644
index 002355f..0000000
--- a/src/main/java/com/lowagie/text/rtf/document/output/RtfMemoryCache.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * $Id: RtfMemoryCache.java,v 1.1 2005/02/02 18:09:31 hallm Exp $
- * $Name: $
- *
- * Copyright 2005 by Mark Hall
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the License.
- *
- * The Original Code is 'iText, a free JAVA-PDF library'.
- *
- * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
- * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
- * All Rights Reserved.
- * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
- * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
- *
- * Contributor(s): all the names of the contributors are added in the source code
- * where applicable.
- *
- * Alternatively, the contents of this file may be used under the terms of the
- * LGPL license (the ?GNU LIBRARY GENERAL PUBLIC LICENSE?), in which case the
- * provisions of LGPL are applicable instead of those above. If you wish to
- * allow use of your version of this file only under the terms of the LGPL
- * License and not to allow others to use your version of this file under
- * the MPL, indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by the LGPL.
- * If you do not delete the provisions above, a recipient may use your version
- * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the MPL as stated above or under the terms of the GNU
- * Library General Public License as published by the Free Software Foundation;
- * either version 2 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
- * details.
- *
- * If you didn't download this code from the following link, you should check if
- * you aren't using an obsolete version:
- * http://www.lowagie.com/iText/
- */
-
-package com.lowagie.text.rtf.document.output;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-
-/**
- * The RtfMemoryCache is an RtfDataCache that keeps the whole rtf document
- * data in memory. Fast but memory intensive.
- *
- * @version $Revision: 1.1 $
- * @author Mark Hall (mhall@edu.uni-klu.ac.at)
- */
-public class RtfMemoryCache implements RtfDataCache {
-
- /**
- * The buffer for the rtf document data.
- */
- private ByteArrayOutputStream data = null;
-
- /**
- * Constructs a RtfMemoryCache.
- */
- public RtfMemoryCache() {
- this.data = new ByteArrayOutputStream();
- }
-
- /**
- * Gets the ByteArrayOutputStream.
- */
- public OutputStream getOutputStream() {
- return this.data;
- }
-
- /**
- * Writes the content of the ByteArrayOutputStream into the OutputStream.
- */
- public void writeTo(OutputStream target) throws IOException {
- this.data.writeTo(target);
- }
-
-}