Browse Source

Added an IFDocumentHandler filter for triggering rendering events.

Created an Event that captures an end page event with the page number.


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1137566 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-1_1rc1old
Peter Hancock 13 years ago
parent
commit
79b6690593

+ 7
- 0
src/java/org/apache/fop/render/RendererEventProducer.java View File

@@ -53,4 +53,11 @@ public interface RendererEventProducer extends EventProducer {
* @event.severity ERROR
*/
void ioError(Object source, IOException ioe);

/**
* Triggered at the end of page rendering.
* @param source the event source
* @param number the page number
*/
void endPage(Object source, int number);
}

+ 1
- 0
src/java/org/apache/fop/render/RendererEventProducer.xml View File

@@ -18,4 +18,5 @@
<!-- $Id$ -->
<catalogue xml:lang="en">
<message key="ioError">I/O error while writing to target file.[ Reason: {ioe}]</message>
<message key="endPage">Rendered page #{number}.</message>
</catalogue>

+ 2
- 1
src/java/org/apache/fop/render/RendererFactory.java View File

@@ -35,6 +35,7 @@ import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.area.AreaTreeHandler;
import org.apache.fop.fo.FOEventHandler;
import org.apache.fop.render.intermediate.AbstractIFDocumentHandlerMaker;
import org.apache.fop.render.intermediate.EventProducingFilter;
import org.apache.fop.render.intermediate.IFDocumentHandler;
import org.apache.fop.render.intermediate.IFDocumentHandlerConfigurator;
import org.apache.fop.render.intermediate.IFRenderer;
@@ -389,7 +390,7 @@ public class RendererFactory {
if (configurator != null) {
configurator.configure(documentHandler);
}
return documentHandler;
return new EventProducingFilter(documentHandler, userAgent);
}

/**

+ 54
- 0
src/java/org/apache/fop/render/intermediate/EventProducingFilter.java View File

@@ -0,0 +1,54 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (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.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/* $Id:$ */

package org.apache.fop.render.intermediate;

import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.render.RendererEventProducer;
import org.apache.fop.render.intermediate.util.IFDocumentHandlerProxy;

/**
* A filter that uses the Event Notification System to broadcast IF events.
*
*/
public class EventProducingFilter extends IFDocumentHandlerProxy {

private int pageNumberEnded;

private FOUserAgent userAgent;

/**
* Constructor
* @param ifDocumentHandler the IFDocumentHandler to filter
* @param userAgent the FOUerAgent
*/
public EventProducingFilter(IFDocumentHandler ifDocumentHandler, FOUserAgent userAgent) {
super(ifDocumentHandler);
this.userAgent = userAgent;
}

@Override
public void endPage() throws IFException {
super.endPage();
pageNumberEnded++;
RendererEventProducer.Provider.get(userAgent.getEventBroadcaster())
.endPage(this, pageNumberEnded);
}

}

+ 5
- 0
status.xml View File

@@ -30,6 +30,7 @@
<person name="Andreas Delmelle" email="adelmelle@apache.org" id="AD"/>
<person name="Luca Furini" email="lfurini@apache.org" id="LF"/>
<person name="Christian Geisert" email="chrisg@apache.org" id="CG"/>
<person name="Peter Hancock" email="phancock@apache.org" id="PH"/>
<person name="Vincent Hennebert" email="vhennebert@apache.org" id="VH"/>
<person name="Clay Leeds" email="clay@apache.org" id="CL"/>
<person name="Manuel Mall" email="manuel@apache.org" id="MM"/>
@@ -59,6 +60,10 @@
documents. Example: the fix of marks layering will be such a case when it's done.
-->
<release version="FOP Trunk" date="TBD">
<action context="Renderers" dev="PH" type="add">
Added an IFDocumentHandler filter for triggering rendering events. Created an Event that
captures an end page event with the page number.
</action>
<action context="Renderers" dev="VH" type="fix">
Bugfix: alternative text not working in tagged PDF for TIFF images.
</action>

Loading…
Cancel
Save