/* * $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; // 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 static final String ROLE = Renderer.class.getName(); public void startRenderer(OutputStream outputStream) throws IOException; public void stopRenderer() throws IOException; /** * 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); }