gmazza 2003/12/12 14:37:39 Modified: src/java/org/apache/fop/pdf PDFResources.java src/java/org/apache/fop/render PrintRenderer.java src/java/org/apache/fop/render/mif MIFHandler.java src/java/org/apache/fop/render/pdf PDFRenderer.java src/java/org/apache/fop/render/ps AbstractPSDocumentGraphics2D.java PSDocumentGraphics2D.java PSRenderer.java src/java/org/apache/fop/render/rtf RTFHandler.java src/java/org/apache/fop/render/xml XMLRenderer.java src/java/org/apache/fop/svg PDFDocumentGraphics2D.java PDFGraphics2D.java Added: src/java/org/apache/fop/fonts EmbedFontInfo.java FontSetup.java FontTriplet.java Removed: src/java/org/apache/fop/render/pdf EmbedFontInfo.java FontSetup.java FontTriplet.java Log: Moved FontSetup and two helper classes from render.pdf to fonts package. FontSetup has the PDF fonts as the default, but this class can be extended if/when another renderer needs its own font setups. (Cannot do this, however, for AWT's FontSetup at the moment, because its setup() has a different signature.) Revision Changes Path 1.1 xml-fop/src/java/org/apache/fop/fonts/EmbedFontInfo.java Index: EmbedFontInfo.java =================================================================== /* * $Id: EmbedFontInfo.java,v 1.1 2003/12/12 22:37:38 gmazza Exp $ * ============================================================================ * The Apache Software License, Version 1.1 * ============================================================================ * * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without modifica- * tion, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * 3. The end-user documentation included with the redistribution, if any, must * include the following acknowledgment: "This product includes software * developed by the Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, if * and wherever such third-party acknowledgments normally appear. * * 4. The names "FOP" and "Apache Software Foundation" must not be used to * endorse or promote products derived from this software without prior * written permission. For written permission, please contact * [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache", nor may * "Apache" appear in their name, without prior written permission of the * Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ============================================================================ * * This software consists of voluntary contributions made by many individuals * on behalf of the Apache Software Foundation and was originally created by * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache * Software Foundation, please see <http://www.apache.org/>. */ package org.apache.fop.fonts; import java.util.List; /** * FontInfo contains meta information on fonts (where is the metrics file etc.) */ public class EmbedFontInfo { private String metricsFile, embedFile; private boolean kerning; private List fontTriplets; /** * Main constructor * @param metricsFile Path to the xml file containing font metrics * @param kerning True if kerning should be enabled * @param fontTriplets List of font triplets to associate with this font * @param embedFile Path to the embeddable font file (may be null) */ public EmbedFontInfo(String metricsFile, boolean kerning, List fontTriplets, String embedFile) { this.metricsFile = metricsFile; this.embedFile = embedFile; this.kerning = kerning; this.fontTriplets = fontTriplets; } /** * Returns the path to the metrics file * @return the metrics file path */ public String getMetricsFile() { return metricsFile; } /** * Returns the path to the embeddable font file * @return the font file path */ public String getEmbedFile() { return embedFile; } /** * Determines if kerning is enabled * @return True if enabled */ public boolean getKerning() { return kerning; } /** * Returns the list of font triplets associated with this font. * @return List of font triplets */ public List getFontTriplets() { return fontTriplets; } } 1.1 xml-fop/src/java/org/apache/fop/fonts/FontSetup.java Index: FontSetup.java =================================================================== /* * $Id: FontSetup.java,v 1.1 2003/12/12 22:37:38 gmazza Exp $ * ============================================================================ * The Apache Software License, Version 1.1 * ============================================================================ * * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without modifica- * tion, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * 3. The end-user documentation included with the redistribution, if any, must * include the following acknowledgment: "This product includes software * developed by the Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, if * and wherever such third-party acknowledgments normally appear. * * 4. The names "FOP" and "Apache Software Foundation" must not be used to * endorse or promote products derived from this software without prior * written permission. For written permission, please contact * [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache", nor may * "Apache" appear in their name, without prior written permission of the * Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ============================================================================ * * This software consists of voluntary contributions made by many individuals * on behalf of the Apache Software Foundation and was originally created by * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache * Software Foundation, please see <http://www.apache.org/>. */ package org.apache.fop.fonts; // FOP import org.apache.fop.apps.Document; // FOP (base 14 fonts) import org.apache.fop.fonts.base14.Helvetica; import org.apache.fop.fonts.base14.HelveticaBold; import org.apache.fop.fonts.base14.HelveticaOblique; import org.apache.fop.fonts.base14.HelveticaBoldOblique; import org.apache.fop.fonts.base14.TimesRoman; import org.apache.fop.fonts.base14.TimesBold; import org.apache.fop.fonts.base14.TimesItalic; import org.apache.fop.fonts.base14.TimesBoldItalic; import org.apache.fop.fonts.base14.Courier; import org.apache.fop.fonts.base14.CourierBold; import org.apache.fop.fonts.base14.CourierOblique; import org.apache.fop.fonts.base14.CourierBoldOblique; import org.apache.fop.fonts.base14.Symbol; import org.apache.fop.fonts.base14.ZapfDingbats; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; // Java import java.util.Map; import java.util.Iterator; import java.util.List; /** * Default fonts for FOP application; currently this uses PDF's fonts * by default. * * Assigns the font (with metrics) to internal names like "F1" and * assigns family-style-weight triplets to the fonts */ public class FontSetup { /** * Sets up the font info object. * * Adds metrics for basic fonts and useful family-style-weight * triplets for lookup. * * @param fontInfo the font info object to set up * @param embedList ??? */ public static void setup(Document fontInfo, List embedList) { fontInfo.addMetrics("F1", new Helvetica()); fontInfo.addMetrics("F2", new HelveticaOblique()); fontInfo.addMetrics("F3", new HelveticaBold()); fontInfo.addMetrics("F4", new HelveticaBoldOblique()); fontInfo.addMetrics("F5", new TimesRoman()); fontInfo.addMetrics("F6", new TimesItalic()); fontInfo.addMetrics("F7", new TimesBold()); fontInfo.addMetrics("F8", new TimesBoldItalic()); fontInfo.addMetrics("F9", new Courier()); fontInfo.addMetrics("F10", new CourierOblique()); fontInfo.addMetrics("F11", new CourierBold()); fontInfo.addMetrics("F12", new CourierBoldOblique()); fontInfo.addMetrics("F13", new Symbol()); fontInfo.addMetrics("F14", new ZapfDingbats()); // Custom type 1 fonts step 1/2 // fontInfo.addMetrics("F15", new OMEP()); // fontInfo.addMetrics("F16", new GaramondLightCondensed()); // fontInfo.addMetrics("F17", new BauerBodoniBoldItalic()); /* any is treated as serif */ fontInfo.addFontProperties("F5", "any", "normal", Font.NORMAL); fontInfo.addFontProperties("F6", "any", "italic", Font.NORMAL); fontInfo.addFontProperties("F6", "any", "oblique", Font.NORMAL); fontInfo.addFontProperties("F7", "any", "normal", Font.BOLD); fontInfo.addFontProperties("F8", "any", "italic", Font.BOLD); fontInfo.addFontProperties("F8", "any", "oblique", Font.BOLD); fontInfo.addFontProperties("F1", "sans-serif", "normal", Font.NORMAL); fontInfo.addFontProperties("F2", "sans-serif", "oblique", Font.NORMAL); fontInfo.addFontProperties("F2", "sans-serif", "italic", Font.NORMAL); fontInfo.addFontProperties("F3", "sans-serif", "normal", Font.BOLD); fontInfo.addFontProperties("F4", "sans-serif", "oblique", Font.BOLD); fontInfo.addFontProperties("F4", "sans-serif", "italic", Font.BOLD); fontInfo.addFontProperties("F5", "serif", "normal", Font.NORMAL); fontInfo.addFontProperties("F6", "serif", "oblique", Font.NORMAL); fontInfo.addFontProperties("F6", "serif", "italic", Font.NORMAL); fontInfo.addFontProperties("F7", "serif", "normal", Font.BOLD); fontInfo.addFontProperties("F8", "serif", "oblique", Font.BOLD); fontInfo.addFontProperties("F8", "serif", "italic", Font.BOLD); fontInfo.addFontProperties("F9", "monospace", "normal", Font.NORMAL); fontInfo.addFontProperties("F10", "monospace", "oblique", Font.NORMAL); fontInfo.addFontProperties("F10", "monospace", "italic", Font.NORMAL); fontInfo.addFontProperties("F11", "monospace", "normal", Font.BOLD); fontInfo.addFontProperties("F12", "monospace", "oblique", Font.BOLD); fontInfo.addFontProperties("F12", "monospace", "italic", Font.BOLD); fontInfo.addFontProperties("F1", "Helvetica", "normal", Font.NORMAL); fontInfo.addFontProperties("F2", "Helvetica", "oblique", Font.NORMAL); fontInfo.addFontProperties("F2", "Helvetica", "italic", Font.NORMAL); fontInfo.addFontProperties("F3", "Helvetica", "normal", Font.BOLD); fontInfo.addFontProperties("F4", "Helvetica", "oblique", Font.BOLD); fontInfo.addFontProperties("F4", "Helvetica", "italic", Font.BOLD); fontInfo.addFontProperties("F5", "Times", "normal", Font.NORMAL); fontInfo.addFontProperties("F6", "Times", "oblique", Font.NORMAL); fontInfo.addFontProperties("F6", "Times", "italic", Font.NORMAL); fontInfo.addFontProperties("F7", "Times", "normal", Font.BOLD); fontInfo.addFontProperties("F8", "Times", "oblique", Font.BOLD); fontInfo.addFontProperties("F8", "Times", "italic", Font.BOLD); fontInfo.addFontProperties("F9", "Courier", "normal", Font.NORMAL); fontInfo.addFontProperties("F10", "Courier", "oblique", Font.NORMAL); fontInfo.addFontProperties("F10", "Courier", "italic", Font.NORMAL); fontInfo.addFontProperties("F11", "Courier", "normal", Font.BOLD); fontInfo.addFontProperties("F12", "Courier", "oblique", Font.BOLD); fontInfo.addFontProperties("F12", "Courier", "italic", Font.BOLD); fontInfo.addFontProperties("F13", "Symbol", "normal", Font.NORMAL); fontInfo.addFontProperties("F14", "ZapfDingbats", "normal", Font.NORMAL); // Custom type 1 fonts step 2/2 // fontInfo.addFontProperties("F15", "OMEP", "normal", FontInfo.NORMAL); // fontInfo.addFontProperties("F16", "Garamond-LightCondensed", "normal", FontInfo.NORMAL); // fontInfo.addFontProperties("F17", "BauerBodoni", "italic", FontInfo.BOLD); /* for compatibility with PassiveTex */ fontInfo.addFontProperties("F5", "Times-Roman", "normal", Font.NORMAL); fontInfo.addFontProperties("F6", "Times-Roman", "oblique", Font.NORMAL); fontInfo.addFontProperties("F6", "Times-Roman", "italic", Font.NORMAL); fontInfo.addFontProperties("F7", "Times-Roman", "normal", Font.BOLD); fontInfo.addFontProperties("F8", "Times-Roman", "oblique", Font.BOLD); fontInfo.addFontProperties("F8", "Times-Roman", "italic", Font.BOLD); fontInfo.addFontProperties("F5", "Times Roman", "normal", Font.NORMAL); fontInfo.addFontProperties("F6", "Times Roman", "oblique", Font.NORMAL); fontInfo.addFontProperties("F6", "Times Roman", "italic", Font.NORMAL); fontInfo.addFontProperties("F7", "Times Roman", "normal", Font.BOLD); fontInfo.addFontProperties("F8", "Times Roman", "oblique", Font.BOLD); fontInfo.addFontProperties("F8", "Times Roman", "italic", Font.BOLD); fontInfo.addFontProperties("F9", "Computer-Modern-Typewriter", "normal", Font.NORMAL); /* Add configured fonts */ addConfiguredFonts(fontInfo, embedList, 15); } /** * Add fonts from configuration file starting with * internalnames F<num> * @param fontInfo the font info object to set up * @param fontInfos ??? * @param num starting index for internal font numbering */ public static void addConfiguredFonts(Document fontInfo, List fontInfos, int num) { if (fontInfos == null) { return; //No fonts to process } String internalName = null; //FontReader reader = null; for (int i = 0; i < fontInfos.size(); i++) { EmbedFontInfo configFontInfo = (EmbedFontInfo)fontInfos.get(i); String metricsFile = configFontInfo.getMetricsFile(); if (metricsFile != null) { internalName = "F" + num; num++; /* reader = new FontReader(metricsFile); reader.useKerning(configFontInfo.getKerning()); reader.setFontEmbedPath(configFontInfo.getEmbedFile()); fontInfo.addMetrics(internalName, reader.getFont()); */ LazyFont font = new LazyFont(configFontInfo.getEmbedFile(), metricsFile, configFontInfo.getKerning()); fontInfo.addMetrics(internalName, font); List triplets = configFontInfo.getFontTriplets(); for (int c = 0; c < triplets.size(); c++) { FontTriplet triplet = (FontTriplet)triplets.get(c); int weight = FontUtil.parseCSS2FontWeight(triplet.getWeight()); //System.out.println("Registering: "+triplet+" weight="+weight); fontInfo.addFontProperties(internalName, triplet.getName(), triplet.getStyle(), weight); } } } } /** * Builds a list of EmbedFontInfo objects for use with the setup() method. * @param cfg Configuration object * @return List the newly created list of fonts * @throws ConfigurationException if something's wrong with the config data */ public static List buildFontListFromConfiguration(Configuration cfg) throws ConfigurationException { List fontList = new java.util.ArrayList(); Configuration[] font = cfg.getChildren("font"); for (int i = 0; i < font.length; i++) { Configuration[] triple = font[i].getChildren("font-triplet"); List tripleList = new java.util.ArrayList(); for (int j = 0; j < triple.length; j++) { tripleList.add(new FontTriplet(triple[j].getAttribute("name"), triple[j].getAttribute("weight"), triple[j].getAttribute("style"))); } EmbedFontInfo efi; efi = new EmbedFontInfo(font[i].getAttribute("metrics-url"), font[i].getAttributeAsBoolean("kerning", false), tripleList, font[i].getAttribute("embed-url", null)); fontList.add(efi); } return fontList; } } 1.1 xml-fop/src/java/org/apache/fop/fonts/FontTriplet.java Index: FontTriplet.java =================================================================== /* * $Id: FontTriplet.java,v 1.1 2003/12/12 22:37:38 gmazza Exp $ * ============================================================================ * The Apache Software License, Version 1.1 * ============================================================================ * * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without modifica- * tion, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * 3. The end-user documentation included with the redistribution, if any, must * include the following acknowledgment: "This product includes software * developed by the Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, if * and wherever such third-party acknowledgments normally appear. * * 4. The names "FOP" and "Apache Software Foundation" must not be used to * endorse or promote products derived from this software without prior * written permission. For written permission, please contact * [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache", nor may * "Apache" appear in their name, without prior written permission of the * Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ============================================================================ * * This software consists of voluntary contributions made by many individuals * on behalf of the Apache Software Foundation and was originally created by * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache * Software Foundation, please see <http://www.apache.org/>. */ package org.apache.fop.fonts; /** * FontTriplet contains information on name, weight, style of one font */ public class FontTriplet { private String name, weight, style; /** * Creates a new font triplet. * @param name font name * @param weight font weight (normal, bold etc.) * @param style font style (normal, italic etc.) */ public FontTriplet(String name, String weight, String style) { this.name = name; this.weight = weight; this.style = style; } /** * Returns the font name. * @return the font name */ public String getName() { return name; } /** * Returns the font weight. * @return the font weight */ public String getWeight() { return weight; } /** * Returns the font style. * @return the font style */ public String getStyle() { return style; } /** * @see java.lang.Object#toString() */ public String toString() { return getName() + "," + getStyle() + "," + getWeight(); } } 1.3 +25 -0 xml-fop/src/java/org/apache/fop/pdf/PDFResources.java Index: PDFResources.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/pdf/PDFResources.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- PDFResources.java 27 Mar 2003 10:44:05 -0000 1.2 +++ PDFResources.java 12 Dec 2003 22:37:39 -0000 1.3 @@ -50,6 +50,10 @@ */ package org.apache.fop.pdf; +import org.apache.fop.apps.Document; +import org.apache.fop.fonts.Typeface; +import org.apache.fop.fonts.FontDescriptor; + // Java import java.util.Iterator; import java.util.Map; @@ -108,6 +112,27 @@ */ public void addFont(PDFFont font) { this.fonts.put(font.getName(), font); + } + + /** + * Add the fonts in the font info to this PDF document's Font Resources. + * + * @param doc PDF document to add fonts to + * @param fontInfo font info object to get font information from + */ + public void addFonts(PDFDocument doc, Document fontInfo) { + Map fonts = fontInfo.getUsedFonts(); + Iterator e = fonts.keySet().iterator(); + while (e.hasNext()) { + String f = (String)e.next(); + Typeface font = (Typeface)fonts.get(f); + FontDescriptor desc = null; + if (font instanceof FontDescriptor) { + desc = (FontDescriptor)font; + } + addFont(doc.getFactory().makeFont( + f, font.getFontName(), font.getEncoding(), font, desc)); + } } /** 1.6 +1 -1 xml-fop/src/java/org/apache/fop/render/PrintRenderer.java Index: PrintRenderer.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/PrintRenderer.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- PrintRenderer.java 20 Aug 2003 18:09:45 -0000 1.5 +++ PrintRenderer.java 12 Dec 2003 22:37:39 -0000 1.6 @@ -51,9 +51,9 @@ package org.apache.fop.render; // FOP -import org.apache.fop.render.pdf.FontSetup; import org.apache.fop.apps.Document; import org.apache.fop.fo.FOTreeControl; +import org.apache.fop.fonts.FontSetup; // Java import java.util.List; 1.2 +3 -3 xml-fop/src/java/org/apache/fop/render/mif/MIFHandler.java Index: MIFHandler.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/mif/MIFHandler.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- MIFHandler.java 1 Nov 2003 23:08:51 -0000 1.1 +++ MIFHandler.java 12 Dec 2003 22:37:39 -0000 1.2 @@ -74,6 +74,7 @@ import org.apache.fop.fo.pagination.PageSequence; import org.apache.fop.fo.pagination.PageSequenceMaster; import org.apache.fop.fo.pagination.SimplePageMaster; +import org.apache.fop.fonts.FontSetup; import org.xml.sax.SAXException; // TODO: do we really want every method throwing a SAXException @@ -102,8 +103,7 @@ public MIFHandler(Document doc, OutputStream os) { super(doc); outStream = os; - // use pdf fonts for now, this is only for resolving names - org.apache.fop.render.pdf.FontSetup.setup(doc, null); + FontSetup.setup(doc, null); } /** 1.25 +3 -2 xml-fop/src/java/org/apache/fop/render/pdf/PDFRenderer.java Index: PDFRenderer.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/pdf/PDFRenderer.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- PDFRenderer.java 24 Nov 2003 19:07:35 -0000 1.24 +++ PDFRenderer.java 12 Dec 2003 22:37:39 -0000 1.25 @@ -94,6 +94,7 @@ import org.apache.fop.fo.properties.RuleStyle; import org.apache.fop.fonts.Typeface; import org.apache.fop.fonts.Font; +import org.apache.fop.fonts.FontSetup; import org.apache.fop.fonts.FontMetrics; import org.apache.fop.image.FopImage; import org.apache.fop.image.ImageFactory; @@ -295,8 +296,8 @@ * @see org.apache.fop.render.Renderer#stopRenderer() */ public void stopRenderer() throws IOException { - FontSetup.addToResources(pdfDoc, pdfDoc.getResources(), - (org.apache.fop.apps.Document)fontInfo); + pdfDoc.getResources().addFonts(pdfDoc, + (org.apache.fop.apps.Document) fontInfo); pdfDoc.outputTrailer(ostream); this.pdfDoc = null; 1.2 +3 -3 xml-fop/src/java/org/apache/fop/render/ps/AbstractPSDocumentGraphics2D.java Index: AbstractPSDocumentGraphics2D.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/ps/AbstractPSDocumentGraphics2D.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AbstractPSDocumentGraphics2D.java 7 Nov 2003 22:19:19 -0000 1.1 +++ AbstractPSDocumentGraphics2D.java 12 Dec 2003 22:37:39 -0000 1.2 @@ -61,7 +61,7 @@ //FOP import org.apache.fop.apps.Document; import org.apache.fop.fonts.Font; -import org.apache.fop.render.pdf.FontSetup; +import org.apache.fop.fonts.FontSetup; /** * This class is a wrapper for the <tt>PSGraphics2D</tt> that 1.9 +1 -1 xml-fop/src/java/org/apache/fop/render/ps/PSDocumentGraphics2D.java Index: PSDocumentGraphics2D.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/ps/PSDocumentGraphics2D.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- PSDocumentGraphics2D.java 7 Nov 2003 22:19:19 -0000 1.8 +++ PSDocumentGraphics2D.java 12 Dec 2003 22:37:39 -0000 1.9 @@ -57,7 +57,7 @@ //FOP import org.apache.fop.apps.Document; -import org.apache.fop.render.pdf.FontSetup; +import org.apache.fop.fonts.FontSetup; /** * This class is a wrapper for the <tt>PSGraphics2D</tt> that 1.19 +3 -3 xml-fop/src/java/org/apache/fop/render/ps/PSRenderer.java Index: PSRenderer.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/ps/PSRenderer.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- PSRenderer.java 7 Nov 2003 22:19:19 -0000 1.18 +++ PSRenderer.java 12 Dec 2003 22:37:39 -0000 1.19 @@ -72,6 +72,7 @@ import org.apache.fop.area.inline.TextArea; import org.apache.fop.datatypes.ColorType; import org.apache.fop.apps.FOUserAgent; +import org.apache.fop.fonts.FontSetup; import org.apache.fop.fonts.Typeface; import org.apache.fop.apps.Document; import org.apache.fop.render.AbstractRenderer; @@ -262,9 +263,8 @@ * @param foTreeControl the font info object to set up */ public void setupFontInfo(FOTreeControl foTreeControl) { - /* use PDF's font setup to get PDF metrics */ - org.apache.fop.render.pdf.FontSetup.setup((Document)foTreeControl, null); - this.fontInfo = (Document)foTreeControl; + FontSetup.setup((Document) foTreeControl, null); + this.fontInfo = (Document) foTreeControl; } /** 1.8 +3 -3 xml-fop/src/java/org/apache/fop/render/rtf/RTFHandler.java Index: RTFHandler.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/rtf/RTFHandler.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- RTFHandler.java 22 Nov 2003 17:40:14 -0000 1.7 +++ RTFHandler.java 12 Dec 2003 22:37:39 -0000 1.8 @@ -103,6 +103,7 @@ import org.apache.fop.render.rtf.rtflib.rtfdoc.RtfTableRow; import org.apache.fop.render.rtf.rtflib.rtfdoc.RtfTableCell; import org.apache.fop.render.rtf.rtflib.rtfdoc.IRtfTableContainer; +import org.apache.fop.fonts.FontSetup; import org.xml.sax.SAXException; /** @@ -143,8 +144,7 @@ public RTFHandler(Document doc, OutputStream os) { super(doc); this.os = os; - // use pdf fonts for now, this is only for resolving names - org.apache.fop.render.pdf.FontSetup.setup(doc, null); + FontSetup.setup(doc, null); log.warn(ALPHA_WARNING); } 1.12 +2 -3 xml-fop/src/java/org/apache/fop/render/xml/XMLRenderer.java Index: XMLRenderer.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/xml/XMLRenderer.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- XMLRenderer.java 28 Oct 2003 04:22:14 -0000 1.11 +++ XMLRenderer.java 12 Dec 2003 22:37:39 -0000 1.12 @@ -92,6 +92,7 @@ import org.apache.fop.area.inline.Space; import org.apache.fop.area.inline.Viewport; import org.apache.fop.area.inline.TextArea; +import org.apache.fop.fonts.FontSetup; import org.apache.fop.fo.properties.RuleStyle; import org.apache.fop.fo.FOTreeControl; import org.apache.fop.fo.pagination.Region; @@ -211,9 +212,7 @@ * @param fontInfo the font info object to set up */ public void setupFontInfo(FOTreeControl foTreeControl) { - - /* use PDF's font setup to get PDF metrics */ - org.apache.fop.render.pdf.FontSetup.setup((Document)foTreeControl, null); + FontSetup.setup((Document) foTreeControl, null); } private boolean isCoarseXml() { 1.7 +2 -2 xml-fop/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java Index: PDFDocumentGraphics2D.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/svg/PDFDocumentGraphics2D.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- PDFDocumentGraphics2D.java 20 Aug 2003 18:09:46 -0000 1.6 +++ PDFDocumentGraphics2D.java 12 Dec 2003 22:37:39 -0000 1.7 @@ -59,7 +59,7 @@ import org.apache.fop.pdf.PDFResources; import org.apache.fop.pdf.PDFColor; import org.apache.fop.pdf.PDFAnnotList; -import org.apache.fop.render.pdf.FontSetup; +import org.apache.fop.fonts.FontSetup; import org.apache.avalon.framework.CascadingRuntimeException; import org.apache.avalon.framework.activity.Initializable; import org.apache.avalon.framework.configuration.Configurable; @@ -308,7 +308,7 @@ } this.pdfDoc.addObject(currentPage); if (fontInfo != null) { - FontSetup.addToResources(pdfDoc, pdfDoc.getResources(), fontInfo); + pdfDoc.getResources().addFonts(pdfDoc, fontInfo); } this.pdfDoc.output(outputStream); pdfDoc.outputTrailer(outputStream); 1.12 +8 -5 xml-fop/src/java/org/apache/fop/svg/PDFGraphics2D.java Index: PDFGraphics2D.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/svg/PDFGraphics2D.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- PDFGraphics2D.java 13 Sep 2003 14:23:40 -0000 1.11 +++ PDFGraphics2D.java 12 Dec 2003 22:37:39 -0000 1.12 @@ -66,7 +66,7 @@ import org.apache.fop.pdf.BitmapImage; import org.apache.fop.apps.Document; import org.apache.fop.fonts.Font; -import org.apache.fop.render.pdf.FontSetup; +import org.apache.fop.fonts.FontSetup; import org.apache.fop.fonts.FontMetrics; import org.apache.fop.fonts.LazyFont; import org.apache.fop.image.JpegImage; @@ -964,12 +964,12 @@ private void createPattern(PatternPaint pp, boolean fill) { Rectangle2D rect = pp.getPatternRect(); - Document fi = new Document(null); - FontSetup.setup(fi, null); + Document fontInfo = new Document(null); + FontSetup.setup(fontInfo, null); PDFResources res = pdfDoc.getFactory().makeResources(); PDFResourceContext context = new PDFResourceContext(res); - PDFGraphics2D pattGraphic = new PDFGraphics2D(textAsShapes, fi, + PDFGraphics2D pattGraphic = new PDFGraphics2D(textAsShapes, fontInfo, pdfDoc, context, pageRef, "", 0); pattGraphic.gc = (GraphicContext)this.gc.clone(); @@ -1008,7 +1008,10 @@ translate.add(new Double(flatmatrix[4])); translate.add(new Double(flatmatrix[5])); - FontSetup.addToResources(pdfDoc, res, fi); + /** @todo see if pdfDoc and res can be linked here, + (currently res <> PDFDocument's resources) so addFonts() + can be moved to PDFDocument class */ + res.addFonts(pdfDoc, fontInfo); PDFPattern myPat = pdfDoc.getFactory().makePattern( resourceContext, 1, res, 1, 1, bbox,
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]