git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1358259 13f79535-47bb-0310-9956-ffa450edef68tags/fop-2_0
@@ -26,6 +26,7 @@ import java.awt.Dimension; | |||
import java.awt.Font; | |||
import java.awt.FontMetrics; | |||
import java.awt.Graphics; | |||
import java.awt.Graphics2D; | |||
import java.awt.GraphicsConfiguration; | |||
import java.awt.Image; | |||
import java.awt.Paint; | |||
@@ -52,13 +53,13 @@ import org.apache.xmlgraphics.image.loader.ImageSize; | |||
import org.apache.xmlgraphics.image.loader.impl.ImageRendered; | |||
import org.apache.xmlgraphics.java2d.AbstractGraphics2D; | |||
import org.apache.xmlgraphics.java2d.GraphicContext; | |||
import org.apache.xmlgraphics.java2d.GraphicsConfigurationWithTransparency; | |||
import org.apache.xmlgraphics.java2d.StrokingTextHandler; | |||
import org.apache.xmlgraphics.java2d.TextHandler; | |||
import org.apache.xmlgraphics.util.UnitConv; | |||
import org.apache.fop.afp.goca.GraphicsSetLineType; | |||
import org.apache.fop.afp.modca.GraphicsObject; | |||
import org.apache.fop.afp.svg.AFPGraphicsConfiguration; | |||
import org.apache.fop.afp.util.CubicBezierApproximator; | |||
import org.apache.fop.fonts.FontInfo; | |||
import org.apache.fop.render.afp.AFPImageHandlerRenderedImage; | |||
@@ -111,7 +112,7 @@ public class AFPGraphics2D extends AbstractGraphics2D implements NativeImageHand | |||
private AFPPaintingState paintingState = null; | |||
/** AFP graphics configuration */ | |||
private final AFPGraphicsConfiguration graphicsConfig = new AFPGraphicsConfiguration(); | |||
private final GraphicsConfigurationWithTransparency graphicsConfig = new GraphicsConfigurationWithTransparency(); | |||
/** The AFP FontInfo */ | |||
private FontInfo fontInfo; |
@@ -1,152 +0,0 @@ | |||
/* | |||
* 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.afp.svg; | |||
import java.awt.GraphicsDevice; | |||
import java.awt.Rectangle; | |||
import java.awt.Transparency; | |||
import java.awt.geom.AffineTransform; | |||
import java.awt.image.BufferedImage; | |||
import java.awt.image.ColorModel; | |||
import org.apache.commons.logging.Log; | |||
import org.apache.commons.logging.LogFactory; | |||
import org.apache.fop.svg.GraphicsConfiguration; | |||
/** | |||
* Our implementation of the class that returns information about | |||
* roughly what we can handle and want to see (alpha for example). | |||
*/ | |||
public class AFPGraphicsConfiguration 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); | |||
// We use this to get a good colormodel.. | |||
private static final BufferedImage BI_WITHOUT_ALPHA | |||
= new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB); | |||
/** | |||
* Construct a buffered image with an alpha channel, unless | |||
* transparencty is OPAQUE (no alpha at all). | |||
* | |||
* @param width the width of the image | |||
* @param height the height of the image | |||
* @param transparency the alpha value of the image | |||
* @return the new buffered image | |||
*/ | |||
public BufferedImage createCompatibleImage(int width, int height, | |||
int transparency) { | |||
if (transparency == Transparency.OPAQUE) { | |||
return new BufferedImage(width, height, | |||
BufferedImage.TYPE_INT_RGB); | |||
} else { | |||
return new BufferedImage(width, height, | |||
BufferedImage.TYPE_INT_ARGB); | |||
} | |||
} | |||
/** | |||
* Construct a buffered image with an alpha channel. | |||
* | |||
* @param width the width of the image | |||
* @param height the height of the image | |||
* @return the new buffered image | |||
*/ | |||
public BufferedImage createCompatibleImage(int width, int height) { | |||
return new BufferedImage(width, height, | |||
BufferedImage.TYPE_INT_ARGB); | |||
} | |||
/** | |||
* TODO: This should return the page bounds in Pts, | |||
* I couldn't figure out how to get this for the current | |||
* page (this still works for now, | |||
* but it should be fixed...). | |||
* | |||
* @return the bounds of the page | |||
*/ | |||
public Rectangle getBounds() { | |||
return null; | |||
} | |||
/** | |||
* Return a good default color model for this 'device'. | |||
* @return the colour model for the configuration | |||
*/ | |||
public ColorModel getColorModel() { | |||
return BI_WITH_ALPHA.getColorModel(); | |||
} | |||
/** | |||
* Return a good color model given <code>transparency</code> | |||
* | |||
* @param transparency the alpha value for the colour model | |||
* @return the colour model for the configuration | |||
*/ | |||
public ColorModel getColorModel(int transparency) { | |||
if (transparency == Transparency.OPAQUE) { | |||
return BI_WITHOUT_ALPHA.getColorModel(); | |||
} else { | |||
return BI_WITH_ALPHA.getColorModel(); | |||
} | |||
} | |||
private static final Log LOG | |||
= LogFactory.getLog(AFPGraphicsConfiguration.class); | |||
private AffineTransform defaultTransform = null; | |||
private AffineTransform normalizingTransform = null; | |||
private final GraphicsDevice graphicsDevice = new AFPGraphicsDevice(this);; | |||
/** | |||
* The default transform (1:1). | |||
* | |||
* @return the default transform for the configuration | |||
*/ | |||
public AffineTransform getDefaultTransform() { | |||
LOG.debug("getDefaultTransform()"); | |||
if (defaultTransform == null) { | |||
defaultTransform = new AffineTransform(); | |||
} | |||
return defaultTransform; | |||
} | |||
/** | |||
* The normalizing transform (1:1) (since we currently | |||
* render images at 72dpi, which we might want to change | |||
* in the future). | |||
* | |||
* @return the normalizing transform for the configuration | |||
*/ | |||
public AffineTransform getNormalizingTransform() { | |||
LOG.debug("getNormalizingTransform()"); | |||
if (normalizingTransform == null) { | |||
normalizingTransform = new AffineTransform(2, 0, 0, 2, 0, 0); | |||
} | |||
return normalizingTransform; | |||
} | |||
/** {@inheritDoc} */ | |||
public GraphicsDevice getDevice() { | |||
LOG.debug("getDevice()"); | |||
return graphicsDevice; | |||
} | |||
} |
@@ -1,80 +0,0 @@ | |||
/* | |||
* 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.afp.svg; | |||
import java.awt.GraphicsConfiguration; | |||
import java.awt.GraphicsDevice; | |||
/** | |||
* This implements the GraphicsDevice interface as appropriate for | |||
* an AFPGraphics2D. | |||
*/ | |||
public class AFPGraphicsDevice extends GraphicsDevice { | |||
/** | |||
* The Graphics Config that created us... | |||
*/ | |||
protected GraphicsConfiguration gc; | |||
/** | |||
* Create a new AF{ graphics device. | |||
* | |||
* @param gc The graphics configuration we should reference | |||
*/ | |||
public AFPGraphicsDevice(AFPGraphicsConfiguration gc) { | |||
this.gc = gc; | |||
} | |||
/** | |||
* Return an array of our one GraphicsConfig | |||
* | |||
* @return an array containing the one graphics configuration | |||
*/ | |||
public GraphicsConfiguration[] getConfigurations() { | |||
return new GraphicsConfiguration[] {gc}; | |||
} | |||
/** | |||
* Return out sole GraphicsConfig. | |||
* | |||
* @return the graphics configuration that created this object | |||
*/ | |||
public GraphicsConfiguration getDefaultConfiguration() { | |||
return this.gc; | |||
} | |||
/** | |||
* Generate an IdString.. | |||
* | |||
* @return the ID string for this device, uses toString | |||
*/ | |||
public String getIDstring() { | |||
return toString(); | |||
} | |||
/** | |||
* Let the caller know that we are "a printer" | |||
* | |||
* @return the type which is always printer | |||
*/ | |||
public int getType() { | |||
return GraphicsDevice.TYPE_PRINTER; | |||
} | |||
} |
@@ -68,6 +68,7 @@ import org.apache.xmlgraphics.image.loader.impl.ImageRawJPEG; | |||
import org.apache.xmlgraphics.image.loader.impl.ImageRendered; | |||
import org.apache.xmlgraphics.java2d.AbstractGraphics2D; | |||
import org.apache.xmlgraphics.java2d.GraphicContext; | |||
import org.apache.xmlgraphics.java2d.GraphicsConfigurationWithTransparency; | |||
import org.apache.fop.fonts.Font; | |||
import org.apache.fop.fonts.FontInfo; | |||
@@ -1765,7 +1766,7 @@ public class PDFGraphics2D extends AbstractGraphics2D implements NativeImageHand | |||
*/ | |||
@Override | |||
public GraphicsConfiguration getDeviceConfiguration() { | |||
return new PDFGraphicsConfiguration(); | |||
return new GraphicsConfigurationWithTransparency(); | |||
} | |||
/** |