</group>
<group title="Structural Rendering">
<package name="org.apache.fop.rtf.renderer"/>
+ <package name="org.apache.fop.render.mif"/>
</group>
<group title="Utility">
<package name="org.apache.fop.pdf"/>
- <package name="org.apache.fop.mif"/>
<package name="org.apache.fop.tools"/>
<package name="org.apache.fop.tools.*"/>
<package name="org.apache.fop.svg"/>
import org.apache.fop.fo.FOInputHandler;
import org.apache.fop.fo.FOTreeHandler;
-import org.apache.fop.mif.MIFHandler;
+import org.apache.fop.render.mif.MIFHandler;
import org.apache.fop.render.Renderer;
import org.apache.fop.render.awt.AWTRenderer;
import org.apache.fop.rtf.renderer.RTFHandler;
+++ /dev/null
-/*
- * $Id: MIFElement.java,v 1.3 2003/03/07 08:09:26 jeremias Exp $
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.mif;
-
-// Java
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * The is the basis for MIF document elements.
- * This enables the creation of the element and to write it
- * to an output stream including sub-elements or a single value.
- */
-public class MIFElement {
- protected String name;
- protected String valueStr = null;
- protected List valueElements = null;
-
- protected boolean started = false;
- protected boolean finish = false;
- protected boolean finished = false;
-
- /**
- */
- public MIFElement(String n) {
- name = n;
- }
-
- public void setValue(String str) {
- valueStr = str;
- }
-
- public void addElement(MIFElement el) {
- if (valueElements == null) {
- valueElements = new java.util.ArrayList();
- }
- valueElements.add(el);
- }
-
- /**
- * Output this element to an output stream.
- * This will output only so far as the fisrt unfinished child element.
- * This method can be called again to continue from the previous point.
- * An element that contains child elements will only be finished when
- * the finish method is called.
- */
- public boolean output(OutputStream os, int indent) throws IOException {
- if (finished) {
- return true;
- }
- if (valueElements == null && valueStr == null) {
- return false;
- }
-
- String indentStr = "";
- for (int c = 0; c < indent; c++) {
- indentStr += " ";
- }
- if (!started) {
- os.write((indentStr + "<" + name).getBytes());
- if (valueElements != null) {
- os.write(("\n").getBytes());
- }
- started = true;
- }
- if (valueElements != null) {
- boolean done = true;
- for (Iterator iter = valueElements.iterator(); iter.hasNext();) {
- MIFElement el = (MIFElement)iter.next();
- boolean d = el.output(os, indent + 1);
- if (d) {
- iter.remove();
- } else {
- done = false;
- break;
- }
- }
- if (!finish || !done) {
- return false;
- }
- os.write((indentStr + "> # end of " + name + "\n").getBytes());
- } else {
- os.write((" " + valueStr + ">\n").getBytes());
- }
- finished = true;
- return true;
- }
-
- public void finish(boolean deep) {
- finish = true;
- if (deep && valueElements != null) {
- for (Iterator iter = valueElements.iterator(); iter.hasNext();) {
- MIFElement el = (MIFElement)iter.next();
- el.finish(deep);
- }
- }
- }
-}
-
+++ /dev/null
-/*
- * $Id: MIFFile.java,v 1.2 2003/03/07 08:09:26 jeremias Exp $
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.mif;
-
-// Java
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * The MIF File.
- * This organises the MIF File and the corresponding elements.
- * The catalog elements are used to setup the resources that
- * are referenced.
- */
-public class MIFFile extends MIFElement {
-
- protected MIFElement colorCatalog = null;
- protected PGFElement pgfCatalog = null;
- protected MIFElement fontCatalog = null;
- protected RulingElement rulingCatalog = null;
- protected MIFElement tblCatalog = null;
- protected MIFElement views = null;
- protected MIFElement variableFormats = null;
- protected MIFElement xRefFormats = null;
- protected MIFElement document = null;
- protected MIFElement bookComponent = null;
- protected MIFElement initialAutoNums = null;
- protected MIFElement aFrames = null;
- protected MIFElement tbls = null;
- protected List pages = new java.util.ArrayList();
- protected List textFlows = null;
-
-
- public MIFFile() {
- super("");
- valueElements = new java.util.ArrayList();
- setup();
- }
-
- /**
- * Do some setup.
- * Currently adds some dummy values to the resources.
- */
- protected void setup() {
- MIFElement unit = new MIFElement("Units");
- unit.setValue("Ucm");
- addElement(unit);
-
- colorCatalog = new MIFElement("ColorCatalog");
- MIFElement color = new MIFElement("Color");
- MIFElement prop = new MIFElement("ColorTag");
- prop.setValue("`Black'");
- color.addElement(prop);
- prop = new MIFElement("ColorCyan");
- prop.setValue("0.000000");
- color.addElement(prop);
-
- prop = new MIFElement("ColorMagenta");
- prop.setValue("0.000000");
- color.addElement(prop);
- prop = new MIFElement("ColorYellow");
- prop.setValue("0.000000");
- color.addElement(prop);
- prop = new MIFElement("ColorBlack");
- prop.setValue("100.000000");
- color.addElement(prop);
- prop = new MIFElement("ColorAttribute");
- prop.setValue("ColorIsBlack");
- color.addElement(prop);
- prop = new MIFElement("ColorAttribute");
- prop.setValue("ColorIsReserved");
- color.addElement(prop);
- color.finish(true);
-
- colorCatalog.addElement(color);
- addElement(colorCatalog);
-
- pgfCatalog = new PGFElement();
- pgfCatalog.lookupElement(null);
- addElement(pgfCatalog);
-
- rulingCatalog = new RulingElement();
- rulingCatalog.lookupElement(null);
- addElement(rulingCatalog);
-
- }
-
- public void output(OutputStream os) throws IOException {
- if (finished) {
- return;
- }
-
- if (!started) {
- os.write(("<MIFFile 5.00> # Generated by FOP\n"/* + getVersion()*/).getBytes());
- started = true;
- }
- boolean done = true;
-
- for (Iterator iter = valueElements.iterator(); iter.hasNext();) {
- MIFElement el = (MIFElement)iter.next();
- boolean d = el.output(os, 0);
- if (d) {
- iter.remove();
- } else {
- done = false;
- break;
- }
- }
- if (done && finish) {
- os.write(("# end of MIFFile").getBytes());
- }
- }
-
- public void addPage(MIFElement p) {
- pages.add(p);
- addElement(p);
- }
-}
-
+++ /dev/null
-/*
- * $Id: MIFHandler.java,v 1.6 2003/03/07 08:09:26 jeremias Exp $
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.mif;
-
-// Java
-import java.io.IOException;
-import java.io.OutputStream;
-
-import org.apache.fop.apps.Document;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.fo.FOInputHandler;
-import org.apache.fop.fo.flow.Block;
-import org.apache.fop.fo.flow.ExternalGraphic;
-import org.apache.fop.fo.flow.InstreamForeignObject;
-import org.apache.fop.fo.flow.Inline;
-import org.apache.fop.fo.flow.Leader;
-import org.apache.fop.fo.flow.ListBlock;
-import org.apache.fop.fo.flow.ListItem;
-import org.apache.fop.fo.flow.PageNumber;
-import org.apache.fop.fo.flow.Table;
-import org.apache.fop.fo.flow.TableBody;
-import org.apache.fop.fo.flow.TableCell;
-import org.apache.fop.fo.flow.TableColumn;
-import org.apache.fop.fo.flow.TableRow;
-import org.apache.fop.fo.pagination.Flow;
-import org.apache.fop.fo.pagination.PageSequence;
-import org.apache.fop.fo.pagination.PageSequenceMaster;
-import org.apache.fop.fo.pagination.SimplePageMaster;
-import org.xml.sax.SAXException;
-
-// TODO: do we really want every method throwing a SAXException
-
-/**
- * The MIF Handler.
- * This generates MIF output using the structure events from
- * the FO Tree sent to this structure handler.
- * This builds an MIF file and writes it to the output.
- */
-public class MIFHandler extends FOInputHandler {
-
- /** the MIFFile instance */
- protected MIFFile mifFile;
- /** the OutputStream to write to */
- protected OutputStream outStream;
-
- // current state elements
- private MIFElement textFlow;
- private MIFElement para;
-
- /**
- * Creates a new MIF handler on a given OutputStream.
- * @param os OutputStream to write to
- */
- public MIFHandler(Document doc, OutputStream os) {
- super(doc);
- outStream = os;
- // use pdf fonts for now, this is only for resolving names
- org.apache.fop.render.pdf.FontSetup.setup(doc, null);
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startDocument()
- */
- public void startDocument() throws SAXException {
- mifFile = new MIFFile();
- try {
- mifFile.output(outStream);
- } catch (IOException ioe) {
- throw new SAXException(ioe);
- }
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endDocument()
- */
- public void endDocument() throws SAXException {
- // finish all open elements
- mifFile.finish(true);
- try {
- mifFile.output(outStream);
- outStream.flush();
- } catch (IOException ioe) {
- throw new SAXException(ioe);
- }
- }
-
- /**
- * Start the page sequence.
- * This creates the pages in the MIF document that will be used
- * by the following flows and static areas.
- * @see org.apache.fop.fo.FOInputHandler
- */
- public void startPageSequence(PageSequence pageSeq) {
- // get the layout master set
- // setup the pages for this sequence
- String name = pageSeq.getProperty("master-reference").getString();
- SimplePageMaster spm = pageSeq.getLayoutMasterSet().getSimplePageMaster(name);
- if (spm == null) {
- PageSequenceMaster psm = pageSeq.getLayoutMasterSet().getPageSequenceMaster(name);
- } else {
- // create simple master with regions
- MIFElement prop = new MIFElement("PageType");
- prop.setValue("BodyPage");
-
- MIFElement page = new MIFElement("Page");
- page.addElement(prop);
-
- prop = new MIFElement("PageBackground");
- prop.setValue("'Default'");
- page.addElement(prop);
-
- // build regions
- MIFElement textRect = new MIFElement("TextRect");
- prop = new MIFElement("ID");
- prop.setValue("1");
- textRect.addElement(prop);
- prop = new MIFElement("ShapeRect");
- prop.setValue("0.0 841.889 453.543 0.0");
- textRect.addElement(prop);
- page.addElement(textRect);
-
- textRect = new MIFElement("TextRect");
- prop = new MIFElement("ID");
- prop.setValue("2");
- textRect.addElement(prop);
- prop = new MIFElement("ShapeRect");
- prop.setValue("0.0 841.889 453.543 187.65");
- textRect.addElement(prop);
- page.addElement(textRect);
-
-
-
- mifFile.addPage(page);
- }
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endPageSequence(PageSequence)
- */
- public void endPageSequence(PageSequence pageSeq) throws FOPException {
-
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startFlow(Flow)
- */
- public void startFlow(Flow fl) {
- // start text flow in body region
- textFlow = new MIFElement("TextFlow");
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endFlow(Flow)
- */
- public void endFlow(Flow fl) {
- textFlow.finish(true);
- mifFile.addElement(textFlow);
- textFlow = null;
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startBlock(Block)
- */
- public void startBlock(Block bl) {
- para = new MIFElement("Para");
- // get font
- textFlow.addElement(para);
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endBlock(Block)
- */
- public void endBlock(Block bl) {
- para.finish(true);
- para = null;
- }
-
- /**
- *
- * @param inl Inline that is starting.
- */
- public void startInline(Inline inl){
- }
-
- /**
- *
- * @param inl Inline that is ending.
- */
- public void endInline(Inline inl){
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startTable(Table)
- */
- public void startTable(Table tbl) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endTable(Table)
- */
- public void endTable(Table tbl) {
- }
-
- /**
- *
- * @param tc TableColumn that is starting;
- */
- public void startColumn(TableColumn tc) {
- }
-
- /**
- *
- * @param tc TableColumn that is ending;
- */
- public void endColumn(TableColumn tc) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startHeader(TableBody)
- */
- public void startHeader(TableBody th) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endHeader(TableBody)
- */
- public void endHeader(TableBody th) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startFooter(TableBody)
- */
- public void startFooter(TableBody tf) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endFooter(TableBody)
- */
- public void endFooter(TableBody tf) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startBody(TableBody)
- */
- public void startBody(TableBody tb) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endBody(TableBody)
- */
- public void endBody(TableBody tb) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startRow(TableRow)
- */
- public void startRow(TableRow tr) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endRow(TableRow)
- */
- public void endRow(TableRow tr) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startCell(TableCell)
- */
- public void startCell(TableCell tc) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endCell(TableCell)
- */
- public void endCell(TableCell tc) {
- }
-
- // Lists
- /**
- * @see org.apache.fop.fo.FOInputHandler#startList(ListBlock)
- */
- public void startList(ListBlock lb) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endList(ListBlock)
- */
- public void endList(ListBlock lb) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startListItem(ListItem)
- */
- public void startListItem(ListItem li) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endListItem(ListItem)
- */
- public void endListItem(ListItem li) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startListLabel()
- */
- public void startListLabel() {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endListLabel()
- */
- public void endListLabel() {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startListBody()
- */
- public void startListBody() {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endListBody()
- */
- public void endListBody() {
- }
-
- // Static Regions
- /**
- * @see org.apache.fop.fo.FOInputHandler#startStatic()
- */
- public void startStatic() {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endStatic()
- */
- public void endStatic() {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startMarkup()
- */
- public void startMarkup() {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endMarkup()
- */
- public void endMarkup() {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#startLink()
- */
- public void startLink() {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#endLink()
- */
- public void endLink() {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#image(ExternalGraphic)
- */
- public void image(ExternalGraphic eg) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#pageRef()
- */
- public void pageRef() {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#foreignObject(InstreamForeignObject)
- */
- public void foreignObject(InstreamForeignObject ifo) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#footnote()
- */
- public void footnote() {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#leader(Leader)
- */
- public void leader(Leader l) {
- }
-
- /**
- * @see org.apache.fop.fo.FOInputHandler#characters(char[], int, int)
- */
- public void characters(char data[], int start, int length) {
- if (para != null) {
- String str = new String(data, start, length);
- str = str.trim();
- // break into nice length chunks
- if (str.length() == 0) {
- return;
- }
-
- MIFElement line = new MIFElement("ParaLine");
- MIFElement prop = new MIFElement("TextRectID");
- prop.setValue("2");
- line.addElement(prop);
- prop = new MIFElement("String");
- prop.setValue("\"" + str + "\"");
- line.addElement(prop);
-
- para.addElement(line);
- }
- }
-
- /**
- *
- * @param pagenum PageNumber that is starting.
- */
- public void startPageNumber(PageNumber pagenum) {
- }
-
- /**
- *
- * @param pagenum PageNumber that is ending.
- */
- public void endPageNumber(PageNumber pagenum) {
- }
-}
-
+++ /dev/null
-/*
- * $Id: PGFElement.java,v 1.2 2003/03/07 08:09:26 jeremias Exp $
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.mif;
-
-/**
- * Font Catalog element.
- * This is the reference lookup element for fonts in
- * the MIF document.
- */
-public class PGFElement extends RefElement {
-
- /**
- * Creates a new font catalog element.
- */
- public PGFElement() {
- super("PgfCatalog");
- }
-
- public MIFElement lookupElement(Object key) {
- if (key == null) {
- MIFElement pgf = new MIFElement("Pgf");
- MIFElement prop = new MIFElement("PgfTag");
- prop.setValue("`Body'");
- pgf.addElement(prop);
- addElement(pgf);
- pgf.finish(true);
- return pgf;
- }
- return null;
- }
-}
-
+++ /dev/null
-/*
- * $Id: RefElement.java,v 1.2 2003/03/07 08:09:26 jeremias Exp $
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.mif;
-
-/**
- * Reference MIF Element.
- * This element is a lookup reference set that contains
- * a list of resources used in the MIF Document.
- * When a lookup is performed it will either create a new
- * element or return an existing element that is valid.
- * THe key depends on the type of reference, it should be able
- * to uniquely identify the element.
- */
-public class RefElement extends MIFElement {
-
- /**
- * @see org.apache.fop.mif.MIFElement#MIFElement(String)
- */
- public RefElement(String n) {
- super(n);
- }
-
- public MIFElement lookupElement(Object key) {
- return null;
- }
-}
-
+++ /dev/null
-/*
- * $Id: RulingElement.java,v 1.2 2003/03/07 08:09:26 jeremias Exp $
- * ============================================================================
- * The Apache Software License, Version 1.1
- * ============================================================================
- *
- * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment: "This product includes software
- * developed by the Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself, if
- * and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FOP" and "Apache Software Foundation" must not be used to
- * endorse or promote products derived from this software without prior
- * written permission. For written permission, please contact
- * apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache", nor may
- * "Apache" appear in their name, without prior written permission of the
- * Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ============================================================================
- *
- * This software consists of voluntary contributions made by many individuals
- * on behalf of the Apache Software Foundation and was originally created by
- * James Tauber <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */
-package org.apache.fop.mif;
-
-public class RulingElement extends RefElement {
-
- public RulingElement() {
- super("RulingCatalog");
- }
-
- public MIFElement lookupElement(Object key) {
- if (key == null) {
- MIFElement rul = new MIFElement("Ruling");
- MIFElement prop = new MIFElement("RulingTag");
- prop.setValue("`Default'");
- rul.addElement(prop);
- prop = new MIFElement("RulingPenWidth");
- prop.setValue("1");
- rul.addElement(prop);
- prop = new MIFElement("RulingPen");
- prop.setValue("0");
- rul.addElement(prop);
- prop = new MIFElement("RulingLines");
- prop.setValue("1");
- rul.addElement(prop);
-
- addElement(rul);
- rul.finish(true);
- return rul;
- }
- return null;
- }
-}
-
--- /dev/null
+/*
+ * $Id$
+ * ============================================================================
+ * The Apache Software License, Version 1.1
+ * ============================================================================
+ *
+ * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if any, must
+ * include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if
+ * and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "FOP" and "Apache Software Foundation" must not be used to
+ * endorse or promote products derived from this software without prior
+ * written permission. For written permission, please contact
+ * apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache", nor may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ============================================================================
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation and was originally created by
+ * James Tauber <jtauber@jtauber.com>. For more information on the Apache
+ * Software Foundation, please see <http://www.apache.org/>.
+ */
+package org.apache.fop.render.mif;
+
+// Java
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * The is the basis for MIF document elements.
+ * This enables the creation of the element and to write it
+ * to an output stream including sub-elements or a single value.
+ */
+public class MIFElement {
+ protected String name;
+ protected String valueStr = null;
+ protected List valueElements = null;
+
+ protected boolean started = false;
+ protected boolean finish = false;
+ protected boolean finished = false;
+
+ /**
+ */
+ public MIFElement(String n) {
+ name = n;
+ }
+
+ public void setValue(String str) {
+ valueStr = str;
+ }
+
+ public void addElement(MIFElement el) {
+ if (valueElements == null) {
+ valueElements = new java.util.ArrayList();
+ }
+ valueElements.add(el);
+ }
+
+ /**
+ * Output this element to an output stream.
+ * This will output only so far as the fisrt unfinished child element.
+ * This method can be called again to continue from the previous point.
+ * An element that contains child elements will only be finished when
+ * the finish method is called.
+ */
+ public boolean output(OutputStream os, int indent) throws IOException {
+ if (finished) {
+ return true;
+ }
+ if (valueElements == null && valueStr == null) {
+ return false;
+ }
+
+ String indentStr = "";
+ for (int c = 0; c < indent; c++) {
+ indentStr += " ";
+ }
+ if (!started) {
+ os.write((indentStr + "<" + name).getBytes());
+ if (valueElements != null) {
+ os.write(("\n").getBytes());
+ }
+ started = true;
+ }
+ if (valueElements != null) {
+ boolean done = true;
+ for (Iterator iter = valueElements.iterator(); iter.hasNext();) {
+ MIFElement el = (MIFElement)iter.next();
+ boolean d = el.output(os, indent + 1);
+ if (d) {
+ iter.remove();
+ } else {
+ done = false;
+ break;
+ }
+ }
+ if (!finish || !done) {
+ return false;
+ }
+ os.write((indentStr + "> # end of " + name + "\n").getBytes());
+ } else {
+ os.write((" " + valueStr + ">\n").getBytes());
+ }
+ finished = true;
+ return true;
+ }
+
+ public void finish(boolean deep) {
+ finish = true;
+ if (deep && valueElements != null) {
+ for (Iterator iter = valueElements.iterator(); iter.hasNext();) {
+ MIFElement el = (MIFElement)iter.next();
+ el.finish(deep);
+ }
+ }
+ }
+}
+
--- /dev/null
+/*
+ * $Id$
+ * ============================================================================
+ * The Apache Software License, Version 1.1
+ * ============================================================================
+ *
+ * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if any, must
+ * include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if
+ * and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "FOP" and "Apache Software Foundation" must not be used to
+ * endorse or promote products derived from this software without prior
+ * written permission. For written permission, please contact
+ * apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache", nor may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ============================================================================
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation and was originally created by
+ * James Tauber <jtauber@jtauber.com>. For more information on the Apache
+ * Software Foundation, please see <http://www.apache.org/>.
+ */
+package org.apache.fop.render.mif;
+
+// Java
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * The MIF File.
+ * This organises the MIF File and the corresponding elements.
+ * The catalog elements are used to setup the resources that
+ * are referenced.
+ */
+public class MIFFile extends MIFElement {
+
+ protected MIFElement colorCatalog = null;
+ protected PGFElement pgfCatalog = null;
+ protected MIFElement fontCatalog = null;
+ protected RulingElement rulingCatalog = null;
+ protected MIFElement tblCatalog = null;
+ protected MIFElement views = null;
+ protected MIFElement variableFormats = null;
+ protected MIFElement xRefFormats = null;
+ protected MIFElement document = null;
+ protected MIFElement bookComponent = null;
+ protected MIFElement initialAutoNums = null;
+ protected MIFElement aFrames = null;
+ protected MIFElement tbls = null;
+ protected List pages = new java.util.ArrayList();
+ protected List textFlows = null;
+
+
+ public MIFFile() {
+ super("");
+ valueElements = new java.util.ArrayList();
+ setup();
+ }
+
+ /**
+ * Do some setup.
+ * Currently adds some dummy values to the resources.
+ */
+ protected void setup() {
+ MIFElement unit = new MIFElement("Units");
+ unit.setValue("Ucm");
+ addElement(unit);
+
+ colorCatalog = new MIFElement("ColorCatalog");
+ MIFElement color = new MIFElement("Color");
+ MIFElement prop = new MIFElement("ColorTag");
+ prop.setValue("`Black'");
+ color.addElement(prop);
+ prop = new MIFElement("ColorCyan");
+ prop.setValue("0.000000");
+ color.addElement(prop);
+
+ prop = new MIFElement("ColorMagenta");
+ prop.setValue("0.000000");
+ color.addElement(prop);
+ prop = new MIFElement("ColorYellow");
+ prop.setValue("0.000000");
+ color.addElement(prop);
+ prop = new MIFElement("ColorBlack");
+ prop.setValue("100.000000");
+ color.addElement(prop);
+ prop = new MIFElement("ColorAttribute");
+ prop.setValue("ColorIsBlack");
+ color.addElement(prop);
+ prop = new MIFElement("ColorAttribute");
+ prop.setValue("ColorIsReserved");
+ color.addElement(prop);
+ color.finish(true);
+
+ colorCatalog.addElement(color);
+ addElement(colorCatalog);
+
+ pgfCatalog = new PGFElement();
+ pgfCatalog.lookupElement(null);
+ addElement(pgfCatalog);
+
+ rulingCatalog = new RulingElement();
+ rulingCatalog.lookupElement(null);
+ addElement(rulingCatalog);
+
+ }
+
+ public void output(OutputStream os) throws IOException {
+ if (finished) {
+ return;
+ }
+
+ if (!started) {
+ os.write(("<MIFFile 5.00> # Generated by FOP\n"/* + getVersion()*/).getBytes());
+ started = true;
+ }
+ boolean done = true;
+
+ for (Iterator iter = valueElements.iterator(); iter.hasNext();) {
+ MIFElement el = (MIFElement)iter.next();
+ boolean d = el.output(os, 0);
+ if (d) {
+ iter.remove();
+ } else {
+ done = false;
+ break;
+ }
+ }
+ if (done && finish) {
+ os.write(("# end of MIFFile").getBytes());
+ }
+ }
+
+ public void addPage(MIFElement p) {
+ pages.add(p);
+ addElement(p);
+ }
+}
+
--- /dev/null
+/*
+ * $Id$
+ * ============================================================================
+ * The Apache Software License, Version 1.1
+ * ============================================================================
+ *
+ * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if any, must
+ * include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if
+ * and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "FOP" and "Apache Software Foundation" must not be used to
+ * endorse or promote products derived from this software without prior
+ * written permission. For written permission, please contact
+ * apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache", nor may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ============================================================================
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation and was originally created by
+ * James Tauber <jtauber@jtauber.com>. For more information on the Apache
+ * Software Foundation, please see <http://www.apache.org/>.
+ */
+package org.apache.fop.render.mif;
+
+// Java
+import java.io.IOException;
+import java.io.OutputStream;
+
+import org.apache.fop.apps.Document;
+import org.apache.fop.apps.FOPException;
+import org.apache.fop.fo.FOInputHandler;
+import org.apache.fop.fo.flow.Block;
+import org.apache.fop.fo.flow.ExternalGraphic;
+import org.apache.fop.fo.flow.InstreamForeignObject;
+import org.apache.fop.fo.flow.Inline;
+import org.apache.fop.fo.flow.Leader;
+import org.apache.fop.fo.flow.ListBlock;
+import org.apache.fop.fo.flow.ListItem;
+import org.apache.fop.fo.flow.PageNumber;
+import org.apache.fop.fo.flow.Table;
+import org.apache.fop.fo.flow.TableBody;
+import org.apache.fop.fo.flow.TableCell;
+import org.apache.fop.fo.flow.TableColumn;
+import org.apache.fop.fo.flow.TableRow;
+import org.apache.fop.fo.pagination.Flow;
+import org.apache.fop.fo.pagination.PageSequence;
+import org.apache.fop.fo.pagination.PageSequenceMaster;
+import org.apache.fop.fo.pagination.SimplePageMaster;
+import org.xml.sax.SAXException;
+
+// TODO: do we really want every method throwing a SAXException
+
+/**
+ * The MIF Handler.
+ * This generates MIF output using the structure events from
+ * the FO Tree sent to this structure handler.
+ * This builds an MIF file and writes it to the output.
+ */
+public class MIFHandler extends FOInputHandler {
+
+ /** the MIFFile instance */
+ protected MIFFile mifFile;
+ /** the OutputStream to write to */
+ protected OutputStream outStream;
+
+ // current state elements
+ private MIFElement textFlow;
+ private MIFElement para;
+
+ /**
+ * Creates a new MIF handler on a given OutputStream.
+ * @param os OutputStream to write to
+ */
+ public MIFHandler(Document doc, OutputStream os) {
+ super(doc);
+ outStream = os;
+ // use pdf fonts for now, this is only for resolving names
+ org.apache.fop.render.pdf.FontSetup.setup(doc, null);
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startDocument()
+ */
+ public void startDocument() throws SAXException {
+ mifFile = new MIFFile();
+ try {
+ mifFile.output(outStream);
+ } catch (IOException ioe) {
+ throw new SAXException(ioe);
+ }
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endDocument()
+ */
+ public void endDocument() throws SAXException {
+ // finish all open elements
+ mifFile.finish(true);
+ try {
+ mifFile.output(outStream);
+ outStream.flush();
+ } catch (IOException ioe) {
+ throw new SAXException(ioe);
+ }
+ }
+
+ /**
+ * Start the page sequence.
+ * This creates the pages in the MIF document that will be used
+ * by the following flows and static areas.
+ * @see org.apache.fop.fo.FOInputHandler
+ */
+ public void startPageSequence(PageSequence pageSeq) {
+ // get the layout master set
+ // setup the pages for this sequence
+ String name = pageSeq.getProperty("master-reference").getString();
+ SimplePageMaster spm = pageSeq.getLayoutMasterSet().getSimplePageMaster(name);
+ if (spm == null) {
+ PageSequenceMaster psm = pageSeq.getLayoutMasterSet().getPageSequenceMaster(name);
+ } else {
+ // create simple master with regions
+ MIFElement prop = new MIFElement("PageType");
+ prop.setValue("BodyPage");
+
+ MIFElement page = new MIFElement("Page");
+ page.addElement(prop);
+
+ prop = new MIFElement("PageBackground");
+ prop.setValue("'Default'");
+ page.addElement(prop);
+
+ // build regions
+ MIFElement textRect = new MIFElement("TextRect");
+ prop = new MIFElement("ID");
+ prop.setValue("1");
+ textRect.addElement(prop);
+ prop = new MIFElement("ShapeRect");
+ prop.setValue("0.0 841.889 453.543 0.0");
+ textRect.addElement(prop);
+ page.addElement(textRect);
+
+ textRect = new MIFElement("TextRect");
+ prop = new MIFElement("ID");
+ prop.setValue("2");
+ textRect.addElement(prop);
+ prop = new MIFElement("ShapeRect");
+ prop.setValue("0.0 841.889 453.543 187.65");
+ textRect.addElement(prop);
+ page.addElement(textRect);
+
+
+
+ mifFile.addPage(page);
+ }
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endPageSequence(PageSequence)
+ */
+ public void endPageSequence(PageSequence pageSeq) throws FOPException {
+
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startFlow(Flow)
+ */
+ public void startFlow(Flow fl) {
+ // start text flow in body region
+ textFlow = new MIFElement("TextFlow");
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endFlow(Flow)
+ */
+ public void endFlow(Flow fl) {
+ textFlow.finish(true);
+ mifFile.addElement(textFlow);
+ textFlow = null;
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startBlock(Block)
+ */
+ public void startBlock(Block bl) {
+ para = new MIFElement("Para");
+ // get font
+ textFlow.addElement(para);
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endBlock(Block)
+ */
+ public void endBlock(Block bl) {
+ para.finish(true);
+ para = null;
+ }
+
+ /**
+ *
+ * @param inl Inline that is starting.
+ */
+ public void startInline(Inline inl){
+ }
+
+ /**
+ *
+ * @param inl Inline that is ending.
+ */
+ public void endInline(Inline inl){
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startTable(Table)
+ */
+ public void startTable(Table tbl) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endTable(Table)
+ */
+ public void endTable(Table tbl) {
+ }
+
+ /**
+ *
+ * @param tc TableColumn that is starting;
+ */
+ public void startColumn(TableColumn tc) {
+ }
+
+ /**
+ *
+ * @param tc TableColumn that is ending;
+ */
+ public void endColumn(TableColumn tc) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startHeader(TableBody)
+ */
+ public void startHeader(TableBody th) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endHeader(TableBody)
+ */
+ public void endHeader(TableBody th) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startFooter(TableBody)
+ */
+ public void startFooter(TableBody tf) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endFooter(TableBody)
+ */
+ public void endFooter(TableBody tf) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startBody(TableBody)
+ */
+ public void startBody(TableBody tb) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endBody(TableBody)
+ */
+ public void endBody(TableBody tb) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startRow(TableRow)
+ */
+ public void startRow(TableRow tr) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endRow(TableRow)
+ */
+ public void endRow(TableRow tr) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startCell(TableCell)
+ */
+ public void startCell(TableCell tc) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endCell(TableCell)
+ */
+ public void endCell(TableCell tc) {
+ }
+
+ // Lists
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startList(ListBlock)
+ */
+ public void startList(ListBlock lb) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endList(ListBlock)
+ */
+ public void endList(ListBlock lb) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startListItem(ListItem)
+ */
+ public void startListItem(ListItem li) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endListItem(ListItem)
+ */
+ public void endListItem(ListItem li) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startListLabel()
+ */
+ public void startListLabel() {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endListLabel()
+ */
+ public void endListLabel() {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startListBody()
+ */
+ public void startListBody() {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endListBody()
+ */
+ public void endListBody() {
+ }
+
+ // Static Regions
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startStatic()
+ */
+ public void startStatic() {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endStatic()
+ */
+ public void endStatic() {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startMarkup()
+ */
+ public void startMarkup() {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endMarkup()
+ */
+ public void endMarkup() {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#startLink()
+ */
+ public void startLink() {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#endLink()
+ */
+ public void endLink() {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#image(ExternalGraphic)
+ */
+ public void image(ExternalGraphic eg) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#pageRef()
+ */
+ public void pageRef() {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#foreignObject(InstreamForeignObject)
+ */
+ public void foreignObject(InstreamForeignObject ifo) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#footnote()
+ */
+ public void footnote() {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#leader(Leader)
+ */
+ public void leader(Leader l) {
+ }
+
+ /**
+ * @see org.apache.fop.fo.FOInputHandler#characters(char[], int, int)
+ */
+ public void characters(char data[], int start, int length) {
+ if (para != null) {
+ String str = new String(data, start, length);
+ str = str.trim();
+ // break into nice length chunks
+ if (str.length() == 0) {
+ return;
+ }
+
+ MIFElement line = new MIFElement("ParaLine");
+ MIFElement prop = new MIFElement("TextRectID");
+ prop.setValue("2");
+ line.addElement(prop);
+ prop = new MIFElement("String");
+ prop.setValue("\"" + str + "\"");
+ line.addElement(prop);
+
+ para.addElement(line);
+ }
+ }
+
+ /**
+ *
+ * @param pagenum PageNumber that is starting.
+ */
+ public void startPageNumber(PageNumber pagenum) {
+ }
+
+ /**
+ *
+ * @param pagenum PageNumber that is ending.
+ */
+ public void endPageNumber(PageNumber pagenum) {
+ }
+}
+
--- /dev/null
+/*
+ * $Id$
+ * ============================================================================
+ * The Apache Software License, Version 1.1
+ * ============================================================================
+ *
+ * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if any, must
+ * include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if
+ * and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "FOP" and "Apache Software Foundation" must not be used to
+ * endorse or promote products derived from this software without prior
+ * written permission. For written permission, please contact
+ * apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache", nor may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ============================================================================
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation and was originally created by
+ * James Tauber <jtauber@jtauber.com>. For more information on the Apache
+ * Software Foundation, please see <http://www.apache.org/>.
+ */
+package org.apache.fop.render.mif;
+
+/**
+ * Font Catalog element.
+ * This is the reference lookup element for fonts in
+ * the MIF document.
+ */
+public class PGFElement extends RefElement {
+
+ /**
+ * Creates a new font catalog element.
+ */
+ public PGFElement() {
+ super("PgfCatalog");
+ }
+
+ public MIFElement lookupElement(Object key) {
+ if (key == null) {
+ MIFElement pgf = new MIFElement("Pgf");
+ MIFElement prop = new MIFElement("PgfTag");
+ prop.setValue("`Body'");
+ pgf.addElement(prop);
+ addElement(pgf);
+ pgf.finish(true);
+ return pgf;
+ }
+ return null;
+ }
+}
+
--- /dev/null
+/*
+ * $Id$
+ * ============================================================================
+ * The Apache Software License, Version 1.1
+ * ============================================================================
+ *
+ * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if any, must
+ * include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if
+ * and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "FOP" and "Apache Software Foundation" must not be used to
+ * endorse or promote products derived from this software without prior
+ * written permission. For written permission, please contact
+ * apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache", nor may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ============================================================================
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation and was originally created by
+ * James Tauber <jtauber@jtauber.com>. For more information on the Apache
+ * Software Foundation, please see <http://www.apache.org/>.
+ */
+package org.apache.fop.render.mif;
+
+/**
+ * Reference MIF Element.
+ * This element is a lookup reference set that contains
+ * a list of resources used in the MIF Document.
+ * When a lookup is performed it will either create a new
+ * element or return an existing element that is valid.
+ * THe key depends on the type of reference, it should be able
+ * to uniquely identify the element.
+ */
+public class RefElement extends MIFElement {
+
+ /**
+ * @see org.apache.fop.mif.MIFElement#MIFElement(String)
+ */
+ public RefElement(String n) {
+ super(n);
+ }
+
+ public MIFElement lookupElement(Object key) {
+ return null;
+ }
+}
+
--- /dev/null
+/*
+ * $Id$
+ * ============================================================================
+ * The Apache Software License, Version 1.1
+ * ============================================================================
+ *
+ * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if any, must
+ * include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if
+ * and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "FOP" and "Apache Software Foundation" must not be used to
+ * endorse or promote products derived from this software without prior
+ * written permission. For written permission, please contact
+ * apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache", nor may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ============================================================================
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation and was originally created by
+ * James Tauber <jtauber@jtauber.com>. For more information on the Apache
+ * Software Foundation, please see <http://www.apache.org/>.
+ */
+package org.apache.fop.render.mif;
+
+public class RulingElement extends RefElement {
+
+ public RulingElement() {
+ super("RulingCatalog");
+ }
+
+ public MIFElement lookupElement(Object key) {
+ if (key == null) {
+ MIFElement rul = new MIFElement("Ruling");
+ MIFElement prop = new MIFElement("RulingTag");
+ prop.setValue("`Default'");
+ rul.addElement(prop);
+ prop = new MIFElement("RulingPenWidth");
+ prop.setValue("1");
+ rul.addElement(prop);
+ prop = new MIFElement("RulingPen");
+ prop.setValue("0");
+ rul.addElement(prop);
+ prop = new MIFElement("RulingLines");
+ prop.setValue("1");
+ rul.addElement(prop);
+
+ addElement(rul);
+ rul.finish(true);
+ return rul;
+ }
+ return null;
+ }
+}
+