blob: 488c4aad260ff6033aa775db182893000b7a8d0b [file] [log] [blame]
/*
* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/
package org.apache.fop.render;
// FOP
import org.apache.fop.apps.FOPException;
import org.apache.fop.area.*;
import org.apache.fop.area.inline.*;
import org.apache.fop.layout.FontInfo;
import org.apache.fop.fo.FOUserAgent;
// Avalon
import org.apache.avalon.framework.logger.Logger;
// Java
import java.io.OutputStream;
import java.io.IOException;
import java.util.HashMap;
/**
* Interface implemented by all renderers.
* This interface is used to control the rendering of pages
* and to let block and inline level areas call the appropriate
* method to render themselves
*
* a Renderer implementation takes areas/spaces and produces output in
* some format.
*/
public interface Renderer {
public void startRenderer(OutputStream outputStream) throws IOException;
public void stopRenderer() throws IOException;
/**
* Set the logger
*/
public void setLogger(Logger logger);
/**
* Set the User Agent
*/
public void setUserAgent(FOUserAgent agent);
/**
* set up the given FontInfo
*/
public void setupFontInfo(FontInfo fontInfo);
/**
* set up renderer options
*/
public void setOptions(HashMap options);
/**
* set the producer of the rendering
*/
public void setProducer(String producer);
public boolean supportsOutOfOrder();
public void preparePage(PageViewport page);
public void startPageSequence(Title seqTitle);
public void renderPage(PageViewport page) throws IOException, FOPException;
public void renderViewport(Viewport viewport);
public void renderContainer(Container cont);
public void renderWord(Word area);
public void renderInlineParent(InlineParent ip);
public void renderCharacter(
org.apache.fop.area.inline.Character ch);
public void renderInlineSpace(Space space);
public void renderLeader(Leader area);
}