Selaa lähdekoodia

Added support for font substitutions on PDF/PSTranscoder by configuring the FontManager.

Restored configuration support for the (E)PSTranscoder.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1002550 13f79535-47bb-0310-9956-ffa450edef68
pull/29/head
Jeremias Maerki 13 vuotta sitten
vanhempi
commit
f85e99dc40

+ 2
- 1
src/java/org/apache/fop/svg/AbstractFOPTranscoder.java Näytä tiedosto

@@ -29,6 +29,7 @@ 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;
@@ -55,7 +56,7 @@ import org.apache.xmlgraphics.image.loader.impl.AbstractImageSessionContext;
/**
* 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

+ 19
- 15
src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java Näytä tiedosto

@@ -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;
}


+ 1
- 3
src/java/org/apache/fop/svg/PDFTranscoder.java Näytä tiedosto

@@ -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;

Loading…
Peruuta
Tallenna