aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache/fop/svg
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/org/apache/fop/svg')
-rw-r--r--src/java/org/apache/fop/svg/AbstractFOPBridgeContext.java12
-rw-r--r--src/java/org/apache/fop/svg/AbstractFOPImageElementBridge.java5
-rw-r--r--src/java/org/apache/fop/svg/AbstractFOPTranscoder.java17
-rw-r--r--src/java/org/apache/fop/svg/FOPTextHandler.java3
-rw-r--r--src/java/org/apache/fop/svg/FOPTextHandlerAdapter.java31
-rw-r--r--src/java/org/apache/fop/svg/GraphicsConfiguration.java9
-rw-r--r--src/java/org/apache/fop/svg/NativeImageHandler.java1
-rw-r--r--src/java/org/apache/fop/svg/NativeTextPainter.java38
-rw-r--r--src/java/org/apache/fop/svg/PDFBridgeContext.java1
-rw-r--r--src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java6
-rw-r--r--src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java34
-rw-r--r--src/java/org/apache/fop/svg/PDFGraphics2D.java21
-rw-r--r--src/java/org/apache/fop/svg/PDFGraphicsConfiguration.java8
-rw-r--r--src/java/org/apache/fop/svg/PDFGraphicsDevice.java4
-rw-r--r--src/java/org/apache/fop/svg/PDFTextPainter.java2
-rw-r--r--src/java/org/apache/fop/svg/PDFTranscoder.java4
-rw-r--r--src/java/org/apache/fop/svg/SVGEventProducer.java5
-rw-r--r--src/java/org/apache/fop/svg/SVGUtilities.java40
18 files changed, 180 insertions, 61 deletions
diff --git a/src/java/org/apache/fop/svg/AbstractFOPBridgeContext.java b/src/java/org/apache/fop/svg/AbstractFOPBridgeContext.java
index acb59ed7d..1622d4f51 100644
--- a/src/java/org/apache/fop/svg/AbstractFOPBridgeContext.java
+++ b/src/java/org/apache/fop/svg/AbstractFOPBridgeContext.java
@@ -37,12 +37,13 @@ import org.apache.fop.fonts.FontInfo;
*/
public abstract class AbstractFOPBridgeContext extends BridgeContext {
- /** The font list. */
+ /** the font list */
protected final FontInfo fontInfo;
-
+ /** image manager */
protected final ImageManager imageManager;
+ /** image session context */
protected final ImageSessionContext imageSessionContext;
-
+ /** link transform */
protected final AffineTransform linkTransform;
/**
@@ -122,6 +123,10 @@ public abstract class AbstractFOPBridgeContext extends BridgeContext {
return this.imageSessionContext;
}
+ /**
+ * @param className name of bridge class to load and construct
+ * @param testFor class name to test for presence
+ */
protected void putElementBridgeConditional(String className, String testFor) {
try {
Class.forName(testFor);
@@ -137,6 +142,7 @@ public abstract class AbstractFOPBridgeContext extends BridgeContext {
// Make sure any 'sub bridge contexts' also have our bridges.
//TODO There's no matching method in the super-class here
+ /** @return new bridge context */
public abstract BridgeContext createBridgeContext();
}
diff --git a/src/java/org/apache/fop/svg/AbstractFOPImageElementBridge.java b/src/java/org/apache/fop/svg/AbstractFOPImageElementBridge.java
index 31895cebe..c4191077f 100644
--- a/src/java/org/apache/fop/svg/AbstractFOPImageElementBridge.java
+++ b/src/java/org/apache/fop/svg/AbstractFOPImageElementBridge.java
@@ -160,10 +160,15 @@ public abstract class AbstractFOPImageElementBridge extends SVGImageElementBridg
*/
public class LoaderImageNode extends AbstractGraphicsNode {
+ /** image */
protected final Image image;
+ /** bridge context */
protected final BridgeContext ctx;
+ /** image element */
protected final Element imageElement;
+ /** parsed url */
protected final ParsedURL purl;
+ /** original graphics mode */
protected GraphicsNode origGraphicsNode = null;
/**
diff --git a/src/java/org/apache/fop/svg/AbstractFOPTranscoder.java b/src/java/org/apache/fop/svg/AbstractFOPTranscoder.java
index eec402075..01ef22efa 100644
--- a/src/java/org/apache/fop/svg/AbstractFOPTranscoder.java
+++ b/src/java/org/apache/fop/svg/AbstractFOPTranscoder.java
@@ -26,9 +26,9 @@ import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import org.w3c.dom.DOMImplementation;
-
import org.xml.sax.EntityResolver;
+import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.configuration.DefaultConfiguration;
@@ -47,15 +47,17 @@ import org.apache.batik.util.SVGConstants;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.impl.SimpleLog;
+import org.apache.xmlgraphics.image.GraphicsConstants;
import org.apache.xmlgraphics.image.loader.ImageContext;
import org.apache.xmlgraphics.image.loader.ImageManager;
import org.apache.xmlgraphics.image.loader.ImageSessionContext;
import org.apache.xmlgraphics.image.loader.impl.AbstractImageSessionContext;
+import org.apache.xmlgraphics.util.UnitConv;
/**
* This is the common base class of all of FOP's transcoders.
*/
-public abstract class AbstractFOPTranscoder extends SVGAbstractTranscoder {
+public abstract class AbstractFOPTranscoder extends SVGAbstractTranscoder implements Configurable {
/**
* The key is used to specify the resolution for on-the-fly images generated
@@ -129,7 +131,10 @@ public abstract class AbstractFOPTranscoder extends SVGAbstractTranscoder {
this.resolver = resolver;
}
- /** {@inheritDoc} */
+ /**
+ * @param cfg the configuration
+ * @throws ConfigurationException if not caught
+ */
public void configure(Configuration cfg) throws ConfigurationException {
this.cfg = cfg;
}
@@ -222,7 +227,7 @@ public abstract class AbstractFOPTranscoder extends SVGAbstractTranscoder {
if (hints.containsKey(KEY_DEVICE_RESOLUTION)) {
return ((Float)hints.get(KEY_DEVICE_RESOLUTION)).floatValue();
} else {
- return 72;
+ return GraphicsConstants.DEFAULT_DPI;
}
}
@@ -249,7 +254,7 @@ public abstract class AbstractFOPTranscoder extends SVGAbstractTranscoder {
protected void setupImageInfrastructure(final String baseURI) {
final ImageContext imageContext = new ImageContext() {
public float getSourceResolution() {
- return 25.4f / userAgent.getPixelUnitToMillimeter();
+ return UnitConv.IN2MM / userAgent.getPixelUnitToMillimeter();
}
};
this.imageManager = new ImageManager(imageContext);
@@ -368,7 +373,7 @@ public abstract class AbstractFOPTranscoder extends SVGAbstractTranscoder {
return ((Float)getTranscodingHints().get(key)).floatValue();
} else {
// return 0.3528f; // 72 dpi
- return 25.4f / 96; //96dpi = 0.2645833333333333333f;
+ return UnitConv.IN2MM / 96; //96dpi = 0.2645833333333333333f;
}
}
diff --git a/src/java/org/apache/fop/svg/FOPTextHandler.java b/src/java/org/apache/fop/svg/FOPTextHandler.java
index 8fa9eeedd..cb59c7472 100644
--- a/src/java/org/apache/fop/svg/FOPTextHandler.java
+++ b/src/java/org/apache/fop/svg/FOPTextHandler.java
@@ -19,9 +19,12 @@
package org.apache.fop.svg;
+/** an fop extension to text handler */
public interface FOPTextHandler extends org.apache.xmlgraphics.java2d.TextHandler {
+ /** @param font override font */
void setOverrideFont(org.apache.fop.fonts.Font font);
+ /** @return font info */
org.apache.fop.fonts.FontInfo getFontInfo();
}
diff --git a/src/java/org/apache/fop/svg/FOPTextHandlerAdapter.java b/src/java/org/apache/fop/svg/FOPTextHandlerAdapter.java
new file mode 100644
index 000000000..6f326546e
--- /dev/null
+++ b/src/java/org/apache/fop/svg/FOPTextHandlerAdapter.java
@@ -0,0 +1,31 @@
+/*
+ * 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.svg;
+
+import org.apache.xmlgraphics.java2d.StrokingTextHandler;
+
+/**
+ * The <code>FOPTextHandlerAdapter</code> class is an adapter class to permit use of
+ * FOPTextHandler without incurring deprecation warnings caused by the underlying
+ * org.apache.xmlgraphics.java2d.TextHandler.drawString(String...) method.
+ * @see org.apache.xmlgraphics.java2d.TextHandler
+ */
+public abstract class FOPTextHandlerAdapter extends StrokingTextHandler implements FOPTextHandler {
+}
diff --git a/src/java/org/apache/fop/svg/GraphicsConfiguration.java b/src/java/org/apache/fop/svg/GraphicsConfiguration.java
index 881096b9a..83fd79b9d 100644
--- a/src/java/org/apache/fop/svg/GraphicsConfiguration.java
+++ b/src/java/org/apache/fop/svg/GraphicsConfiguration.java
@@ -29,9 +29,12 @@ import java.awt.image.VolatileImage;
* for JDK 1.3 because there is no VolatileImage there.
*
*/
-abstract public class GraphicsConfiguration extends java.awt.GraphicsConfiguration {
+public abstract class GraphicsConfiguration extends java.awt.GraphicsConfiguration {
/**
+ * @param width of image
+ * @param height of image
+ * @return new volatile image
* @see java.awt.GraphicsConfiguration#createCompatibleVolatileImage(int, int)
* @since JDK 1.4
*/
@@ -40,6 +43,10 @@ abstract public class GraphicsConfiguration extends java.awt.GraphicsConfigurati
}
/**
+ * @param width of image
+ * @param height of image
+ * @param transparency of image
+ * @return new volatile image
* @see java.awt.GraphicsConfiguration#createCompatibleVolatileImage(int, int, int)
* @since JDK 1.5
*/
diff --git a/src/java/org/apache/fop/svg/NativeImageHandler.java b/src/java/org/apache/fop/svg/NativeImageHandler.java
index 8e74cba1d..e9d8116e6 100644
--- a/src/java/org/apache/fop/svg/NativeImageHandler.java
+++ b/src/java/org/apache/fop/svg/NativeImageHandler.java
@@ -19,6 +19,7 @@
package org.apache.fop.svg;
+/** native image handler */
public interface NativeImageHandler {
/**
diff --git a/src/java/org/apache/fop/svg/NativeTextPainter.java b/src/java/org/apache/fop/svg/NativeTextPainter.java
index 7da7269c2..94d426396 100644
--- a/src/java/org/apache/fop/svg/NativeTextPainter.java
+++ b/src/java/org/apache/fop/svg/NativeTextPainter.java
@@ -111,9 +111,9 @@ public abstract class NativeTextPainter extends StrokingTextPainter {
String style = ((posture != null) && (posture.floatValue() > 0.0))
? Font.STYLE_ITALIC : Font.STYLE_NORMAL;
- int weight = ((taWeight != null)
- && (taWeight.floatValue() > 1.0)) ? Font.WEIGHT_BOLD
- : Font.WEIGHT_NORMAL;
+ int weight = toCSSWeight(taWeight != null
+ ? taWeight.floatValue()
+ : TextAttribute.WEIGHT_REGULAR.floatValue());
String firstFontFamily = null;
@@ -176,6 +176,28 @@ public abstract class NativeTextPainter extends StrokingTextPainter {
return (Font[])fonts.toArray(new Font[fonts.size()]);
}
+ private int toCSSWeight(float weight) {
+ if (weight <= TextAttribute.WEIGHT_EXTRA_LIGHT.floatValue()) {
+ return 100;
+ } else if (weight <= TextAttribute.WEIGHT_LIGHT.floatValue()) {
+ return 200;
+ } else if (weight <= TextAttribute.WEIGHT_DEMILIGHT.floatValue()) {
+ return 300;
+ } else if (weight <= TextAttribute.WEIGHT_REGULAR.floatValue()) {
+ return 400;
+ } else if (weight <= TextAttribute.WEIGHT_SEMIBOLD.floatValue()) {
+ return 500;
+ } else if (weight <= TextAttribute.WEIGHT_BOLD.floatValue()) {
+ return 600;
+ } else if (weight <= TextAttribute.WEIGHT_HEAVY.floatValue()) {
+ return 700;
+ } else if (weight <= TextAttribute.WEIGHT_EXTRABOLD.floatValue()) {
+ return 800;
+ } else {
+ return 900;
+ }
+ }
+
/**
* Collects all characters from an {@link AttributedCharacterIterator}.
* @param runaci the character iterator
@@ -190,6 +212,10 @@ public abstract class NativeTextPainter extends StrokingTextPainter {
return chars;
}
+ /**
+ * @param runaci an attributed character iterator
+ * @param layout a text span layout
+ */
protected final void logTextRun(AttributedCharacterIterator runaci, TextSpanLayout layout) {
if (log.isTraceEnabled()) {
int charCount = runaci.getEndIndex() - runaci.getBeginIndex();
@@ -202,6 +228,12 @@ public abstract class NativeTextPainter extends StrokingTextPainter {
}
}
+ /**
+ * @param ch a character
+ * @param layout a text span layout
+ * @param index an index
+ * @param visibleChar visible character flag
+ */
protected final void logCharacter(char ch, TextSpanLayout layout, int index,
boolean visibleChar) {
if (log.isTraceEnabled()) {
diff --git a/src/java/org/apache/fop/svg/PDFBridgeContext.java b/src/java/org/apache/fop/svg/PDFBridgeContext.java
index e8569f881..a38465ed4 100644
--- a/src/java/org/apache/fop/svg/PDFBridgeContext.java
+++ b/src/java/org/apache/fop/svg/PDFBridgeContext.java
@@ -125,6 +125,7 @@ public class PDFBridgeContext extends AbstractFOPBridgeContext {
// Make sure any 'sub bridge contexts' also have our bridges.
//TODO There's no matching method in the super-class here
+ /** @return the new bridge context */
public BridgeContext createBridgeContext() {
return new PDFBridgeContext(getUserAgent(), getDocumentLoader(),
fontInfo,
diff --git a/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java b/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java
index 7d777fa14..829d8972d 100644
--- a/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java
+++ b/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java
@@ -30,6 +30,8 @@ import java.io.IOException;
import java.io.OutputStream;
import java.io.StringWriter;
+import org.apache.xmlgraphics.image.GraphicsConstants;
+
import org.apache.fop.Version;
import org.apache.fop.fonts.FontInfo;
import org.apache.fop.fonts.FontSetup;
@@ -64,7 +66,7 @@ public class PDFDocumentGraphics2D extends PDFGraphics2D {
/** Normal PDF resolution (72dpi) */
public static final int NORMAL_PDF_RESOLUTION = 72;
/** Default device resolution (300dpi is a resonable quality for most purposes) */
- public static final int DEFAULT_NATIVE_DPI = 300;
+ public static final int DEFAULT_NATIVE_DPI = GraphicsConstants.DEFAULT_SAMPLE_DPI;
/**
* The device resolution may be different from the normal target resolution. See
@@ -257,6 +259,7 @@ public class PDFDocumentGraphics2D extends PDFGraphics2D {
if (!pdfContext.isPagePending()) {
return; //ignore
}
+ currentStream.write("Q\n");
//Finish page
PDFStream pdfStream = this.pdfDoc.getFactory().makeStream(
PDFFilterList.CONTENT_FILTER, false);
@@ -322,6 +325,7 @@ public class PDFDocumentGraphics2D extends PDFGraphics2D {
pdfContext.setCurrentPage(page);
pageRef = page.referencePDF();
+ currentStream.write("q\n");
AffineTransform at = new AffineTransform(1.0, 0.0, 0.0, -1.0,
0.0, height);
currentStream.write("1 0 0 -1 0 " + height + " cm\n");
diff --git a/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java b/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java
index b77518ab0..24974b01a 100644
--- a/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java
+++ b/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java
@@ -25,12 +25,15 @@ import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.fop.apps.FOPException;
+import org.apache.fop.fonts.CustomFontCollection;
+import org.apache.fop.fonts.FontCollection;
import org.apache.fop.fonts.FontEventListener;
import org.apache.fop.fonts.FontInfo;
import org.apache.fop.fonts.FontInfoConfigurator;
import org.apache.fop.fonts.FontManager;
+import org.apache.fop.fonts.FontManagerConfigurator;
import org.apache.fop.fonts.FontResolver;
-import org.apache.fop.fonts.FontSetup;
+import org.apache.fop.fonts.base14.Base14FontCollection;
import org.apache.fop.pdf.PDFDocument;
import org.apache.fop.render.pdf.PDFRendererConfigurator;
@@ -70,29 +73,30 @@ public class PDFDocumentGraphics2DConfigurator {
*/
public static FontInfo createFontInfo(Configuration cfg) throws FOPException {
FontInfo fontInfo = new FontInfo();
+ final boolean strict = false;
+ FontResolver fontResolver = FontManager.createMinimalFontResolver();
+ //TODO The following could be optimized by retaining the FontManager somewhere
+ FontManager fontManager = new FontManager();
if (cfg != null) {
- FontResolver fontResolver = FontManager.createMinimalFontResolver();
- //TODO The following could be optimized by retaining the FontManager somewhere
- FontManager fontManager = new FontManager();
+ FontManagerConfigurator fmConfigurator = new FontManagerConfigurator(cfg);
+ fmConfigurator.configure(fontManager, strict);
+ }
- //TODO Make use of fontBaseURL, font substitution and referencing configuration
- //Requires a change to the expected configuration layout
+ List fontCollections = new java.util.ArrayList();
+ fontCollections.add(new Base14FontCollection(fontManager.isBase14KerningEnabled()));
+ if (cfg != null) {
//TODO Wire in the FontEventListener
- final FontEventListener listener = null;
- final boolean strict = false;
+ FontEventListener listener = null; //new FontEventAdapter(eventBroadcaster);
FontInfoConfigurator fontInfoConfigurator
= new FontInfoConfigurator(cfg, fontManager, fontResolver, listener, strict);
List/*<EmbedFontInfo>*/ fontInfoList = new java.util.ArrayList/*<EmbedFontInfo>*/();
fontInfoConfigurator.configure(fontInfoList);
-
- if (fontManager.useCache()) {
- fontManager.getFontCache().save();
- }
- FontSetup.setup(fontInfo, fontInfoList, fontResolver);
- } else {
- FontSetup.setup(fontInfo);
+ fontCollections.add(new CustomFontCollection(fontResolver, fontInfoList));
}
+ fontManager.setup(fontInfo,
+ (FontCollection[])fontCollections.toArray(
+ new FontCollection[fontCollections.size()]));
return fontInfo;
}
diff --git a/src/java/org/apache/fop/svg/PDFGraphics2D.java b/src/java/org/apache/fop/svg/PDFGraphics2D.java
index fee91bbf8..e93914258 100644
--- a/src/java/org/apache/fop/svg/PDFGraphics2D.java
+++ b/src/java/org/apache/fop/svg/PDFGraphics2D.java
@@ -60,6 +60,7 @@ import org.apache.batik.ext.awt.RenderingHintsKeyExt;
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.PatternPaint;
+import org.apache.xmlgraphics.image.GraphicsConstants;
import org.apache.xmlgraphics.image.loader.ImageInfo;
import org.apache.xmlgraphics.image.loader.ImageSize;
import org.apache.xmlgraphics.image.loader.impl.ImageRawCCITTFax;
@@ -762,7 +763,7 @@ public class PDFGraphics2D extends AbstractGraphics2D implements NativeImageHand
* @param fill true if the paint should be set for filling
* @return true if the paint is handled natively, false if the paint should be rasterized
*/
- protected boolean applyPaint(Paint paint, boolean fill) {
+ protected boolean applyPaint(Paint paint, boolean fill) { // CSOK: MethodLength
preparePainting();
if (paint instanceof Color) {
@@ -1039,6 +1040,11 @@ public class PDFGraphics2D extends AbstractGraphics2D implements NativeImageHand
return true;
}
+ /**
+ * @param paint some paint
+ * @param shape a shape
+ * @return true (always)
+ */
protected boolean applyUnknownPaint(Paint paint, Shape shape) {
preparePainting();
@@ -1186,6 +1192,8 @@ public class PDFGraphics2D extends AbstractGraphics2D implements NativeImageHand
case BasicStroke.CAP_SQUARE:
currentStream.write(2 + " J\n");
break;
+ default:
+ break;
}
int lj = bs.getLineJoin();
@@ -1199,6 +1207,8 @@ public class PDFGraphics2D extends AbstractGraphics2D implements NativeImageHand
case BasicStroke.JOIN_BEVEL:
currentStream.write(2 + " j\n");
break;
+ default:
+ break;
}
float lw = bs.getLineWidth();
currentStream.write(PDFNumber.doubleOut(lw) + " w\n");
@@ -1214,7 +1224,11 @@ public class PDFGraphics2D extends AbstractGraphics2D implements NativeImageHand
drawInnerRenderedImage(key, img, xform);
}
- /** {@inheritDoc} */
+ /**
+ * @param key a key
+ * @param img an image
+ * @param xform a transform
+ */
public void drawInnerRenderedImage(String key, RenderedImage img, AffineTransform xform) {
preparePainting();
PDFXObject xObject = pdfDoc.getXObject(key);
@@ -1243,7 +1257,8 @@ public class PDFGraphics2D extends AbstractGraphics2D implements NativeImageHand
private PDFXObject addRenderedImage(String key, RenderedImage img) {
ImageInfo info = new ImageInfo(null, "image/unknown");
- ImageSize size = new ImageSize(img.getWidth(), img.getHeight(), 72);
+ ImageSize size = new ImageSize(img.getWidth(), img.getHeight(),
+ GraphicsConstants.DEFAULT_DPI);
info.setSize(size);
ImageRendered imgRend = new ImageRendered(info, img, null);
ImageRenderedAdapter adapter = new ImageRenderedAdapter(imgRend, key);
diff --git a/src/java/org/apache/fop/svg/PDFGraphicsConfiguration.java b/src/java/org/apache/fop/svg/PDFGraphicsConfiguration.java
index 4ec6ad634..a41b7e229 100644
--- a/src/java/org/apache/fop/svg/PDFGraphicsConfiguration.java
+++ b/src/java/org/apache/fop/svg/PDFGraphicsConfiguration.java
@@ -33,11 +33,11 @@ import java.awt.image.ColorModel;
*/
class PDFGraphicsConfiguration extends GraphicsConfiguration {
// We use this to get a good colormodel..
- private static final BufferedImage BI_WITH_ALPHA =
- new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
+ private static final BufferedImage BI_WITH_ALPHA
+ = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
// We use this to get a good colormodel..
- private static final BufferedImage BI_WITHOUT_ALPHA =
- new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
+ private static final BufferedImage BI_WITHOUT_ALPHA
+ = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
/**
* Construct a buffered image with an alpha channel, unless
diff --git a/src/java/org/apache/fop/svg/PDFGraphicsDevice.java b/src/java/org/apache/fop/svg/PDFGraphicsDevice.java
index 5da2d50ee..538dd16c2 100644
--- a/src/java/org/apache/fop/svg/PDFGraphicsDevice.java
+++ b/src/java/org/apache/fop/svg/PDFGraphicsDevice.java
@@ -39,7 +39,7 @@ class PDFGraphicsDevice extends GraphicsDevice {
/**
* Create a new PDF graphics device.
*
- * @param The gc we should reference
+ * @param gc The graphics configuration we should reference
*/
PDFGraphicsDevice(PDFGraphicsConfiguration gc) {
this.gc = gc;
@@ -62,7 +62,7 @@ class PDFGraphicsDevice extends GraphicsDevice {
* @return an array containing the one graphics configuration
*/
public GraphicsConfiguration[] getConfigurations() {
- return new GraphicsConfiguration[]{ gc };
+ return new GraphicsConfiguration[] {gc};
}
/**
diff --git a/src/java/org/apache/fop/svg/PDFTextPainter.java b/src/java/org/apache/fop/svg/PDFTextPainter.java
index e962d5a59..fe8ad1c7e 100644
--- a/src/java/org/apache/fop/svg/PDFTextPainter.java
+++ b/src/java/org/apache/fop/svg/PDFTextPainter.java
@@ -40,7 +40,7 @@ import org.apache.fop.fonts.FontInfo;
import org.apache.fop.util.CharUtilities;
/**
- * Renders the attributed character iterator of a {@link TextNode}.
+ * Renders the attributed character iterator of a {@link org.apache.batik.gvt.TextNode}.
* This class draws the text directly into the PDFGraphics2D so that
* the text is not drawn using shapes which makes the PDF files larger.
* If the text is simple enough to draw then it sets the font and calls
diff --git a/src/java/org/apache/fop/svg/PDFTranscoder.java b/src/java/org/apache/fop/svg/PDFTranscoder.java
index fc27cb48a..bf08b2fcf 100644
--- a/src/java/org/apache/fop/svg/PDFTranscoder.java
+++ b/src/java/org/apache/fop/svg/PDFTranscoder.java
@@ -27,7 +27,6 @@ import java.io.OutputStream;
import org.w3c.dom.Document;
import org.w3c.dom.svg.SVGLength;
-import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.batik.bridge.BridgeContext;
import org.apache.batik.bridge.UnitProcessor;
@@ -73,8 +72,7 @@ import org.apache.fop.fonts.FontInfo;
* @author <a href="mailto:keiron@aftexsw.com">Keiron Liddle</a>
* @version $Id$
*/
-public class PDFTranscoder extends AbstractFOPTranscoder
- implements Configurable {
+public class PDFTranscoder extends AbstractFOPTranscoder {
/** Graphics2D instance that is used to paint to */
protected PDFDocumentGraphics2D graphics = null;
diff --git a/src/java/org/apache/fop/svg/SVGEventProducer.java b/src/java/org/apache/fop/svg/SVGEventProducer.java
index 27d7da215..743649717 100644
--- a/src/java/org/apache/fop/svg/SVGEventProducer.java
+++ b/src/java/org/apache/fop/svg/SVGEventProducer.java
@@ -30,7 +30,10 @@ public interface SVGEventProducer extends EventProducer {
/**
* Provider class for the event producer.
*/
- class Provider {
+ final class Provider {
+
+ private Provider() {
+ }
/**
* Returns an event producer.
diff --git a/src/java/org/apache/fop/svg/SVGUtilities.java b/src/java/org/apache/fop/svg/SVGUtilities.java
index 97cd31eed..3401307cf 100644
--- a/src/java/org/apache/fop/svg/SVGUtilities.java
+++ b/src/java/org/apache/fop/svg/SVGUtilities.java
@@ -34,7 +34,11 @@ import org.apache.batik.util.XMLConstants;
/**
* Some utilities for creating svg DOM documents and elements.
*/
-public class SVGUtilities {
+public final class SVGUtilities {
+
+ private SVGUtilities() {
+ }
+
private static final String SVG_NS = SVGDOMImplementation.SVG_NAMESPACE_URI;
/**
@@ -43,7 +47,7 @@ public class SVGUtilities {
* @param height the height of the root svg element
* @return a new SVG Document
*/
- public static final Document createSVGDocument(float width,
+ public static Document createSVGDocument(float width,
float height) {
DOMImplementation impl = SVGDOMImplementation.getDOMImplementation();
Document doc = impl.createDocument(SVG_NS, "svg", null);
@@ -60,9 +64,9 @@ public class SVGUtilities {
* @param font the font
* @return the width of the string in the given font
*/
- public static final float getStringWidth(String str, java.awt.Font font) {
- Rectangle2D rect =
- font.getStringBounds(str, 0, str.length(),
+ public static float getStringWidth(String str, java.awt.Font font) {
+ Rectangle2D rect
+ = font.getStringBounds(str, 0, str.length(),
new FontRenderContext(new AffineTransform(),
true, true));
return (float)rect.getWidth();
@@ -74,10 +78,10 @@ public class SVGUtilities {
* @param font the font
* @return the height of the string in the given font
*/
- public static final float getStringHeight(String str,
+ public static float getStringHeight(String str,
java.awt.Font font) {
- Rectangle2D rect =
- font.getStringBounds(str, 0, str.length(),
+ Rectangle2D rect
+ = font.getStringBounds(str, 0, str.length(),
new FontRenderContext(new AffineTransform(),
true, true));
return (float)rect.getHeight();
@@ -89,7 +93,7 @@ public class SVGUtilities {
* @param font the font
* @return the bounds of the string
*/
- public static final Rectangle2D getStringBounds(String str,
+ public static Rectangle2D getStringBounds(String str,
java.awt.Font font) {
return font.getStringBounds(str, 0, str.length(),
new FontRenderContext(new AffineTransform(),
@@ -105,7 +109,7 @@ public class SVGUtilities {
* @param y2 the end y position
* @return the new line element
*/
- public static final Element createLine(Document doc, float x, float y,
+ public static Element createLine(Document doc, float x, float y,
float x2, float y2) {
Element ellipse = doc.createElementNS(SVG_NS, "line");
ellipse.setAttributeNS(null, "x1", "" + x);
@@ -124,7 +128,7 @@ public class SVGUtilities {
* @param ry the y axis radius
* @return the new ellipse element
*/
- public static final Element createEllipse(Document doc, float cx,
+ public static Element createEllipse(Document doc, float cx,
float cy, float rx, float ry) {
Element ellipse = doc.createElementNS(SVG_NS, "ellipse");
ellipse.setAttributeNS(null, "cx", "" + cx);
@@ -140,7 +144,7 @@ public class SVGUtilities {
* @param str the string for the d attribute on the path
* @return the new path element
*/
- public static final Element createPath(Document doc, String str) {
+ public static Element createPath(Document doc, String str) {
Element path = doc.createElementNS(SVG_NS, "path");
path.setAttributeNS(null, "d", str);
return path;
@@ -154,7 +158,7 @@ public class SVGUtilities {
* @param str the string
* @return the new text element
*/
- public static final Element createText(Document doc, float x, float y,
+ public static Element createText(Document doc, float x, float y,
String str) {
Element textGraph = doc.createElementNS(SVG_NS, "text");
textGraph.setAttributeNS(null, "x", "" + x);
@@ -173,7 +177,7 @@ public class SVGUtilities {
* @param height the height of the rectangle
* @return the new rectangle element
*/
- public static final Element createRect(Document doc, float x, float y,
+ public static Element createRect(Document doc, float x, float y,
float width, float height) {
Element border = doc.createElementNS(SVG_NS, "rect");
border.setAttributeNS(null, "x", "" + x);
@@ -188,7 +192,7 @@ public class SVGUtilities {
* @param doc the document to create the element
* @return the new g element
*/
- public static final Element createG(Document doc) {
+ public static Element createG(Document doc) {
Element border = doc.createElementNS(SVG_NS, "g");
return border;
}
@@ -200,7 +204,7 @@ public class SVGUtilities {
* @param id the id of the clipping path
* @return the new clip element
*/
- public static final Element createClip(Document doc, Element els,
+ public static Element createClip(Document doc, Element els,
String id) {
Element border = doc.createElementNS(SVG_NS, "clipPath");
border.setAttributeNS(null, "id", id);
@@ -216,7 +220,7 @@ public class SVGUtilities {
* @param height the height to set on the image
* @return a new image element
*/
- public static final Element createImage(Document doc, String ref,
+ public static Element createImage(Document doc, String ref,
float width, float height) {
Element border = doc.createElementNS(SVG_NS, "image");
border.setAttributeNS(XMLConstants.XLINK_NAMESPACE_URI, "href",
@@ -234,7 +238,7 @@ public class SVGUtilities {
* @param width the width to wrap
* @return the new element containing the wrapped text
*/
- public static final Element wrapText(Document doc, String str,
+ public static Element wrapText(Document doc, String str,
java.awt.Font font, float width) {
Element g = createG(doc);
Element text;