You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by me...@apache.org on 2012/07/03 11:47:25 UTC
svn commit: r1356646 [6/12] - in /xmlgraphics/fop/trunk: ./
examples/embedding/java/embedding/ examples/embedding/java/embedding/atxml/
examples/embedding/java/embedding/events/
examples/embedding/java/embedding/intermediate/ src/java/org/apache/fop/af...
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPRendererConfigurator.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPRendererConfigurator.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPRendererConfigurator.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPRendererConfigurator.java Tue Jul 3 09:46:41 2012
@@ -19,42 +19,24 @@
package org.apache.fop.render.afp;
-import java.io.File;
import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
-import org.apache.fop.afp.AFPConstants;
import org.apache.fop.afp.AFPEventProducer;
-import org.apache.fop.afp.AFPResourceLevel;
import org.apache.fop.afp.AFPResourceLevelDefaults;
-import org.apache.fop.afp.fonts.AFPFont;
import org.apache.fop.afp.fonts.AFPFontCollection;
import org.apache.fop.afp.fonts.AFPFontInfo;
-import org.apache.fop.afp.fonts.CharacterSet;
-import org.apache.fop.afp.fonts.CharacterSetBuilder;
-import org.apache.fop.afp.fonts.CharacterSetType;
-import org.apache.fop.afp.fonts.DoubleByteFont;
-import org.apache.fop.afp.fonts.OutlineFont;
-import org.apache.fop.afp.fonts.RasterFont;
-import org.apache.fop.afp.util.DefaultFOPResourceAccessor;
-import org.apache.fop.afp.util.ResourceAccessor;
import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.FOUserAgent;
+import org.apache.fop.apps.io.InternalResourceResolver;
import org.apache.fop.fonts.FontCollection;
-import org.apache.fop.fonts.FontInfo;
-import org.apache.fop.fonts.FontManager;
-import org.apache.fop.fonts.FontManagerConfigurator;
-import org.apache.fop.fonts.FontTriplet;
-import org.apache.fop.fonts.FontUtil;
-import org.apache.fop.fonts.Typeface;
import org.apache.fop.render.PrintRendererConfigurator;
-import org.apache.fop.render.Renderer;
+import org.apache.fop.render.RendererConfig.RendererConfigParser;
+import org.apache.fop.render.afp.AFPFontConfig.AFPFontConfigData;
import org.apache.fop.render.intermediate.IFDocumentHandler;
import org.apache.fop.render.intermediate.IFDocumentHandlerConfigurator;
import org.apache.fop.util.LogUtil;
@@ -62,8 +44,9 @@ import org.apache.fop.util.LogUtil;
/**
* AFP Renderer configurator
*/
-public class AFPRendererConfigurator extends PrintRendererConfigurator
- implements IFDocumentHandlerConfigurator {
+public class AFPRendererConfigurator extends PrintRendererConfigurator implements
+ IFDocumentHandlerConfigurator {
+ private static Log LOG = LogFactory.getLog(AFPRendererConfigurator.class);
private final AFPEventProducer eventProducer;
@@ -72,470 +55,104 @@ public class AFPRendererConfigurator ext
*
* @param userAgent user agent
*/
- public AFPRendererConfigurator(FOUserAgent userAgent) {
- super(userAgent);
+ public AFPRendererConfigurator(FOUserAgent userAgent, RendererConfigParser rendererConfigParser) {
+ super(userAgent, rendererConfigParser);
eventProducer = AFPEventProducer.Provider.get(userAgent.getEventBroadcaster());
}
- private AFPFontInfo buildFont(Configuration fontCfg, String fontPath)
- throws ConfigurationException {
- FontManager fontManager = this.userAgent.getFactory().getFontManager();
-
- Configuration[] triple = fontCfg.getChildren("font-triplet");
- List<FontTriplet> tripletList = new ArrayList<FontTriplet>();
- if (triple.length == 0) {
- eventProducer.fontConfigMissing(this, "<font-triplet...", fontCfg.getLocation());
- return null;
- }
- for (Configuration config : triple) {
- int weight = FontUtil.parseCSS2FontWeight(config.getAttribute("weight"));
- FontTriplet triplet = new FontTriplet(config.getAttribute("name"),
- config.getAttribute("style"),
- weight);
- tripletList.add(triplet);
- }
-
- //build the fonts
- Configuration[] config = fontCfg.getChildren("afp-font");
- if (config.length == 0) {
- eventProducer.fontConfigMissing(this, "<afp-font...", fontCfg.getLocation());
- return null;
- }
- Configuration afpFontCfg = config[0];
-
- URI baseURI = null;
- String uri = afpFontCfg.getAttribute("base-uri", fontPath);
- if (uri == null) {
- //Fallback for old attribute which only supports local filenames
- String path = afpFontCfg.getAttribute("path", fontPath);
- if (path != null) {
- File f = new File(path);
- baseURI = f.toURI();
- }
- } else {
- try {
- baseURI = new URI(uri);
- } catch (URISyntaxException e) {
- eventProducer.invalidConfiguration(this, e);
- return null;
- }
- }
- ResourceAccessor accessor = new DefaultFOPResourceAccessor(
- this.userAgent,
- fontManager.getFontBaseURL(),
- baseURI);
-
- AFPFont font = null;
- try {
- String type = afpFontCfg.getAttribute("type");
- if (type == null) {
- eventProducer.fontConfigMissing(this, "type attribute", fontCfg.getLocation());
- return null;
- }
- String codepage = afpFontCfg.getAttribute("codepage");
- if (codepage == null) {
- eventProducer.fontConfigMissing(this, "codepage attribute",
- fontCfg.getLocation());
- return null;
- }
- String encoding = afpFontCfg.getAttribute("encoding");
- if (encoding == null) {
- eventProducer.fontConfigMissing(this, "encoding attribute",
- fontCfg.getLocation());
- return null;
- }
- font = fontFromType(type, codepage, encoding, accessor, afpFontCfg);
- } catch (ConfigurationException ce) {
- eventProducer.invalidConfiguration(this, ce);
- } catch (IOException ioe) {
- eventProducer.invalidConfiguration(this, ioe);
- } catch (IllegalArgumentException iae) {
- eventProducer.invalidConfiguration(this, iae);
+ @Override
+ public void configure(IFDocumentHandler documentHandler) throws FOPException {
+ AFPRendererConfig config = (AFPRendererConfig) getRendererConfig(documentHandler);
+ if (config != null) {
+ AFPDocumentHandler afpDocumentHandler = (AFPDocumentHandler) documentHandler;
+ configure(afpDocumentHandler, config);
}
-
- return font != null ? new AFPFontInfo(font, tripletList) : null;
}
-
- /**
- * Create the AFPFont based on type and type-dependent configuration.
- *
- * @param type font type e.g. 'raster', 'outline'
- * @param codepage codepage file
- * @param encoding character encoding e.g. 'Cp500', 'UnicodeBigUnmarked'
- * @param accessor
- * @param afpFontCfg
- * @return the created AFPFont
- * @throws ConfigurationException
- */
- private AFPFont fontFromType(String type, String codepage, String encoding,
- ResourceAccessor accessor, Configuration afpFontCfg) throws ConfigurationException,
- IOException {
-
- if ("raster".equalsIgnoreCase(type)) {
-
- String name = afpFontCfg.getAttribute("name", "Unknown");
-
- // Create a new font object
- RasterFont font = new RasterFont(name);
-
- Configuration[] rasters = afpFontCfg.getChildren("afp-raster-font");
- if (rasters.length == 0) {
- eventProducer.fontConfigMissing(this, "<afp-raster-font...",
- afpFontCfg.getLocation());
- return null;
- }
- for (int j = 0; j < rasters.length; j++) {
- Configuration rasterCfg = rasters[j];
-
- String characterset = rasterCfg.getAttribute("characterset");
-
- if (characterset == null) {
- eventProducer.fontConfigMissing(this, "characterset attribute",
- afpFontCfg.getLocation());
- return null;
- }
- float size = rasterCfg.getAttributeAsFloat("size");
- int sizeMpt = (int) (size * 1000);
- String base14 = rasterCfg.getAttribute("base14-font", null);
-
- if (base14 != null) {
- try {
- Class<? extends Typeface> clazz = Class.forName(
- "org.apache.fop.fonts.base14." + base14).asSubclass(Typeface.class);
- try {
- Typeface tf = clazz.newInstance();
- font.addCharacterSet(sizeMpt,
- CharacterSetBuilder.getSingleByteInstance()
- .build(characterset, codepage, encoding, tf,
- eventProducer));
- } catch (Exception ie) {
- String msg = "The base 14 font class " + clazz.getName()
- + " could not be instantiated";
- log.error(msg);
- }
- } catch (ClassNotFoundException cnfe) {
- String msg = "The base 14 font class for " + characterset
- + " could not be found";
- log.error(msg);
- }
- } else {
- font.addCharacterSet(sizeMpt, CharacterSetBuilder.getSingleByteInstance()
- .buildSBCS(characterset, codepage, encoding, accessor, eventProducer));
- }
- }
- return font;
-
- } else if ("outline".equalsIgnoreCase(type)) {
- String characterset = afpFontCfg.getAttribute("characterset");
- if (characterset == null) {
- eventProducer.fontConfigMissing(this, "characterset attribute",
- afpFontCfg.getLocation());
- return null;
- }
- String name = afpFontCfg.getAttribute("name", characterset);
- CharacterSet characterSet = null;
- String base14 = afpFontCfg.getAttribute("base14-font", null);
- if (base14 != null) {
- try {
- Class<? extends Typeface> clazz = Class.forName("org.apache.fop.fonts.base14."
- + base14).asSubclass(Typeface.class);
- try {
- Typeface tf = clazz.newInstance();
- characterSet = CharacterSetBuilder.getSingleByteInstance()
- .build(characterset, codepage, encoding, tf, eventProducer);
- } catch (Exception ie) {
- String msg = "The base 14 font class " + clazz.getName()
- + " could not be instantiated";
- log.error(msg);
- }
- } catch (ClassNotFoundException cnfe) {
- String msg = "The base 14 font class for " + characterset
- + " could not be found";
- log.error(msg);
- }
+ private void configure(AFPDocumentHandler documentHandler, AFPRendererConfig config) {
+ Boolean colorImages = config.isColorImages();
+ if (colorImages != null) {
+ documentHandler.setColorImages(colorImages);
+ if (colorImages) {
+ documentHandler.setCMYKImagesSupported(config.isCmykImagesSupported());
} else {
- characterSet = CharacterSetBuilder.getSingleByteInstance().buildSBCS(
- characterset, codepage, encoding, accessor, eventProducer);
+ documentHandler.setBitsPerPixel(config.getBitsPerPixel());
}
- // Return new font object
- return new OutlineFont(name, characterSet);
-
- } else if ("CIDKeyed".equalsIgnoreCase(type)) {
- String characterset = afpFontCfg.getAttribute("characterset");
- if (characterset == null) {
- eventProducer.fontConfigMissing(this, "characterset attribute",
- afpFontCfg.getLocation());
- return null;
- }
- String name = afpFontCfg.getAttribute("name", characterset);
- CharacterSet characterSet = null;
- CharacterSetType charsetType = afpFontCfg.getAttributeAsBoolean("ebcdic-dbcs", false)
- ? CharacterSetType.DOUBLE_BYTE_LINE_DATA : CharacterSetType.DOUBLE_BYTE;
- characterSet = CharacterSetBuilder.getDoubleByteInstance().buildDBCS(characterset,
- codepage, encoding, charsetType, accessor, eventProducer);
-
- // Create a new font object
- DoubleByteFont font = new DoubleByteFont(name, characterSet);
- return font;
-
- } else {
- log.error("No or incorrect type attribute: " + type);
}
-
- return null;
- }
-
- /**
- * Builds a list of AFPFontInfo objects for use with the setup() method.
- *
- * @param cfg Configuration object
- * @param eventProducer for AFP font related events
- * @return List the newly created list of fonts
- * @throws ConfigurationException if something's wrong with the config data
- */
- private List<AFPFontInfo> buildFontListFromConfiguration(Configuration cfg,
- AFPEventProducer eventProducer) throws FOPException, ConfigurationException {
-
- Configuration fonts = cfg.getChild("fonts");
- FontManager fontManager = this.userAgent.getFactory().getFontManager();
-
- // General matcher
- FontTriplet.Matcher referencedFontsMatcher = fontManager.getReferencedFontsMatcher();
- // Renderer-specific matcher
- FontTriplet.Matcher localMatcher = null;
-
- // Renderer-specific referenced fonts
- Configuration referencedFontsCfg = fonts.getChild("referenced-fonts", false);
- if (referencedFontsCfg != null) {
- localMatcher = FontManagerConfigurator.createFontsMatcher(
- referencedFontsCfg, this.userAgent.getFactory().validateUserConfigStrictly());
- }
-
- List<AFPFontInfo> fontList = new java.util.ArrayList<AFPFontInfo>();
- Configuration[] font = fonts.getChildren("font");
- final String fontPath = null;
- for (int i = 0; i < font.length; i++) {
- AFPFontInfo afi = buildFont(font[i], fontPath);
- if (afi != null) {
- if (log.isDebugEnabled()) {
- log.debug("Adding font " + afi.getAFPFont().getFontName());
- }
- List<FontTriplet> fontTriplets = afi.getFontTriplets();
- for (int j = 0; j < fontTriplets.size(); ++j) {
- FontTriplet triplet = fontTriplets.get(j);
- if (log.isDebugEnabled()) {
- log.debug(" Font triplet "
- + triplet.getName() + ", "
- + triplet.getStyle() + ", "
- + triplet.getWeight());
- }
-
- if ((referencedFontsMatcher != null && referencedFontsMatcher.matches(triplet))
- || (localMatcher != null && localMatcher.matches(triplet))) {
- afi.getAFPFont().setEmbeddable(false);
- break;
- }
- }
-
- fontList.add(afi);
- }
+ if (config.getDitheringQuality() != null) {
+ documentHandler.setDitheringQuality(config.getDitheringQuality());
}
- return fontList;
- }
-
- /** images are converted to grayscale bitmapped IOCA */
- private static final String IMAGES_MODE_GRAYSCALE = "b+w";
-
- /** images are converted to color bitmapped IOCA */
- private static final String IMAGES_MODE_COLOR = "color";
-
- /**
- * Throws an UnsupportedOperationException.
- *
- * @param renderer not used
- */
- @Override
- public void configure(Renderer renderer) {
- throw new UnsupportedOperationException();
- }
-
- private void configure(AFPCustomizable customizable, Configuration cfg) throws FOPException {
-
- // image information
- Configuration imagesCfg = cfg.getChild("images");
-
- // default to grayscale images
- String imagesMode = imagesCfg.getAttribute("mode", IMAGES_MODE_GRAYSCALE);
- if (IMAGES_MODE_COLOR.equals(imagesMode)) {
- customizable.setColorImages(true);
-
- boolean cmyk = imagesCfg.getAttributeAsBoolean("cmyk", false);
- customizable.setCMYKImagesSupported(cmyk);
- } else {
- customizable.setColorImages(false);
- // default to 8 bits per pixel
- int bitsPerPixel = imagesCfg.getAttributeAsInteger("bits-per-pixel", 8);
- customizable.setBitsPerPixel(bitsPerPixel);
- }
-
- String dithering = imagesCfg.getAttribute("dithering-quality", "medium");
- float dq = 0.5f;
- if (dithering.startsWith("min")) {
- dq = 0.0f;
- } else if (dithering.startsWith("max")) {
- dq = 1.0f;
- } else {
- try {
- dq = Float.parseFloat(dithering);
- } catch (NumberFormatException nfe) {
- //ignore and leave the default above
- }
+ if (config.isNativeImagesSupported() != null) {
+ documentHandler.setNativeImagesSupported(config.isNativeImagesSupported());
}
- customizable.setDitheringQuality(dq);
-
- // native image support
- boolean nativeImageSupport = imagesCfg.getAttributeAsBoolean("native", false);
- customizable.setNativeImagesSupported(nativeImageSupport);
-
- Configuration jpegConfig = imagesCfg.getChild("jpeg");
- boolean allowEmbedding = false;
- float ieq = 1.0f;
- if (jpegConfig != null) {
- allowEmbedding = jpegConfig.getAttributeAsBoolean("allow-embedding", false);
- String bitmapEncodingQuality = jpegConfig.getAttribute("bitmap-encoding-quality", null);
-
- if (bitmapEncodingQuality != null) {
- try {
- ieq = Float.parseFloat(bitmapEncodingQuality);
- } catch (NumberFormatException nfe) {
- //ignore and leave the default above
- }
- }
+ if (config.getShadingMode() != null) {
+ documentHandler.setShadingMode(config.getShadingMode());
}
- customizable.canEmbedJpeg(allowEmbedding);
- customizable.setBitmapEncodingQuality(ieq);
-
- //FS11 and FS45 page segment wrapping
- boolean pSeg = imagesCfg.getAttributeAsBoolean("pseg", false);
- customizable.setWrapPSeg(pSeg);
-
- //FS45 image forcing
- boolean fs45 = imagesCfg.getAttributeAsBoolean("fs45", false);
- customizable.setFS45(fs45);
-
- // shading (filled rectangles)
- Configuration shadingCfg = cfg.getChild("shading");
- AFPShadingMode shadingMode = AFPShadingMode.valueOf(
- shadingCfg.getValue(AFPShadingMode.COLOR.getName()));
- customizable.setShadingMode(shadingMode);
-
- // GOCA Support
- Configuration gocaCfg = cfg.getChild("goca");
- boolean gocaEnabled = gocaCfg.getAttributeAsBoolean(
- "enabled", customizable.isGOCAEnabled());
- customizable.setGOCAEnabled(gocaEnabled);
- String gocaText = gocaCfg.getAttribute(
- "text", customizable.isStrokeGOCAText() ? "stroke" : "default");
- customizable.setStrokeGOCAText("stroke".equalsIgnoreCase(gocaText)
- || "shapes".equalsIgnoreCase(gocaText));
-
- // renderer resolution
- Configuration rendererResolutionCfg = cfg.getChild("renderer-resolution", false);
- if (rendererResolutionCfg != null) {
- customizable.setResolution(rendererResolutionCfg.getValueAsInteger(240));
- }
-
- // renderer resolution
- Configuration lineWidthCorrectionCfg = cfg.getChild("line-width-correction", false);
- if (lineWidthCorrectionCfg != null) {
- customizable.setLineWidthCorrection(lineWidthCorrectionCfg
- .getValueAsFloat(AFPConstants.LINE_WIDTH_CORRECTION));
- }
-
- // a default external resource group file setting
- Configuration resourceGroupFileCfg
- = cfg.getChild("resource-group-file", false);
- if (resourceGroupFileCfg != null) {
- String resourceGroupDest = null;
- try {
- resourceGroupDest = resourceGroupFileCfg.getValue();
- if (resourceGroupDest != null) {
- File resourceGroupFile = new File(resourceGroupDest);
- boolean created = resourceGroupFile.createNewFile();
- if (created && resourceGroupFile.canWrite()) {
- customizable.setDefaultResourceGroupFilePath(resourceGroupDest);
- } else {
- log.warn("Unable to write to default external resource group file '"
- + resourceGroupDest + "'");
- }
- }
- } catch (ConfigurationException e) {
- LogUtil.handleException(log, e,
- userAgent.getFactory().validateUserConfigStrictly());
- } catch (IOException ioe) {
- throw new FOPException("Could not create default external resource group file"
- , ioe);
- }
+ if (config.getResolution() != null) {
+ documentHandler.setResolution(config.getResolution());
}
-
- Configuration defaultResourceLevelCfg = cfg.getChild("default-resource-levels", false);
- if (defaultResourceLevelCfg != null) {
- AFPResourceLevelDefaults defaults = new AFPResourceLevelDefaults();
- String[] types = defaultResourceLevelCfg.getAttributeNames();
- for (int i = 0, c = types.length; i < c; i++) {
- String type = types[i];
- try {
- String level = defaultResourceLevelCfg.getAttribute(type);
- defaults.setDefaultResourceLevel(type, AFPResourceLevel.valueOf(level));
- } catch (IllegalArgumentException iae) {
- LogUtil.handleException(log, iae,
- userAgent.getFactory().validateUserConfigStrictly());
- } catch (ConfigurationException e) {
- LogUtil.handleException(log, e,
- userAgent.getFactory().validateUserConfigStrictly());
- }
- }
- customizable.setResourceLevelDefaults(defaults);
+ if (config.isWrapPseg() != null) {
+ documentHandler.setWrapPSeg(config.isWrapPseg());
+ }
+ if (config.isFs45() != null) {
+ documentHandler.setFS45(config.isFs45());
+ }
+ if (config.allowJpegEmbedding() != null) {
+ documentHandler.canEmbedJpeg(config.allowJpegEmbedding());
+ }
+ if (config.getBitmapEncodingQuality() != null) {
+ documentHandler.setBitmapEncodingQuality(config.getBitmapEncodingQuality());
+ }
+ if (config.getLineWidthCorrection() != null) {
+ documentHandler.setLineWidthCorrection(config.getLineWidthCorrection());
+ }
+ if (config.isGocaEnabled() != null) {
+ documentHandler.setGOCAEnabled(config.isGocaEnabled());
+ }
+ if (config.isStrokeGocaText() != null) {
+ documentHandler.setStrokeGOCAText(config.isStrokeGocaText());
+ }
+ if (config.getDefaultResourceGroupUri() != null) {
+ documentHandler.setDefaultResourceGroupUri(config.getDefaultResourceGroupUri());
+ }
+ AFPResourceLevelDefaults resourceLevelDefaults = config.getResourceLevelDefaults();
+ if (resourceLevelDefaults != null) {
+ documentHandler.setResourceLevelDefaults(resourceLevelDefaults);
}
}
- /** {@inheritDoc} */
@Override
- public void configure(IFDocumentHandler documentHandler) throws FOPException {
- Configuration cfg = super.getRendererConfig(documentHandler.getMimeType());
- if (cfg != null) {
- AFPDocumentHandler afpDocumentHandler = (AFPDocumentHandler) documentHandler;
- configure(afpDocumentHandler, cfg);
- }
+ protected List<FontCollection> getDefaultFontCollection() {
+ return new ArrayList<FontCollection>();
}
- /** {@inheritDoc} */
@Override
- public void setupFontInfo(IFDocumentHandler documentHandler, FontInfo fontInfo)
- throws FOPException {
- FontManager fontManager = userAgent.getFactory().getFontManager();
- List<AFPFontCollection> fontCollections = new ArrayList<AFPFontCollection>();
-
- Configuration cfg = super.getRendererConfig(documentHandler.getMimeType());
- if (cfg != null) {
+ protected FontCollection getCustomFontCollection(InternalResourceResolver uriResolverWrapper,
+ String mimeType) throws FOPException {
+ AFPRendererConfig config = (AFPRendererConfig) getRendererConfig(mimeType);
+ if (config != null) {
try {
- List<AFPFontInfo> fontList = buildFontListFromConfiguration(cfg, eventProducer);
- fontCollections.add(new AFPFontCollection(
- userAgent.getEventBroadcaster(), fontList));
- } catch (ConfigurationException e) {
+ return new AFPFontCollection(userAgent.getEventBroadcaster(), createFontsList(
+ config.getFontInfoConfig(), mimeType));
+ } catch (IOException e) {
eventProducer.invalidConfiguration(this, e);
- LogUtil.handleException(log, e,
- userAgent.getFactory().validateUserConfigStrictly());
+ LogUtil.handleException(LOG, e, userAgent.validateUserConfigStrictly());
+ } catch (IllegalArgumentException iae) {
+ eventProducer.invalidConfiguration(this, iae);
+ LogUtil.handleException(LOG, iae, userAgent.validateUserConfigStrictly());
}
- } else {
- fontCollections.add(new AFPFontCollection(userAgent.getEventBroadcaster(), null));
}
+ return new AFPFontCollection(userAgent.getEventBroadcaster(), null);
+ }
- fontManager.setup(fontInfo,
- fontCollections.toArray(
- new FontCollection[fontCollections.size()]));
- documentHandler.setFontInfo(fontInfo);
+ private List<AFPFontInfo> createFontsList(AFPFontConfig fontConfig, String mimeType)
+ throws FOPException, IOException {
+ List<AFPFontInfo> afpFonts = new ArrayList<AFPFontInfo>();
+ for (AFPFontConfigData config : fontConfig.getFontConfig()) {
+ afpFonts.add(config.getFontInfo(userAgent.getFontManager().getResourceResolver(),
+ eventProducer));
+ }
+ return afpFonts;
}
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPSVGHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPSVGHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPSVGHandler.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPSVGHandler.java Tue Jul 3 09:46:41 2012
@@ -195,7 +195,7 @@ public class AFPSVGHandler extends Abstr
* @return a bridge context
*/
public static BridgeContext createBridgeContext(FOUserAgent userAgent, AFPGraphics2D g2d) {
- ImageManager imageManager = userAgent.getFactory().getImageManager();
+ ImageManager imageManager = userAgent.getImageManager();
SVGUserAgent svgUserAgent
= new SVGUserAgent(userAgent, new AffineTransform());
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPShadingMode.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPShadingMode.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPShadingMode.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/AFPShadingMode.java Tue Jul 3 09:46:41 2012
@@ -22,15 +22,12 @@ package org.apache.fop.render.afp;
import java.io.ObjectStreamException;
import java.io.Serializable;
-/** Enumeration class for the AFP shading mode. */
-public final class AFPShadingMode implements Serializable {
-
- private static final long serialVersionUID = 8579867898716480779L;
-
+/** Enumeration of the AFP shading modes. */
+public enum AFPShadingMode implements Serializable {
/** the color mode (the default) */
- public static final AFPShadingMode COLOR = new AFPShadingMode("COLOR");
+ COLOR("COLOR"),
/** the dithered mode */
- public static final AFPShadingMode DITHERED = new AFPShadingMode("DITHERED");
+ DITHERED("DITHERED");
private String name;
@@ -52,7 +49,7 @@ public final class AFPShadingMode implem
* @param name the name of the enumeration value
* @return the enumeration object
*/
- public static AFPShadingMode valueOf(String name) {
+ public static AFPShadingMode getValueOf(String name) {
if (COLOR.getName().equalsIgnoreCase(name)) {
return COLOR;
} else if (DITHERED.getName().equalsIgnoreCase(name)) {
@@ -70,5 +67,4 @@ public final class AFPShadingMode implem
public String toString() {
return getClass().getName() + ":" + name;
}
-
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java Tue Jul 3 09:46:41 2012
@@ -41,7 +41,7 @@ import org.apache.xmlgraphics.util.UnitC
import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.FOUserAgent;
-import org.apache.fop.apps.FopFactoryConfigurator;
+import org.apache.fop.apps.FopFactoryConfig;
import org.apache.fop.apps.MimeConstants;
import org.apache.fop.area.Area;
import org.apache.fop.area.PageViewport;
@@ -131,13 +131,13 @@ public class AWTRenderer extends Java2DR
pageWidth = (int) Math.round(bounds.getWidth() / 1000f);
pageHeight = (int) Math.round(bounds.getHeight() / 1000f);
double scaleX = scaleFactor
- * (UnitConv.IN2MM / FopFactoryConfigurator.DEFAULT_TARGET_RESOLUTION)
+ * (UnitConv.IN2MM / FopFactoryConfig.DEFAULT_TARGET_RESOLUTION)
/ userAgent.getTargetPixelUnitToMillimeter();
double scaleY = scaleFactor
- * (UnitConv.IN2MM / FopFactoryConfigurator.DEFAULT_TARGET_RESOLUTION)
+ * (UnitConv.IN2MM / FopFactoryConfig.DEFAULT_TARGET_RESOLUTION)
/ userAgent.getTargetPixelUnitToMillimeter();
if (getPageViewport(pageNum).getForeignAttributes() != null) {
- String scale = (String) getPageViewport(pageNum).getForeignAttributes().get(
+ String scale = getPageViewport(pageNum).getForeignAttributes().get(
PageScale.EXT_PAGE_SCALE);
Point2D scales = PageScale.getScale(scale);
if (scales != null) {
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRendererMaker.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRendererMaker.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRendererMaker.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRendererMaker.java Tue Jul 3 09:46:41 2012
@@ -31,20 +31,23 @@ public class AWTRendererMaker extends Ab
private static final String[] MIMES = new String[] {MimeConstants.MIME_FOP_AWT_PREVIEW};
-
- /** {@inheritDoc} */
+ @Override
public Renderer makeRenderer(FOUserAgent ua) {
return new AWTRenderer(ua);
}
- /** {@inheritDoc} */
+ @Override
public boolean needsOutputStream() {
return false;
}
- /** {@inheritDoc} */
+ @Override
public String[] getSupportedMimeTypes() {
return MIMES;
}
+ @Override
+ public void configureRenderer(FOUserAgent userAgent, Renderer renderer) {
+ // No-Op
+ }
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/AbstractBitmapDocumentHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/AbstractBitmapDocumentHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/AbstractBitmapDocumentHandler.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/AbstractBitmapDocumentHandler.java Tue Jul 3 09:46:41 2012
@@ -36,7 +36,7 @@ import org.apache.xmlgraphics.image.writ
import org.apache.xmlgraphics.image.writer.ImageWriterRegistry;
import org.apache.xmlgraphics.image.writer.MultiImageWriter;
-import org.apache.fop.apps.FopFactoryConfigurator;
+import org.apache.fop.apps.FopFactoryConfig;
import org.apache.fop.fonts.FontInfo;
import org.apache.fop.render.intermediate.AbstractBinaryWritingIFDocumentHandler;
import org.apache.fop.render.intermediate.IFContext;
@@ -80,7 +80,14 @@ public abstract class AbstractBitmapDocu
/**
* Default constructor.
*/
- public AbstractBitmapDocumentHandler() {
+ public AbstractBitmapDocumentHandler(IFContext context) {
+ super(context);
+ //Set target resolution
+ int dpi = Math.round(context.getUserAgent().getTargetResolution());
+ getSettings().getWriterParams().setResolution(dpi);
+
+ Map renderingOptions = getUserAgent().getRendererOptions();
+ setTargetBitmapSize((Dimension)renderingOptions.get(TARGET_BITMAP_SIZE));
}
/** {@inheritDoc} */
@@ -98,18 +105,6 @@ public abstract class AbstractBitmapDocu
public abstract String getDefaultExtension();
/** {@inheritDoc} */
- public void setContext(IFContext context) {
- super.setContext(context);
-
- //Set target resolution
- int dpi = Math.round(context.getUserAgent().getTargetResolution());
- getSettings().getWriterParams().setResolution(dpi);
-
- Map renderingOptions = getUserAgent().getRendererOptions();
- setTargetBitmapSize((Dimension)renderingOptions.get(TARGET_BITMAP_SIZE));
- }
-
- /** {@inheritDoc} */
public abstract IFDocumentHandlerConfigurator getConfigurator();
/**
@@ -228,7 +223,7 @@ public abstract class AbstractBitmapDocu
//Normal case: just scale according to the target resolution
scale = scaleFactor
* getUserAgent().getTargetResolution()
- / FopFactoryConfigurator.DEFAULT_TARGET_RESOLUTION;
+ / FopFactoryConfig.DEFAULT_TARGET_RESOLUTION;
bitmapWidth = (int) ((this.currentPageDimensions.width * scale / 1000f) + 0.5f);
bitmapHeight = (int) ((this.currentPageDimensions.height * scale / 1000f) + 0.5f);
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/BitmapRendererConfigurator.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/BitmapRendererConfigurator.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/BitmapRendererConfigurator.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/BitmapRendererConfigurator.java Tue Jul 3 09:46:41 2012
@@ -19,123 +19,84 @@
package org.apache.fop.render.bitmap;
-import java.awt.image.BufferedImage;
+import java.util.ArrayList;
import java.util.List;
-import org.apache.avalon.framework.configuration.Configuration;
-
import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.FOUserAgent;
+import org.apache.fop.apps.MimeConstants;
+import org.apache.fop.apps.io.InternalResourceResolver;
+import org.apache.fop.fonts.EmbedFontInfo;
import org.apache.fop.fonts.FontCollection;
-import org.apache.fop.fonts.FontEventAdapter;
-import org.apache.fop.fonts.FontEventListener;
-import org.apache.fop.fonts.FontInfo;
-import org.apache.fop.fonts.FontManager;
-import org.apache.fop.fonts.FontResolver;
-import org.apache.fop.render.DefaultFontResolver;
+import org.apache.fop.render.RendererConfig.RendererConfigParser;
+import org.apache.fop.render.bitmap.BitmapRendererConfig.BitmapRendererConfigParser;
import org.apache.fop.render.intermediate.IFDocumentHandler;
-import org.apache.fop.render.intermediate.IFDocumentHandlerConfigurator;
import org.apache.fop.render.java2d.Base14FontCollection;
import org.apache.fop.render.java2d.ConfiguredFontCollection;
import org.apache.fop.render.java2d.InstalledFontCollection;
import org.apache.fop.render.java2d.Java2DFontMetrics;
-import org.apache.fop.render.java2d.Java2DRenderer;
import org.apache.fop.render.java2d.Java2DRendererConfigurator;
-import org.apache.fop.util.ColorUtil;
/**
* Configurator for bitmap output.
*/
-public class BitmapRendererConfigurator extends Java2DRendererConfigurator
- implements IFDocumentHandlerConfigurator {
+public class BitmapRendererConfigurator extends Java2DRendererConfigurator {
/**
* Default constructor
* @param userAgent user agent
*/
- public BitmapRendererConfigurator(FOUserAgent userAgent) {
- super(userAgent);
+ public BitmapRendererConfigurator(FOUserAgent userAgent, RendererConfigParser rendererConfigParser) {
+ super(userAgent, rendererConfigParser);
}
// ---=== IFDocumentHandler configuration ===---
/** {@inheritDoc} */
public void configure(IFDocumentHandler documentHandler) throws FOPException {
- super.configure(documentHandler);
- Configuration cfg = super.getRendererConfig(documentHandler.getMimeType());
- if (cfg != null) {
- AbstractBitmapDocumentHandler bitmapHandler
- = (AbstractBitmapDocumentHandler)documentHandler;
- BitmapRenderingSettings settings = bitmapHandler.getSettings();
-
- boolean transparent = cfg.getChild(
- Java2DRenderer.JAVA2D_TRANSPARENT_PAGE_BACKGROUND).getValueAsBoolean(
- settings.hasTransparentPageBackground());
- if (transparent) {
- settings.setPageBackgroundColor(null);
- } else {
- String background = cfg.getChild("background-color").getValue(null);
- if (background != null) {
- settings.setPageBackgroundColor(
- ColorUtil.parseColorString(this.userAgent, background));
- }
- }
-
- boolean antiAliasing = cfg.getChild("anti-aliasing").getValueAsBoolean(
- settings.isAntiAliasingEnabled());
- settings.setAntiAliasing(antiAliasing);
-
- String optimization = cfg.getChild("rendering").getValue(null);
- if ("quality".equalsIgnoreCase(optimization)) {
- settings.setQualityRendering(true);
- } else if ("speed".equalsIgnoreCase(optimization)) {
- settings.setQualityRendering(false);
- }
-
- String color = cfg.getChild("color-mode").getValue(null);
- if (color != null) {
- if ("rgba".equalsIgnoreCase(color)) {
- settings.setBufferedImageType(BufferedImage.TYPE_INT_ARGB);
- } else if ("rgb".equalsIgnoreCase(color)) {
- settings.setBufferedImageType(BufferedImage.TYPE_INT_RGB);
- } else if ("gray".equalsIgnoreCase(color)) {
- settings.setBufferedImageType(BufferedImage.TYPE_BYTE_GRAY);
- } else if ("binary".equalsIgnoreCase(color)) {
- settings.setBufferedImageType(BufferedImage.TYPE_BYTE_BINARY);
- } else if ("bi-level".equalsIgnoreCase(color)) {
- settings.setBufferedImageType(BufferedImage.TYPE_BYTE_BINARY);
- } else {
- throw new FOPException("Invalid value for color-mode: " + color);
- }
- }
- }
+ AbstractBitmapDocumentHandler bitmapHandler = (AbstractBitmapDocumentHandler) documentHandler;
+ BitmapRenderingSettings settings = bitmapHandler.getSettings();
+ configure(documentHandler, settings,
+ new BitmapRendererConfigParser(MimeConstants.MIME_BITMAP));
}
- /** {@inheritDoc} */
- public void setupFontInfo(IFDocumentHandler documentHandler, FontInfo fontInfo)
- throws FOPException {
- final FontManager fontManager = userAgent.getFactory().getFontManager();
-
- final Java2DFontMetrics java2DFontMetrics = new Java2DFontMetrics();
+ void configure(IFDocumentHandler documentHandler, BitmapRenderingSettings settings,
+ BitmapRendererConfigParser parser) throws FOPException {
+ BitmapRendererConfig config = (BitmapRendererConfig) userAgent.getRendererConfig(
+ documentHandler.getMimeType(), parser);
+ configure(config, settings);
+ }
- final List fontCollections = new java.util.ArrayList();
- fontCollections.add(new Base14FontCollection(java2DFontMetrics));
- fontCollections.add(new InstalledFontCollection(java2DFontMetrics));
-
- Configuration cfg = super.getRendererConfig(documentHandler.getMimeType());
- if (cfg != null) {
- FontResolver fontResolver = new DefaultFontResolver(userAgent);
- FontEventListener listener = new FontEventAdapter(
- userAgent.getEventBroadcaster());
- List fontList = buildFontList(cfg, fontResolver, listener);
- fontCollections.add(new ConfiguredFontCollection(fontResolver, fontList,
- userAgent.isComplexScriptFeaturesEnabled()));
+ private void configure(BitmapRendererConfig config, BitmapRenderingSettings settings)
+ throws FOPException {
+ if (config.hasTransparentBackround()) {
+ settings.setPageBackgroundColor(null);
+ } else if (config.getBackgroundColor() != null) {
+ settings.setPageBackgroundColor(config.getBackgroundColor());
+ }
+ if (config.hasAntiAliasing() != null) {
+ settings.setAntiAliasing(config.hasAntiAliasing());
+ }
+ if (config.isRenderHighQuality() != null) {
+ settings.setQualityRendering(config.isRenderHighQuality());
+ }
+ if (config.getColorMode() != null) {
+ settings.setBufferedImageType(config.getColorMode());
}
+ }
- fontManager.setup(fontInfo,
- (FontCollection[])fontCollections.toArray(
- new FontCollection[fontCollections.size()]));
- documentHandler.setFontInfo(fontInfo);
+ @Override
+ protected FontCollection createCollectionFromFontList(InternalResourceResolver resourceResolver,
+ List<EmbedFontInfo> fontList) {
+ return new ConfiguredFontCollection(resourceResolver, fontList, userAgent.isComplexScriptFeaturesEnabled());
}
+ @Override
+ protected List<FontCollection> getDefaultFontCollection() {
+ final Java2DFontMetrics java2DFontMetrics = new Java2DFontMetrics();
+ final List<FontCollection> fontCollection = new ArrayList<FontCollection>();
+ fontCollection.add(new Base14FontCollection(java2DFontMetrics));
+ fontCollection.add(new InstalledFontCollection(java2DFontMetrics));
+ return fontCollection;
+ }
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/BitmapRenderingSettings.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/BitmapRenderingSettings.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/BitmapRenderingSettings.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/BitmapRenderingSettings.java Tue Jul 3 09:46:41 2012
@@ -19,28 +19,30 @@
package org.apache.fop.render.bitmap;
-import java.awt.image.BufferedImage;
-
import org.apache.xmlgraphics.image.writer.ImageWriterParams;
import org.apache.fop.render.java2d.Java2DRenderingSettings;
+import static org.apache.fop.render.bitmap.BitmapRendererOption.ANTI_ALIASING;
+import static org.apache.fop.render.bitmap.BitmapRendererOption.COLOR_MODE;
+import static org.apache.fop.render.bitmap.BitmapRendererOption.RENDERING_QUALITY;
+
/**
* This class holds settings used when rendering to bitmaps.
*/
-public class BitmapRenderingSettings extends Java2DRenderingSettings implements TIFFConstants {
+public class BitmapRenderingSettings extends Java2DRenderingSettings {
/** ImageWriter parameters */
private ImageWriterParams writerParams;
/** Image Type as parameter for the BufferedImage constructor (see BufferedImage.TYPE_*) */
- private int bufferedImageType = BufferedImage.TYPE_INT_ARGB;
+ private int bufferedImageType = (Integer) COLOR_MODE.getDefaultValue();
/** true if anti-aliasing is set */
- private boolean antialiasing = true;
+ private boolean antialiasing = (Boolean) ANTI_ALIASING.getDefaultValue();
/** true if qualityRendering is set */
- private boolean qualityRendering = true;
+ private boolean qualityRendering = (Boolean) RENDERING_QUALITY.getDefaultValue();
/**
* Default constructor. Initializes the settings to their default values.
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/PNGDocumentHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/PNGDocumentHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/PNGDocumentHandler.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/PNGDocumentHandler.java Tue Jul 3 09:46:41 2012
@@ -20,6 +20,9 @@
package org.apache.fop.render.bitmap;
import org.apache.fop.apps.MimeConstants;
+import org.apache.fop.render.bitmap.PNGRendererConfig.PNGRendererConfigParser;
+import org.apache.fop.render.intermediate.IFContext;
+import org.apache.fop.render.intermediate.IFDocumentHandler;
import org.apache.fop.render.intermediate.IFDocumentHandlerConfigurator;
/**
@@ -28,6 +31,11 @@ import org.apache.fop.render.intermediat
*/
public class PNGDocumentHandler extends AbstractBitmapDocumentHandler {
+
+ PNGDocumentHandler(IFContext context) {
+ super(context);
+ }
+
/** {@inheritDoc} */
public String getMimeType() {
return MimeConstants.MIME_PNG;
@@ -40,7 +48,7 @@ public class PNGDocumentHandler extends
/** {@inheritDoc} */
public IFDocumentHandlerConfigurator getConfigurator() {
- return new BitmapRendererConfigurator(getUserAgent());
+ return new BitmapRendererConfigurator(getUserAgent(), new PNGRendererConfigParser());
}
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/PNGDocumentHandlerMaker.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/PNGDocumentHandlerMaker.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/PNGDocumentHandlerMaker.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/PNGDocumentHandlerMaker.java Tue Jul 3 09:46:41 2012
@@ -19,7 +19,6 @@
package org.apache.fop.render.bitmap;
-import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.MimeConstants;
import org.apache.fop.render.intermediate.AbstractIFDocumentHandlerMaker;
import org.apache.fop.render.intermediate.IFContext;
@@ -33,10 +32,8 @@ public class PNGDocumentHandlerMaker ext
private static final String[] MIMES = new String[] {MimeConstants.MIME_PNG};
/** {@inheritDoc} */
- public IFDocumentHandler makeIFDocumentHandler(FOUserAgent ua) {
- PNGDocumentHandler handler = new PNGDocumentHandler();
- handler.setContext(new IFContext(ua));
- return handler;
+ public IFDocumentHandler makeIFDocumentHandler(IFContext ifContext) {
+ return new PNGDocumentHandler(ifContext);
}
/** {@inheritDoc} */
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/PNGRendererMaker.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/PNGRendererMaker.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/PNGRendererMaker.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/PNGRendererMaker.java Tue Jul 3 09:46:41 2012
@@ -19,11 +19,12 @@
package org.apache.fop.render.bitmap;
+import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.MimeConstants;
import org.apache.fop.render.AbstractRendererMaker;
import org.apache.fop.render.Renderer;
-import org.apache.fop.render.RendererConfigurator;
+import org.apache.fop.render.bitmap.PNGRendererConfig.PNGRendererConfigParser;
import org.apache.fop.render.java2d.Java2DRendererConfigurator;
/**
@@ -33,23 +34,22 @@ public class PNGRendererMaker extends Ab
private static final String[] MIMES = new String[] {MimeConstants.MIME_PNG};
-
- /** {@inheritDoc} */
+ @Override
public Renderer makeRenderer(FOUserAgent ua) {
return new PNGRenderer(ua);
}
- /** {@inheritDoc} */
- public RendererConfigurator getConfigurator(FOUserAgent userAgent) {
- return new Java2DRendererConfigurator(userAgent);
+ @Override
+ public void configureRenderer(FOUserAgent userAgent, Renderer renderer) throws FOPException {
+ new Java2DRendererConfigurator(userAgent, new PNGRendererConfigParser()).configure(renderer);
}
- /** {@inheritDoc} */
+ @Override
public boolean needsOutputStream() {
return true;
}
- /** {@inheritDoc} */
+ @Override
public String[] getSupportedMimeTypes() {
return MIMES;
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java Tue Jul 3 09:46:41 2012
@@ -20,6 +20,9 @@
package org.apache.fop.render.bitmap;
import org.apache.fop.apps.MimeConstants;
+import org.apache.fop.render.bitmap.TIFFRendererConfig.TIFFRendererConfigParser;
+import org.apache.fop.render.intermediate.IFContext;
+import org.apache.fop.render.intermediate.IFDocumentHandler;
import org.apache.fop.render.intermediate.IFDocumentHandlerConfigurator;
/**
@@ -28,11 +31,16 @@ import org.apache.fop.render.intermediat
*/
public class TIFFDocumentHandler extends AbstractBitmapDocumentHandler {
+ TIFFDocumentHandler(IFContext context) {
+ super(context);
+ }
+
/** {@inheritDoc} */
public String getMimeType() {
return MimeConstants.MIME_TIFF;
}
+
/** {@inheritDoc} */
public String getDefaultExtension() {
return "tif";
@@ -40,7 +48,6 @@ public class TIFFDocumentHandler extends
/** {@inheritDoc} */
public IFDocumentHandlerConfigurator getConfigurator() {
- return new TIFFRendererConfigurator(getUserAgent());
+ return new TIFFRendererConfigurator(getUserAgent(), new TIFFRendererConfigParser());
}
-
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandlerMaker.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandlerMaker.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandlerMaker.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandlerMaker.java Tue Jul 3 09:46:41 2012
@@ -19,7 +19,6 @@
package org.apache.fop.render.bitmap;
-import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.MimeConstants;
import org.apache.fop.render.intermediate.AbstractIFDocumentHandlerMaker;
import org.apache.fop.render.intermediate.IFContext;
@@ -33,10 +32,8 @@ public class TIFFDocumentHandlerMaker ex
private static final String[] MIMES = new String[] {MimeConstants.MIME_TIFF};
/** {@inheritDoc} */
- public IFDocumentHandler makeIFDocumentHandler(FOUserAgent ua) {
- TIFFDocumentHandler handler = new TIFFDocumentHandler();
- handler.setContext(new IFContext(ua));
- return handler;
+ public IFDocumentHandler makeIFDocumentHandler(IFContext ifContext) {
+ return new TIFFDocumentHandler(ifContext);
}
/** {@inheritDoc} */
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRenderer.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRenderer.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRenderer.java Tue Jul 3 09:46:41 2012
@@ -44,8 +44,13 @@ import org.apache.xmlgraphics.image.writ
import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.FOUserAgent;
+import org.apache.fop.apps.MimeConstants;
import org.apache.fop.render.java2d.Java2DRenderer;
+import static org.apache.fop.render.bitmap.TIFFCompressionValues.CCITT_T4;
+import static org.apache.fop.render.bitmap.TIFFCompressionValues.CCITT_T6;
+import static org.apache.fop.render.bitmap.TIFFCompressionValues.PACKBITS;
+
/**
* <p>
* This class represents renderer to TIFF (Tagged Image File Format) format. It
@@ -67,7 +72,7 @@ import org.apache.fop.render.java2d.Java
* <code>org.apache.fop.render.java2D.Java2DRenderer</code> and just encode
* rendering results into TIFF format using Batik's image codec
*/
-public class TIFFRenderer extends Java2DRenderer implements TIFFConstants {
+public class TIFFRenderer extends Java2DRenderer {
/** ImageWriter parameters */
private ImageWriterParams writerParams;
@@ -79,7 +84,7 @@ public class TIFFRenderer extends Java2D
/** {@inheritDoc} */
public String getMimeType() {
- return MIME_TYPE;
+ return MimeConstants.MIME_TIFF;
}
/**
@@ -90,7 +95,7 @@ public class TIFFRenderer extends Java2D
public TIFFRenderer(FOUserAgent userAgent) {
super(userAgent);
writerParams = new ImageWriterParams();
- writerParams.setCompressionMethod(COMPRESSION_PACKBITS);
+ writerParams.setCompressionMethod(PACKBITS.getName());
int dpi = Math.round(userAgent.getTargetResolution());
writerParams.setResolution(dpi);
@@ -190,8 +195,8 @@ public class TIFFRenderer extends Java2D
throw new NoSuchElementException(e.getMessage());
}
- if (COMPRESSION_CCITT_T4.equalsIgnoreCase(writerParams.getCompressionMethod())
- || COMPRESSION_CCITT_T6.equalsIgnoreCase(writerParams.getCompressionMethod())) {
+ TIFFCompressionValues compression = TIFFCompressionValues.getValue(writerParams.getCompressionMethod());
+ if (compression == CCITT_T4 || compression == CCITT_T6) {
return pageImage;
} else {
//Decorate the image with a packed sample model for encoding by the codec
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java Tue Jul 3 09:46:41 2012
@@ -21,24 +21,34 @@ package org.apache.fop.render.bitmap;
import java.awt.image.BufferedImage;
-import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import org.apache.xmlgraphics.image.writer.ImageWriterParams;
import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.render.Renderer;
+import org.apache.fop.render.RendererConfig.RendererConfigParser;
+import org.apache.fop.render.bitmap.TIFFRendererConfig.TIFFRendererConfigParser;
import org.apache.fop.render.intermediate.IFDocumentHandler;
+import static org.apache.fop.render.bitmap.TIFFCompressionValues.CCITT_T4;
+import static org.apache.fop.render.bitmap.TIFFCompressionValues.CCITT_T6;
+import static org.apache.fop.render.bitmap.TIFFCompressionValues.NONE;
+
/**
* TIFF Renderer configurator
*/
public class TIFFRendererConfigurator extends BitmapRendererConfigurator {
+ private static final Log LOG = LogFactory.getLog(TIFFRendererConfigurator.class);
/**
* Default constructor
* @param userAgent user agent
*/
- public TIFFRendererConfigurator(FOUserAgent userAgent) {
- super(userAgent);
+ public TIFFRendererConfigurator(FOUserAgent userAgent, RendererConfigParser rendererConfigParser) {
+ super(userAgent, rendererConfigParser);
}
/**
@@ -49,58 +59,46 @@ public class TIFFRendererConfigurator ex
* {@inheritDoc}
*/
public void configure(Renderer renderer) throws FOPException {
- Configuration cfg = super.getRendererConfig(renderer);
- if (cfg != null) {
- TIFFRenderer tiffRenderer = (TIFFRenderer)renderer;
+ final TIFFRendererConfig config = (TIFFRendererConfig) getRendererConfig(renderer);
+ if (config != null) {
+ TIFFRenderer tiffRenderer = (TIFFRenderer) renderer;
//set compression
- String name = cfg.getChild("compression").getValue(TIFFConstants.COMPRESSION_PACKBITS);
- //Some compression formats need a special image format:
- tiffRenderer.setBufferedImageType(getBufferedImageTypeFor(name));
- if (!"NONE".equalsIgnoreCase(name)) {
- tiffRenderer.getWriterParams().setCompressionMethod(name);
+ tiffRenderer.setBufferedImageType(getCompressionType(config, tiffRenderer.getWriterParams()));
+ }
+ super.configure(renderer);
+ }
+
+ private int getCompressionType(TIFFRendererConfig config, ImageWriterParams writerParms)
+ throws FOPException {
+ //Some compression formats need a special image format:
+ TIFFCompressionValues compression = config.getCompressionType();
+ if (compression != null) {
+ if (compression != NONE) {
+ writerParms.setCompressionMethod(compression.getName());
}
- if (log.isInfoEnabled()) {
- log.info("TIFF compression set to " + name);
+ if (LOG.isInfoEnabled()) {
+ LOG.info("TIFF compression set to " + compression.getName());
}
}
- super.configure(renderer);
+ return getBufferedImageTypeFor(compression);
}
- /**
- * Determines the type value for the BufferedImage to be produced for rendering
- * the bitmap image.
- * @param compressionName the compression name
- * @return a value from the {@link BufferedImage}.TYPE_* constants
- */
- private int getBufferedImageTypeFor(String compressionName) {
- if (compressionName.equalsIgnoreCase(TIFFConstants.COMPRESSION_CCITT_T6)) {
- return BufferedImage.TYPE_BYTE_BINARY;
- } else if (compressionName.equalsIgnoreCase(TIFFConstants.COMPRESSION_CCITT_T4)) {
+ private int getBufferedImageTypeFor(TIFFCompressionValues compressionType) {
+ if (compressionType == CCITT_T6 || compressionType == CCITT_T4) {
return BufferedImage.TYPE_BYTE_BINARY;
} else {
return BufferedImage.TYPE_INT_ARGB;
}
}
- // ---=== IFDocumentHandler configuration ===---
-
/** {@inheritDoc} */
public void configure(IFDocumentHandler documentHandler) throws FOPException {
- super.configure(documentHandler);
- Configuration cfg = super.getRendererConfig(documentHandler.getMimeType());
- if (cfg != null) {
- TIFFDocumentHandler tiffHandler = (TIFFDocumentHandler)documentHandler;
+ final TIFFRendererConfig tiffConfig = (TIFFRendererConfig) getRendererConfig(documentHandler);
+ if (tiffConfig != null) {
+ TIFFDocumentHandler tiffHandler = (TIFFDocumentHandler) documentHandler;
BitmapRenderingSettings settings = tiffHandler.getSettings();
- //set compression
- String name = cfg.getChild("compression").getValue(TIFFConstants.COMPRESSION_PACKBITS);
- //Some compression formats need a special image format:
- settings.setBufferedImageType(getBufferedImageTypeFor(name));
- if (!"NONE".equalsIgnoreCase(name)) {
- settings.getWriterParams().setCompressionMethod(name);
- }
- if (log.isInfoEnabled()) {
- log.info("TIFF compression set to " + name);
- }
+ configure(documentHandler, settings, new TIFFRendererConfigParser());
+ settings.setBufferedImageType(getCompressionType(tiffConfig, settings.getWriterParams()));
}
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererMaker.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererMaker.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererMaker.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererMaker.java Tue Jul 3 09:46:41 2012
@@ -19,11 +19,12 @@
package org.apache.fop.render.bitmap;
+import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.MimeConstants;
import org.apache.fop.render.AbstractRendererMaker;
import org.apache.fop.render.Renderer;
-import org.apache.fop.render.RendererConfigurator;
+import org.apache.fop.render.bitmap.TIFFRendererConfig.TIFFRendererConfigParser;
/**
* RendererMaker for the TIFF Renderer.
@@ -32,24 +33,24 @@ public class TIFFRendererMaker extends A
private static final String[] MIMES = new String[] {MimeConstants.MIME_TIFF};
- /** {@inheritDoc} */
+ @Override
public Renderer makeRenderer(FOUserAgent userAgent) {
return new TIFFRenderer(userAgent);
}
- /** {@inheritDoc} */
- public RendererConfigurator getConfigurator(FOUserAgent userAgent) {
- return new TIFFRendererConfigurator(userAgent);
- }
-
- /** {@inheritDoc} */
+ @Override
public boolean needsOutputStream() {
return true;
}
- /** {@inheritDoc} */
+ @Override
public String[] getSupportedMimeTypes() {
return MIMES;
}
+ @Override
+ public void configureRenderer(FOUserAgent userAgent, Renderer renderer) throws FOPException {
+ new TIFFRendererConfigurator(userAgent, new TIFFRendererConfigParser()).configure(renderer);
+ }
+
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractBinaryWritingIFDocumentHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractBinaryWritingIFDocumentHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractBinaryWritingIFDocumentHandler.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractBinaryWritingIFDocumentHandler.java Tue Jul 3 09:46:41 2012
@@ -19,15 +19,14 @@
package org.apache.fop.render.intermediate;
-import java.io.File;
+import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.OutputStream;
-import java.net.URL;
+import java.net.URI;
import javax.xml.transform.Result;
import javax.xml.transform.stream.StreamResult;
-import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.fop.fonts.FontCollection;
@@ -49,10 +48,14 @@ public abstract class AbstractBinaryWrit
/** Font configuration */
protected FontInfo fontInfo;
+ public AbstractBinaryWritingIFDocumentHandler(IFContext ifContext) {
+ super(ifContext);
+ }
+
/** {@inheritDoc} */
public void setResult(Result result) throws IFException {
if (result instanceof StreamResult) {
- StreamResult streamResult = (StreamResult)result;
+ StreamResult streamResult = (StreamResult) result;
OutputStream out = streamResult.getOutputStream();
if (out == null) {
if (streamResult.getWriter() != null) {
@@ -60,22 +63,13 @@ public abstract class AbstractBinaryWrit
"FOP cannot use a Writer. Please supply an OutputStream!");
}
try {
- URL url = new URL(streamResult.getSystemId());
- File f = FileUtils.toFile(url);
- if (f != null) {
- out = new java.io.FileOutputStream(f);
- } else {
- out = url.openConnection().getOutputStream();
- }
+ URI resultURI = URI.create(streamResult.getSystemId());
+ out = new BufferedOutputStream(getUserAgent().getResourceResolver().getOutputStream(resultURI));
} catch (IOException ioe) {
throw new IFException("I/O error while opening output stream" , ioe);
}
- out = new java.io.BufferedOutputStream(out);
this.ownOutputStream = true;
}
- if (out == null) {
- throw new IllegalArgumentException("Need a StreamResult with an OutputStream");
- }
this.outputStream = out;
} else {
throw new UnsupportedOperationException(
@@ -95,7 +89,7 @@ public abstract class AbstractBinaryWrit
/** {@inheritDoc} */
public void setDefaultFontInfo(FontInfo fontInfo) {
- FontManager fontManager = getUserAgent().getFactory().getFontManager();
+ FontManager fontManager = getUserAgent().getFontManager();
FontCollection[] fontCollections = new FontCollection[] {
new Base14FontCollection(fontManager.isBase14KerningEnabled())
};
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFDocumentHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFDocumentHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFDocumentHandler.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFDocumentHandler.java Tue Jul 3 09:46:41 2012
@@ -21,6 +21,9 @@ package org.apache.fop.render.intermedia
import java.util.Locale;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
import org.apache.fop.accessibility.DummyStructureTreeEventHandler;
import org.apache.fop.accessibility.StructureTreeEventHandler;
import org.apache.fop.apps.FOUserAgent;
@@ -30,19 +33,19 @@ import org.apache.fop.apps.FOUserAgent;
*/
public abstract class AbstractIFDocumentHandler implements IFDocumentHandler {
- private IFContext ifContext;
+ /** logging instance */
+ private static Log log = LogFactory.getLog(AbstractIFDocumentHandler.class);
+
+ private final IFContext ifContext;
/**
* Default constructor.
*/
- public AbstractIFDocumentHandler() {
- }
-
- /** {@inheritDoc} */
- public void setContext(IFContext context) {
+ protected AbstractIFDocumentHandler(IFContext context) {
this.ifContext = context;
}
+
/** {@inheritDoc} */
public IFContext getContext() {
return this.ifContext;
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFDocumentHandlerMaker.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFDocumentHandlerMaker.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFDocumentHandlerMaker.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFDocumentHandlerMaker.java Tue Jul 3 09:46:41 2012
@@ -19,7 +19,6 @@
package org.apache.fop.render.intermediate;
-import org.apache.fop.apps.FOUserAgent;
/**
* Base class for factory classes which instantiate {@link IFDocumentHandler}s and provide
@@ -29,10 +28,10 @@ public abstract class AbstractIFDocument
/**
* Instantiates a new {@link IFDocumentHandler}.
- * @param userAgent the user agent
+ * @param ifContext the user agent
* @return the newly instantiated document handler
*/
- public abstract IFDocumentHandler makeIFDocumentHandler(FOUserAgent userAgent);
+ public abstract IFDocumentHandler makeIFDocumentHandler(IFContext ifContext);
/**
* @return Indicates whether this document handler requires an OutputStream to work with.
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFPainter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFPainter.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFPainter.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFPainter.java Tue Jul 3 09:46:41 2012
@@ -45,7 +45,6 @@ import org.apache.xmlgraphics.image.load
import org.apache.fop.ResourceEventProducer;
import org.apache.fop.apps.FOUserAgent;
-import org.apache.fop.apps.FopFactory;
import org.apache.fop.fo.Constants;
import org.apache.fop.fonts.FontInfo;
import org.apache.fop.fonts.FontTriplet;
@@ -112,14 +111,6 @@ public abstract class AbstractIFPainter<
return getContext().getUserAgent();
}
- /**
- * Returns the FOP factory.
- * @return the FOP factory.
- */
- protected FopFactory getFopFactory() {
- return getUserAgent().getFactory();
- }
-
private AffineTransform combine(AffineTransform[] transforms) {
AffineTransform at = new AffineTransform();
for (int i = 0, c = transforms.length; i < c; i++) {
@@ -154,9 +145,9 @@ public abstract class AbstractIFPainter<
*/
protected void drawImageUsingImageHandler(ImageInfo info, Rectangle rect)
throws ImageException, IOException {
- ImageManager manager = getFopFactory().getImageManager();
+ ImageManager manager = getUserAgent().getImageManager();
ImageSessionContext sessionContext = getUserAgent().getImageSessionContext();
- ImageHandlerRegistry imageHandlerRegistry = getFopFactory().getImageHandlerRegistry();
+ ImageHandlerRegistry imageHandlerRegistry = getUserAgent().getImageHandlerRegistry();
//Load and convert the image to a supported format
RenderingContext context = createRenderingContext();
@@ -220,8 +211,8 @@ public abstract class AbstractIFPainter<
protected void drawImage(Image image, Rectangle rect,
RenderingContext context, boolean convert, Map additionalHints)
throws IOException, ImageException {
- ImageManager manager = getFopFactory().getImageManager();
- ImageHandlerRegistry imageHandlerRegistry = getFopFactory().getImageHandlerRegistry();
+ ImageManager manager = getUserAgent().getImageManager();
+ ImageHandlerRegistry imageHandlerRegistry = getUserAgent().getImageHandlerRegistry();
Image effImage;
context.putHints(additionalHints);
@@ -259,7 +250,7 @@ public abstract class AbstractIFPainter<
* @return the ImageInfo instance or null if there has been an error.
*/
protected ImageInfo getImageInfo(String uri) {
- ImageManager manager = getFopFactory().getImageManager();
+ ImageManager manager = getUserAgent().getImageManager();
try {
ImageSessionContext sessionContext = getUserAgent().getImageSessionContext();
return manager.getImageInfo(uri, sessionContext);
@@ -285,7 +276,7 @@ public abstract class AbstractIFPainter<
* @param rect the rectangle in which to paint the image
*/
protected void drawImageUsingURI(String uri, Rectangle rect) {
- ImageManager manager = getFopFactory().getImageManager();
+ ImageManager manager = getUserAgent().getImageManager();
ImageInfo info = null;
try {
ImageSessionContext sessionContext = getUserAgent().getImageSessionContext();
@@ -313,7 +304,7 @@ public abstract class AbstractIFPainter<
* @param rect the rectangle in which to paint the image
*/
protected void drawImageUsingDocument(Document doc, Rectangle rect) {
- ImageManager manager = getFopFactory().getImageManager();
+ ImageManager manager = getUserAgent().getImageManager();
ImageInfo info = null;
try {
info = manager.preloadImage(null, new DOMSource(doc));
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractXMLWritingIFDocumentHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractXMLWritingIFDocumentHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractXMLWritingIFDocumentHandler.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractXMLWritingIFDocumentHandler.java Tue Jul 3 09:46:41 2012
@@ -45,6 +45,10 @@ public abstract class AbstractXMLWriting
/** Main SAX ContentHandler to receive the generated SAX events. */
protected GenerationHelperContentHandler handler;
+ protected AbstractXMLWritingIFDocumentHandler(IFContext context) {
+ super(context);
+ }
+
/** {@inheritDoc} */
public void setResult(Result result) throws IFException {
if (result instanceof SAXResult) {
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFDocumentHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFDocumentHandler.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFDocumentHandler.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFDocumentHandler.java Tue Jul 3 09:46:41 2012
@@ -78,12 +78,6 @@ import org.apache.fop.fonts.FontInfo;
public interface IFDocumentHandler {
/**
- * Sets the intermediate format context object.
- * @param context the context object
- */
- void setContext(IFContext context);
-
- /**
* Returns the associated intermediate format context object.
* @return the context object
*/
@@ -274,4 +268,5 @@ public interface IFDocumentHandler {
* @throws IFException if an error occurs while handling this event
*/
void handleExtensionObject(Object extension) throws IFException;
+
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFDocumentHandlerConfigurator.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFDocumentHandlerConfigurator.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFDocumentHandlerConfigurator.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFDocumentHandlerConfigurator.java Tue Jul 3 09:46:41 2012
@@ -40,6 +40,6 @@ public interface IFDocumentHandlerConfig
* @param fontInfo the font info object to set up
* @throws FOPException if an error occurs while configuring the object
*/
- void setupFontInfo(IFDocumentHandler documentHandler, FontInfo fontInfo) throws FOPException;
+ void setupFontInfo(String mimeType, FontInfo fontInfo) throws FOPException;
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFParser.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFParser.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFParser.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFParser.java Tue Jul 3 09:46:41 2012
@@ -130,7 +130,7 @@ public class IFParser implements IFConst
public ContentHandler getContentHandler(IFDocumentHandler documentHandler,
FOUserAgent userAgent) {
ElementMappingRegistry elementMappingRegistry
- = userAgent.getFactory().getElementMappingRegistry();
+ = userAgent.getElementMappingRegistry();
return new Handler(documentHandler, userAgent, elementMappingRegistry);
}
@@ -306,7 +306,7 @@ public class IFParser implements IFConst
delegate.startElement(uri, localName, qName, attributes);
} else {
ContentHandlerFactoryRegistry registry
- = userAgent.getFactory().getContentHandlerFactoryRegistry();
+ = userAgent.getContentHandlerFactoryRegistry();
ContentHandlerFactory factory = registry.getFactory(uri);
if (factory == null) {
DOMImplementation domImplementation
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFRenderer.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFRenderer.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFRenderer.java Tue Jul 3 09:46:41 2012
@@ -232,9 +232,8 @@ public class IFRenderer extends Abstract
* @return the default IFDocumentHandler
*/
protected IFDocumentHandler createDefaultDocumentHandler() {
- IFSerializer serializer = new IFSerializer();
FOUserAgent userAgent = getUserAgent();
- serializer.setContext(new IFContext(userAgent));
+ IFSerializer serializer = new IFSerializer(new IFContext(userAgent));
if (userAgent.isAccessibilityEnabled()) {
userAgent.setStructureTreeEventHandler(serializer.getStructureTreeEventHandler());
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializer.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializer.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializer.java Tue Jul 3 09:46:41 2012
@@ -40,8 +40,9 @@ import org.apache.xmlgraphics.util.XMLiz
import org.apache.fop.accessibility.StructureTreeEventHandler;
import org.apache.fop.fo.extensions.InternalElementMapping;
import org.apache.fop.fonts.FontInfo;
-import org.apache.fop.render.PrintRendererConfigurator;
+import org.apache.fop.render.DefaultRendererConfigurator;
import org.apache.fop.render.RenderingContext;
+import org.apache.fop.render.intermediate.IFRendererConfig.IFRendererConfigParser;
import org.apache.fop.render.intermediate.IFStructureTreeBuilder.IFStructureTreeElement;
import org.apache.fop.render.intermediate.extensions.AbstractAction;
import org.apache.fop.render.intermediate.extensions.Bookmark;
@@ -62,7 +63,7 @@ import org.apache.fop.util.XMLUtil;
* IFPainter implementation that serializes the intermediate format to XML.
*/
public class IFSerializer extends AbstractXMLWritingIFDocumentHandler
- implements IFConstants, IFPainter, IFDocumentNavigationHandler {
+implements IFConstants, IFPainter, IFDocumentNavigationHandler {
/**
* Intermediate Format (IF) version, used to express an @version attribute
@@ -83,6 +84,10 @@ public class IFSerializer extends Abstra
private IFStructureTreeBuilder structureTreeBuilder;
+ public IFSerializer(IFContext context) {
+ super(context);
+ }
+
/** {@inheritDoc} */
@Override
protected String getMainNamespace() {
@@ -106,7 +111,7 @@ public class IFSerializer extends Abstra
if (this.mimicHandler != null) {
return getMimickedDocumentHandler().getConfigurator();
} else {
- return new PrintRendererConfigurator(getUserAgent());
+ return new DefaultRendererConfigurator(getUserAgent(), new IFRendererConfigParser());
}
}
@@ -284,7 +289,7 @@ public class IFSerializer extends Abstra
/** {@inheritDoc} */
public void startPage(int index, String name, String pageMasterName, Dimension size)
- throws IFException {
+ throws IFException {
try {
AttributesImpl atts = new AttributesImpl();
addAttribute(atts, "index", Integer.toString(index));
@@ -386,7 +391,7 @@ public class IFSerializer extends Abstra
}
private void startViewport(String transform, Dimension size, Rectangle clipRect)
- throws IFException {
+ throws IFException {
try {
AttributesImpl atts = new AttributesImpl();
if (transform != null && transform.length() > 0) {
@@ -684,7 +689,7 @@ public class IFSerializer extends Abstra
} else {
throw new UnsupportedOperationException(
"Extension must implement XMLizable: "
- + extension + " (" + extension.getClass().getName() + ")");
+ + extension + " (" + extension.getClass().getName() + ")");
}
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializerMaker.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializerMaker.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializerMaker.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializerMaker.java Tue Jul 3 09:46:41 2012
@@ -28,9 +28,9 @@ import org.apache.fop.apps.MimeConstants
public class IFSerializerMaker extends AbstractIFDocumentHandlerMaker {
/** {@inheritDoc} */
- public IFDocumentHandler makeIFDocumentHandler(FOUserAgent ua) {
- IFSerializer handler = new IFSerializer();
- handler.setContext(new IFContext(ua));
+ public IFDocumentHandler makeIFDocumentHandler(IFContext ifContext) {
+ IFSerializer handler = new IFSerializer(ifContext);
+ FOUserAgent ua = ifContext.getUserAgent();
if (ua.isAccessibilityEnabled()) {
ua.setStructureTreeEventHandler(handler.getStructureTreeEventHandler());
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFUtil.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFUtil.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFUtil.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFUtil.java Tue Jul 3 09:46:41 2012
@@ -167,7 +167,8 @@ public final class IFUtil {
}
IFDocumentHandlerConfigurator configurator = documentHandler.getConfigurator();
if (configurator != null) {
- configurator.setupFontInfo(documentHandler, fontInfo);
+ configurator.setupFontInfo(documentHandler.getMimeType(), fontInfo);
+ documentHandler.setFontInfo(fontInfo);
} else {
documentHandler.setDefaultFontInfo(fontInfo);
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/util/IFDocumentHandlerProxy.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/util/IFDocumentHandlerProxy.java?rev=1356646&r1=1356645&r2=1356646&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/util/IFDocumentHandlerProxy.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/util/IFDocumentHandlerProxy.java Tue Jul 3 09:46:41 2012
@@ -61,11 +61,6 @@ public class IFDocumentHandlerProxy impl
}
/** {@inheritDoc} */
- public void setContext(IFContext context) {
- this.delegate.setContext(context);
- }
-
- /** {@inheritDoc} */
public IFContext getContext() {
return this.delegate.getContext();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org