keiron 02/03/21 01:37:15 Modified: src/org/apache/fop/fo FOText.java FOUserAgent.java FObjMixed.java src/org/apache/fop/fo/flow Block.java InstreamForeignObject.java src/org/apache/fop/image ImageLoader.java src/org/apache/fop/image/analyser SVGReader.java XMLReader.java src/org/apache/fop/layoutmgr AbstractLayoutManager.java BlockLayoutManager.java LayoutManager.java LineLayoutManager.java PageLayoutManager.java TextLayoutManager.java src/org/apache/fop/render RendererContext.java src/org/apache/fop/render/pdf PDFXMLHandler.java Added: src/org/apache/fop/fo TextInfo.java Log: a simple impl of getting ipd and line height some adjustments to user agent Revision Changes Path 1.31 +1 -17 xml-fop/src/org/apache/fop/fo/FOText.java Index: FOText.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/FOText.java,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- FOText.java 8 Mar 2002 15:41:47 -0000 1.30 +++ FOText.java 21 Mar 2002 09:37:14 -0000 1.31 @@ -1,5 +1,5 @@ /* - * $Id: FOText.java,v 1.30 2002/03/08 15:41:47 keiron Exp $ + * $Id: FOText.java,v 1.31 2002/03/21 09:37:14 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources." @@ -35,22 +35,6 @@ protected int start; protected int length; TextInfo textInfo; - - public static class TextInfo { - public FontState fs; - public float red; - public float green; - public float blue; - public int wrapOption; - public int whiteSpaceCollapse; - public int verticalAlign; - - // Textdecoration - public boolean underlined = false; - public boolean overlined = false; - public boolean lineThrough = false; - } - TextState ts; public FOText(char[] chars, int s, int e, TextInfo ti) { 1.7 +16 -4 xml-fop/src/org/apache/fop/fo/FOUserAgent.java Index: FOUserAgent.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/FOUserAgent.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- FOUserAgent.java 22 Feb 2002 09:18:47 -0000 1.6 +++ FOUserAgent.java 21 Mar 2002 09:37:14 -0000 1.7 @@ -1,5 +1,5 @@ /* - * $Id: FOUserAgent.java,v 1.6 2002/02/22 09:18:47 keiron Exp $ + * $Id: FOUserAgent.java,v 1.7 2002/03/21 09:37:14 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -44,14 +44,25 @@ return log; } - public void setBaseDirectory(String b) { + public void setBaseURL(String b) { base = b; } - public String getBaseDirectory() { + public String getBaseURL() { return base; } + public float getPixelToMM() { + return 0.35277777777777777778f; + } + + /** + * If to create hot links to footnotes and before floats. + */ + public boolean linkToFootnotes() { + return true; + } + /** * Set the default xml handler for the given mime type. */ @@ -92,10 +103,11 @@ handler.handleXML(ctx, doc, namespace); } catch (Throwable t) { // could not handle document - ctx.getLogger().error("Could not render XML", t); + log.error("Could not render XML", t); } } else { // no handler found for document + log.debug("No handler defined for XML: " + namespace); } } } 1.19 +4 -8 xml-fop/src/org/apache/fop/fo/FObjMixed.java Index: FObjMixed.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/FObjMixed.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- FObjMixed.java 21 Nov 2001 22:13:36 -0000 1.18 +++ FObjMixed.java 21 Mar 2002 09:37:14 -0000 1.19 @@ -1,5 +1,5 @@ /* - * $Id: FObjMixed.java,v 1.18 2001/11/21 22:13:36 klease Exp $ + * $Id: FObjMixed.java,v 1.19 2002/03/21 09:37:14 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -20,7 +20,7 @@ * and their processing */ public class FObjMixed extends FObj { - FOText.TextInfo textInfo = null; + TextInfo textInfo = null; FontInfo fontInfo=null; public FObjMixed(FONode parent) { @@ -33,7 +33,7 @@ protected void addCharacters(char data[], int start, int length) { if(textInfo == null) { - textInfo = new FOText.TextInfo(); + textInfo = new TextInfo(); try { textInfo.fs = propMgr.getFontState(fontInfo); @@ -43,9 +43,7 @@ } ColorType c = getProperty("color").getColorType(); - textInfo.red = c.red(); - textInfo.green = c.green(); - textInfo.blue = c.blue(); + textInfo.color = c; textInfo.verticalAlign = getProperty("vertical-align").getEnum(); @@ -97,8 +95,6 @@ public CharIterator charIterator() { return new RecursiveCharIterator(this); } - - } 1.1 xml-fop/src/org/apache/fop/fo/TextInfo.java Index: TextInfo.java =================================================================== /* * $Id: TextInfo.java,v 1.1 2002/03/21 09:37:14 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources." */ package org.apache.fop.fo; // FOP import org.apache.fop.layout.Area; import org.apache.fop.layout.BlockArea; import org.apache.fop.layout.FontState; import org.apache.fop.layout.*; import org.apache.fop.datatypes.*; import org.apache.fop.fo.properties.*; import org.apache.fop.apps.FOPException; import org.apache.fop.layoutmgr.LayoutManager; import org.apache.fop.layoutmgr.TextLayoutManager; import java.util.NoSuchElementException; /** */ public class TextInfo { public FontState fs; public ColorType color; public int wrapOption; public int whiteSpaceCollapse; public int verticalAlign; // Textdecoration public boolean underlined = false; public boolean overlined = false; public boolean lineThrough = false; } 1.50 +19 -4 xml-fop/src/org/apache/fop/fo/flow/Block.java Index: Block.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/Block.java,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- Block.java 25 Feb 2002 21:28:01 -0000 1.49 +++ Block.java 21 Mar 2002 09:37:14 -0000 1.50 @@ -1,5 +1,5 @@ /* - * $Id: Block.java,v 1.49 2002/02/25 21:28:01 klease Exp $ + * $Id: Block.java,v 1.50 2002/03/21 09:37:14 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -367,14 +367,29 @@ } public LayoutManager getLayoutManager() { - return new BlockLayoutManager(this); - } +BlockLayoutManager blm = new BlockLayoutManager(this); +TextInfo ti = new TextInfo(); + +/* try { + ti.fs = propMgr.getFontState(fontInfo); + } catch (FOPException fopex) { + log.error("Error setting FontState for characters: " + + fopex.getMessage()); + }*/ + + ColorType c = getProperty("color").getColorType(); + ti.color = c; + ti.verticalAlign = + getProperty("vertical-align").getEnum(); + +blm.setBlockTextInfo(ti); + return blm; + } public boolean generatesInlineAreas() { return false; } - public void addChild(FONode child) { // Handle whitespace based on values of properties 1.23 +5 -1 xml-fop/src/org/apache/fop/fo/flow/InstreamForeignObject.java Index: InstreamForeignObject.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/InstreamForeignObject.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- InstreamForeignObject.java 5 Mar 2002 10:25:39 -0000 1.22 +++ InstreamForeignObject.java 21 Mar 2002 09:37:15 -0000 1.23 @@ -1,5 +1,5 @@ /* - * $Id: InstreamForeignObject.java,v 1.22 2002/03/05 10:25:39 keiron Exp $ + * $Id: InstreamForeignObject.java,v 1.23 2002/03/21 09:37:15 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -133,6 +133,10 @@ ForeignObject foreign = new ForeignObject(doc, ns); areaCurrent = new Viewport(foreign); + areaCurrent.setWidth((int)size.getX() * 1000); + areaCurrent.setHeight((int)size.getY() * 1000); + areaCurrent.setOffset(0); + return areaCurrent; } 1.3 +2 -2 xml-fop/src/org/apache/fop/image/ImageLoader.java Index: ImageLoader.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/image/ImageLoader.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ImageLoader.java 22 Feb 2002 09:18:47 -0000 1.2 +++ ImageLoader.java 21 Mar 2002 09:37:15 -0000 1.3 @@ -1,5 +1,5 @@ /* - * $Id: ImageLoader.java,v 1.2 2002/02/22 09:18:47 keiron Exp $ + * $Id: ImageLoader.java,v 1.3 2002/03/21 09:37:15 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -30,7 +30,7 @@ if (!valid || image != null) { return image; } - String base = userAgent.getBaseDirectory(); + String base = userAgent.getBaseURL(); image = ImageFactory.loadImage(url, base, userAgent); if (image == null) { cache.invalidateImage(url, userAgent); 1.22 +2 -3 xml-fop/src/org/apache/fop/image/analyser/SVGReader.java Index: SVGReader.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/image/analyser/SVGReader.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- SVGReader.java 8 Mar 2002 11:00:19 -0000 1.21 +++ SVGReader.java 21 Mar 2002 09:37:15 -0000 1.22 @@ -1,5 +1,5 @@ /* - * $Id: SVGReader.java,v 1.21 2002/03/08 11:00:19 keiron Exp $ + * $Id: SVGReader.java,v 1.22 2002/03/21 09:37:15 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -164,8 +164,7 @@ Element e = ((SVGDocument) doc).getRootElement(); String s; SVGUserAgent userAg = - new SVGUserAgent(new AffineTransform()); - userAg.setLogger(ua.getLogger()); + new SVGUserAgent(ua, new AffineTransform()); BridgeContext ctx = new BridgeContext(userAg); UnitProcessor.Context uctx = UnitProcessor.createContext(ctx, e); 1.2 +2 -2 xml-fop/src/org/apache/fop/image/analyser/XMLReader.java Index: XMLReader.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/image/analyser/XMLReader.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- XMLReader.java 8 Mar 2002 11:00:19 -0000 1.1 +++ XMLReader.java 21 Mar 2002 09:37:15 -0000 1.2 @@ -1,5 +1,5 @@ /* - * $Id: XMLReader.java,v 1.1 2002/03/08 11:00:19 keiron Exp $ + * $Id: XMLReader.java,v 1.2 2002/03/21 09:37:15 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -82,7 +82,7 @@ } } } catch (Exception e) { - e.printStackTrace(); + //e.printStackTrace(); try { is.reset(); } catch (IOException ioe) { } 1.6 +4 -1 xml-fop/src/org/apache/fop/layoutmgr/AbstractLayoutManager.java Index: AbstractLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/AbstractLayoutManager.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- AbstractLayoutManager.java 8 Jan 2002 09:52:17 -0000 1.5 +++ AbstractLayoutManager.java 21 Mar 2002 09:37:15 -0000 1.6 @@ -1,5 +1,5 @@ /* - * $Id: AbstractLayoutManager.java,v 1.5 2002/01/08 09:52:17 keiron Exp $ + * $Id: AbstractLayoutManager.java,v 1.6 2002/03/21 09:37:15 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -30,6 +30,9 @@ this.parentLM = lm; } + public int getContentIPD() { + return 0; + } /** * Propagates to lower level layout managers. It iterates over the 1.4 +19 -13 xml-fop/src/org/apache/fop/layoutmgr/BlockLayoutManager.java Index: BlockLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/BlockLayoutManager.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- BlockLayoutManager.java 8 Jan 2002 09:52:17 -0000 1.3 +++ BlockLayoutManager.java 21 Mar 2002 09:37:15 -0000 1.4 @@ -1,5 +1,5 @@ /* - * $Id: BlockLayoutManager.java,v 1.3 2002/01/08 09:52:17 keiron Exp $ + * $Id: BlockLayoutManager.java,v 1.4 2002/03/21 09:37:15 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -8,6 +8,7 @@ package org.apache.fop.layoutmgr; import org.apache.fop.fo.FObj; +import org.apache.fop.fo.TextInfo; import org.apache.fop.area.Area; import org.apache.fop.area.BlockParent; import org.apache.fop.area.Block; @@ -26,17 +27,21 @@ super(fobj); } - // DESIGN. Potential alternative to getParentArea() scheme - // /** - // * Called by child layout manager to get the available space for - // * content in the inline progression direction. - // * Note that a manager may need to ask its parent for this. - // * For a block area, available IPD is determined by indents. - // */ - // public int getContentIPD() { - // getArea(); // make if not existing - // return blockArea.getIPD(); - // } + public void setBlockTextInfo(TextInfo ti) { + + } + + /** + * Called by child layout manager to get the available space for + * content in the inline progression direction. + * Note that a manager may need to ask its parent for this. + * For a block area, available IPD is determined by indents. + */ + public int getContentIPD() { + // adjust for side floats and indents + //getParentArea(null); // make if not existing + return curBlockArea.getIPD(); + } /** * Generate areas by tellings all layout managers for its FO's @@ -77,8 +82,9 @@ curBlockArea = new Block(); // Set up dimensions // Must get dimensions from parent area - //MinOptMax referenceIPD = parentLM.getReferenceIPD(); Area parentArea = parentLM.getParentArea(curBlockArea); + int referenceIPD = parentArea.getIPD(); + curBlockArea.setIPD(referenceIPD); // Get reference IPD from parentArea setCurrentArea(curBlockArea); // ??? for generic operations } 1.4 +2 -1 xml-fop/src/org/apache/fop/layoutmgr/LayoutManager.java Index: LayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/LayoutManager.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- LayoutManager.java 11 Nov 2001 22:14:45 -0000 1.3 +++ LayoutManager.java 21 Mar 2002 09:37:15 -0000 1.4 @@ -1,5 +1,5 @@ /* - * $Id: LayoutManager.java,v 1.3 2001/11/11 22:14:45 klease Exp $ + * $Id: LayoutManager.java,v 1.4 2002/03/21 09:37:15 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -20,4 +20,5 @@ public void addChild (Area childArea); public boolean splitArea(Area areaToSplit, SplitContext context); public void setParentLM(LayoutManager lm); + public int getContentIPD(); } 1.4 +16 -4 xml-fop/src/org/apache/fop/layoutmgr/LineLayoutManager.java Index: LineLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/LineLayoutManager.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- LineLayoutManager.java 8 Jan 2002 09:52:17 -0000 1.3 +++ LineLayoutManager.java 21 Mar 2002 09:37:15 -0000 1.4 @@ -1,5 +1,5 @@ /* - * $Id: LineLayoutManager.java,v 1.3 2002/01/08 09:52:17 keiron Exp $ + * $Id: LineLayoutManager.java,v 1.4 2002/03/21 09:37:15 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -15,6 +15,8 @@ import org.apache.fop.area.inline.InlineArea; import java.util.ListIterator; +import java.util.List; +import java.util.Iterator; /** * LayoutManager for lines. It builds one or more lines containing @@ -29,6 +31,7 @@ private boolean bFirstLine; private LayoutManager curLM; private MinOptMax remainingIPD; + private int lineHeight = 14000; public LineLayoutManager(ListIterator fobjIter) { super(null); @@ -68,7 +71,17 @@ if (lineArea != null) { // Adjust spacing as necessary // Calculate height, based on content (or does the Area do this?) - lineArea.setHeight(14000); + int maxHeight = lineHeight; + List inlineAreas = lineArea.getInlineAreas(); + for(Iterator iter = inlineAreas.iterator(); iter.hasNext(); ) { + InlineArea inline = (InlineArea)iter.next(); + int h = inline.getHeight(); + if(h > maxHeight) { + maxHeight = h; + } + } + lineArea.setHeight(maxHeight); + parentLM.addChild(lineArea); lineArea = null; } @@ -96,8 +109,7 @@ // lineArea.setContentIPD(parent.getContentIPD()); // remainingIPD = parent.getContentIPD(); // OR??? - // remainingIPD = parentLM.getContentIPD(); - remainingIPD = new MinOptMax(300000); // TESTING!!! + remainingIPD = new MinOptMax(parentLM.getContentIPD()); this.bFirstLine = false; } 1.5 +7 -5 xml-fop/src/org/apache/fop/layoutmgr/PageLayoutManager.java Index: PageLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/PageLayoutManager.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- PageLayoutManager.java 8 Jan 2002 09:52:17 -0000 1.4 +++ PageLayoutManager.java 21 Mar 2002 09:37:15 -0000 1.5 @@ -1,5 +1,5 @@ /* - * $Id: PageLayoutManager.java,v 1.4 2002/01/08 09:52:17 keiron Exp $ + * $Id: PageLayoutManager.java,v 1.5 2002/03/21 09:37:15 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -130,13 +130,12 @@ // for a float. When? } - - private PageViewport makeNewPage(boolean bIsBlank, boolean bIsLast) { finishPage(); try { curPage = ((PageSequence) fobj).createPage(bIsBlank, bIsLast); } catch (FOPException fopex) { /* ???? */ + fopex.printStackTrace(); } curBody = (BodyRegion) curPage.getPage(). getRegion( RegionReference.BODY).getRegion(); @@ -306,10 +305,9 @@ curBody.setMainReference(new MainReference()); } - - private Flow createFlow() { curFlow = new Flow(); + curFlow.setIPD(curSpan.getIPD()); // adjust for columns // Set IPD and max BPD on the curFlow from curBody curSpan.addFlow(curFlow); return curFlow; @@ -328,6 +326,10 @@ // } // else newpos = new MinOptMax(); curSpan = new Span(numCols); + // get Width or Height as IPD for span + curSpan.setIPD((int) curPage.getPage(). getRegion( + RegionReference.BODY).getViewArea().getWidth()); + //curSpan.setPosition(BPD, newpos); curBody.getMainReference().addSpan(curSpan); createFlow(); 1.5 +23 -24 xml-fop/src/org/apache/fop/layoutmgr/TextLayoutManager.java Index: TextLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/layoutmgr/TextLayoutManager.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- TextLayoutManager.java 11 Feb 2002 09:45:39 -0000 1.4 +++ TextLayoutManager.java 21 Mar 2002 09:37:15 -0000 1.5 @@ -1,5 +1,5 @@ /* - * $Id: TextLayoutManager.java,v 1.4 2002/02/11 09:45:39 keiron Exp $ + * $Id: TextLayoutManager.java,v 1.5 2002/03/21 09:37:15 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -8,9 +8,9 @@ package org.apache.fop.layoutmgr; import org.apache.fop.fo.FObj; -import org.apache.fop.fo.FOText; // For TextInfo: TODO: make independent! +import org.apache.fop.fo.TextInfo; import org.apache.fop.area.Area; -import org.apache.fop.area.Property; +import org.apache.fop.area.Trait; import org.apache.fop.area.inline.Word; import org.apache.fop.area.inline.Space; import org.apache.fop.util.CharUtilities; @@ -26,7 +26,7 @@ public class TextLayoutManager extends LeafNodeLayoutManager { private char[] chars; - private FOText.TextInfo textInfo; + private TextInfo textInfo; private static final char NEWLINE = '\n'; private static final char RETURN = '\r'; @@ -42,7 +42,7 @@ protected static final int TEXT = 2; public TextLayoutManager(FObj fobj, char[] chars, - FOText.TextInfo textInfo) { + TextInfo textInfo) { super(fobj); this.chars = chars; this.textInfo = textInfo; @@ -72,7 +72,7 @@ // With CID fonts, space isn't neccesary currentFontState.width(32) int whitespaceWidth = CharUtilities.getCharWidth(' ', textInfo.fs); - int wordStart = 0; + int wordStart = -1; int wordLength = 0; int wordWidth = 0; int spaceWidth = 0; @@ -152,15 +152,8 @@ // spaces. Split the word and add Space // as necessary. All spaces inside the word // Have a fixed width. - Word curWordArea = new Word(); - curWordArea.setWidth(wordWidth); - curWordArea.setWord( new String(chars, wordStart + 1, - wordLength)); - Property prop = new Property(); - prop.propType = Property.FONT_STATE; - prop.data = textInfo.fs; - curWordArea.addProperty(prop); - parentLM.addChild(curWordArea); + parentLM.addChild(createWord(new String(chars, wordStart + 1, + wordLength), wordWidth)); // reset word width wordWidth = 0; @@ -221,19 +214,25 @@ wordLength = chars.length - 1 - wordStart; } - Word curWordArea = new Word(); - curWordArea.setWidth(wordWidth); - curWordArea.setWord( - new String(chars, wordStart + 1, wordLength)); - Property prop = new Property(); - prop.propType = Property.FONT_STATE; - prop.data = textInfo.fs; - curWordArea.addProperty(prop); - parentLM.addChild(curWordArea); + parentLM.addChild(createWord(new String(chars, wordStart + 1, wordLength), wordWidth)); } chars = null; + } + + protected Word createWord(String str, int width) { + Word curWordArea = new Word(); + curWordArea.setWidth(width); + curWordArea.setHeight(textInfo.fs.getAscender() - textInfo.fs.getDescender()); + curWordArea.setOffset(textInfo.fs.getAscender()); + + curWordArea.setWord(str); + Trait prop = new Trait(); + prop.propType = Trait.FONT_STATE; + prop.data = textInfo.fs; + curWordArea.addTrait(prop); + return curWordArea; } /** Try to split the word area by hyphenating the word. */ 1.3 +8 -6 xml-fop/src/org/apache/fop/render/RendererContext.java Index: RendererContext.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/RendererContext.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- RendererContext.java 8 Jan 2002 09:52:17 -0000 1.2 +++ RendererContext.java 21 Mar 2002 09:37:15 -0000 1.3 @@ -1,11 +1,13 @@ /* - * $Id: RendererContext.java,v 1.2 2002/01/08 09:52:17 keiron Exp $ + * $Id: RendererContext.java,v 1.3 2002/03/21 09:37:15 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. */ package org.apache.fop.render; +import org.apache.fop.fo.FOUserAgent; + import org.apache.log.Logger; import java.util.HashMap; @@ -17,7 +19,7 @@ */ public class RendererContext { String mime; - Logger log; + FOUserAgent userAgent; HashMap props = new HashMap(); public RendererContext(String m) { @@ -28,12 +30,12 @@ return mime; } - public void setLogger(Logger logger) { - log = logger; + public void setUserAgent(FOUserAgent ua) { + userAgent = ua; } - public Logger getLogger() { - return log; + public FOUserAgent getUserAgent() { + return userAgent; } public void setProperty(String name, Object val) { 1.3 +6 -6 xml-fop/src/org/apache/fop/render/pdf/PDFXMLHandler.java Index: PDFXMLHandler.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFXMLHandler.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- PDFXMLHandler.java 18 Mar 2002 12:30:46 -0000 1.2 +++ PDFXMLHandler.java 21 Mar 2002 09:37:15 -0000 1.3 @@ -1,5 +1,5 @@ /* - * $Id: PDFXMLHandler.java,v 1.2 2002/03/18 12:30:46 keiron Exp $ + * $Id: PDFXMLHandler.java,v 1.3 2002/03/21 09:37:15 keiron Exp $ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. * For details on use and redistribution please refer to the * LICENSE file included with these sources. @@ -12,6 +12,7 @@ import org.apache.fop.render.RendererContext; import org.apache.fop.pdf.*; import org.apache.fop.svg.*; +import org.apache.fop.svg.SVGUserAgent; import org.apache.fop.layout.FontState; import org.apache.log.Logger; @@ -104,9 +105,8 @@ float sx = 1, sy = 1; int xOffset = pdfInfo.x, yOffset = pdfInfo.y; - org.apache.fop.svg.SVGUserAgent ua - = new org.apache.fop.svg.SVGUserAgent(new AffineTransform()); - ua.setLogger(context.getLogger()); + SVGUserAgent ua + = new SVGUserAgent(context.getUserAgent(), new AffineTransform()); GVTBuilder builder = new GVTBuilder(); BridgeContext ctx = new BridgeContext(ua); @@ -122,7 +122,7 @@ try { root = builder.build(ctx, doc); } catch (Exception e) { - context.getLogger().error("svg graphic could not be built: " + context.getUserAgent().getLogger().error("svg graphic could not be built: " + e.getMessage(), e); return; } @@ -168,7 +168,7 @@ root.paint(graphics); pdfInfo.currentStream.add(graphics.getString()); } catch (Exception e) { - context.getLogger().error("svg graphic could not be rendered: " + context.getUserAgent().getLogger().error("svg graphic could not be rendered: " + e.getMessage(), e); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]