aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache/fop
diff options
context:
space:
mode:
authorAdrian Cumiskey <acumiskey@apache.org>2008-11-18 13:56:52 +0000
committerAdrian Cumiskey <acumiskey@apache.org>2008-11-18 13:56:52 +0000
commit3c666992c4e6159b6bbc0f5f5fa103dc835f2c08 (patch)
tree38365d0a9b93f77c56ae65184959888e8a93b215 /src/java/org/apache/fop
parentca5a3129ed4f7e40248120f470e0773964003c99 (diff)
downloadxmlgraphics-fop-3c666992c4e6159b6bbc0f5f5fa103dc835f2c08.tar.gz
xmlgraphics-fop-3c666992c4e6159b6bbc0f5f5fa103dc835f2c08.zip
TextHandler interface changes, the Graphics2D implementation is now passed to drawString().
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@718591 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache/fop')
-rw-r--r--src/java/org/apache/fop/render/ps/AbstractPSTranscoder.java16
-rw-r--r--src/java/org/apache/fop/render/ps/NativeTextHandler.java18
-rw-r--r--src/java/org/apache/fop/render/ps/PSSVGHandler.java17
3 files changed, 29 insertions, 22 deletions
diff --git a/src/java/org/apache/fop/render/ps/AbstractPSTranscoder.java b/src/java/org/apache/fop/render/ps/AbstractPSTranscoder.java
index b8ff8ef3f..374b5a256 100644
--- a/src/java/org/apache/fop/render/ps/AbstractPSTranscoder.java
+++ b/src/java/org/apache/fop/render/ps/AbstractPSTranscoder.java
@@ -25,21 +25,20 @@ import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.OutputStream;
-import org.w3c.dom.Document;
-import org.w3c.dom.svg.SVGLength;
-
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.batik.bridge.BridgeContext;
import org.apache.batik.bridge.UnitProcessor;
import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.ImageTranscoder;
-import org.apache.xmlgraphics.java2d.ps.AbstractPSDocumentGraphics2D;
-import org.apache.xmlgraphics.java2d.TextHandler;
-
import org.apache.fop.fonts.FontInfo;
import org.apache.fop.fonts.FontSetup;
import org.apache.fop.svg.AbstractFOPTranscoder;
+import org.apache.xmlgraphics.java2d.TextHandler;
+import org.apache.xmlgraphics.java2d.ps.AbstractPSDocumentGraphics2D;
+import org.apache.xmlgraphics.ps.PSGenerator;
+import org.w3c.dom.Document;
+import org.w3c.dom.svg.SVGLength;
/**
* This class enables to transcode an input to a PostScript document.
@@ -70,7 +69,7 @@ import org.apache.fop.svg.AbstractFOPTranscoder;
*/
public abstract class AbstractPSTranscoder extends AbstractFOPTranscoder {
- private Configuration cfg = null;
+ private final Configuration cfg = null;
protected AbstractPSDocumentGraphics2D graphics = null;
/**
@@ -99,7 +98,8 @@ public abstract class AbstractPSTranscoder extends AbstractFOPTranscoder {
FontInfo fontInfo = new FontInfo();
//TODO Do custom font configuration here somewhere/somehow
FontSetup.setup(fontInfo);
- graphics.setCustomTextHandler(new NativeTextHandler(graphics, fontInfo));
+ PSGenerator generator = graphics.getPSGenerator();
+ graphics.setCustomTextHandler(new NativeTextHandler(generator, fontInfo));
}
super.transcode(document, uri, output);
diff --git a/src/java/org/apache/fop/render/ps/NativeTextHandler.java b/src/java/org/apache/fop/render/ps/NativeTextHandler.java
index 9f62097e9..98addd19e 100644
--- a/src/java/org/apache/fop/render/ps/NativeTextHandler.java
+++ b/src/java/org/apache/fop/render/ps/NativeTextHandler.java
@@ -19,6 +19,7 @@
package org.apache.fop.render.ps;
+import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.io.IOException;
@@ -37,7 +38,7 @@ import org.apache.xmlgraphics.ps.PSGenerator;
*/
public class NativeTextHandler implements PSTextHandler {
- private PSGraphics2D g2d;
+ private final PSGenerator gen;
/** FontInfo containing all available fonts */
protected FontInfo fontInfo;
@@ -59,8 +60,8 @@ public class NativeTextHandler implements PSTextHandler {
* @param g2d the PSGraphics2D instance this instances is used by
* @param fontInfo the FontInfo object with all available fonts
*/
- public NativeTextHandler(PSGraphics2D g2d, FontInfo fontInfo) {
- this.g2d = g2d;
+ public NativeTextHandler(PSGenerator gen, FontInfo fontInfo) {
+ this.gen = gen;
if (fontInfo != null) {
this.fontInfo = fontInfo;
} else {
@@ -83,7 +84,7 @@ public class NativeTextHandler implements PSTextHandler {
}
private PSGenerator getPSGenerator() {
- return this.g2d.getPSGenerator();
+ return this.gen;
}
/** {@inheritDoc} */
@@ -98,12 +99,19 @@ public class NativeTextHandler implements PSTextHandler {
//nop
}
+ /** {@inheritDoc} */
+ public void drawString(String text, float x, float y) throws IOException {
+ // TODO Remove me after removing the deprecated method in TextHandler.
+ throw new UnsupportedOperationException("Deprecated method!");
+ }
+
/**
* Draw a string to the PostScript document. The text is painted using
* text operations.
* {@inheritDoc}
*/
- public void drawString(String s, float x, float y) throws IOException {
+ public void drawString(Graphics2D g, String s, float x, float y) throws IOException {
+ PSGraphics2D g2d = (PSGraphics2D)g;
g2d.preparePainting();
if (this.overrideFont == null) {
java.awt.Font awtFont = g2d.getFont();
diff --git a/src/java/org/apache/fop/render/ps/PSSVGHandler.java b/src/java/org/apache/fop/render/ps/PSSVGHandler.java
index d4a478fa4..2bc0f069b 100644
--- a/src/java/org/apache/fop/render/ps/PSSVGHandler.java
+++ b/src/java/org/apache/fop/render/ps/PSSVGHandler.java
@@ -24,18 +24,12 @@ import java.awt.geom.AffineTransform;
import java.io.IOException;
import java.util.Map;
-import org.w3c.dom.Document;
-
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.batik.bridge.BridgeContext;
import org.apache.batik.bridge.GVTBuilder;
import org.apache.batik.gvt.GraphicsNode;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
-import org.apache.xmlgraphics.java2d.ps.PSGraphics2D;
-import org.apache.xmlgraphics.ps.PSGenerator;
-
import org.apache.fop.fonts.FontInfo;
import org.apache.fop.render.AbstractGenericSVGHandler;
import org.apache.fop.render.Renderer;
@@ -43,6 +37,9 @@ import org.apache.fop.render.RendererContext;
import org.apache.fop.render.RendererContextConstants;
import org.apache.fop.svg.SVGEventProducer;
import org.apache.fop.svg.SVGUserAgent;
+import org.apache.xmlgraphics.java2d.ps.PSGraphics2D;
+import org.apache.xmlgraphics.ps.PSGenerator;
+import org.w3c.dom.Document;
/**
* PostScript XML handler for SVG. Uses Apache Batik for SVG processing.
@@ -262,7 +259,9 @@ public class PSSVGHandler extends AbstractGenericSVGHandler
NativeTextHandler nativeTextHandler = null;
BridgeContext ctx = new BridgeContext(ua);
if (!strokeText) {
- nativeTextHandler = new NativeTextHandler(graphics, psInfo.getFontInfo());
+ PSGenerator generator = graphics.getPSGenerator();
+ FontInfo fontInfo = psInfo.getFontInfo();
+ nativeTextHandler = new NativeTextHandler(generator, fontInfo);
graphics.setCustomTextHandler(nativeTextHandler);
PSTextPainter textPainter = new PSTextPainter(nativeTextHandler);
ctx.setTextPainter(textPainter);
@@ -283,8 +282,8 @@ public class PSSVGHandler extends AbstractGenericSVGHandler
float w = (float)ctx.getDocumentSize().getWidth() * 1000f;
float h = (float)ctx.getDocumentSize().getHeight() * 1000f;
- float sx = psInfo.getWidth() / (float)w;
- float sy = psInfo.getHeight() / (float)h;
+ float sx = psInfo.getWidth() / w;
+ float sy = psInfo.getHeight() / h;
ctx = null;
builder = null;