I'll get to these this weekend. Thanks, Glen
--- Thomas DeWeese <[EMAIL PROTECTED]> wrote: > Hi Glen, > > Thanks for doing this. > > I just updated my FOP and ran some FO/SVG > through it. > You seem to have gotten most of it, but I noticed > that > you didn't use TextPainterInfo.fillPaint - instead > you > continued to use the value of the FOREGROUND > attribute. > You may not have noticed this becuase I was unable > to > 'remove' the FOREGROUND ACI attribute as I was for > the > others (it comes from the JDK). I've attached a > tiny > patch that fixes this for the PDFTextPainter. > > I also have attached a patch for PDFGraphics2D. > The patch has two parts - the first is the more > important > of the two. > > The first block is for drawing images and > does two things - first it installs the composite > from > the PDFGraphics when drawing the image to it's > offscreen > buffer - this ensures that 'group opacity' is > properly > propagated. Second it removes the 'composite with > white' > this was important before FOP handled masks but > since it > does that now I would remove it, it makes a quite > visible > difference in a lot of places. > > The second part of the patch is probably not > that > important (but was part of my tracking down the > FOREGROUND > bug). It seems that in general PDFGraphics2D is a > little > shaky in how it treats color vs paint. This patch > just > tries to make sure that everywhere it sets color it > also > sets paint. This part probably needs more work but > might > warrent an entry in Bugzilla or something. > > Glen Mazza wrote: > > --- Thomas DeWeese <[EMAIL PROTECTED]> > wrote: > > > >>>1.) We do not have plans anytime soon for making > a > >> > >>new > >> > >>>release of maintenance--so, if I made the change, > >> > >>the > >> > >>>new pdftranscoder.jar could be based only on a > >> > >>nightly > >> > >>>build--is that OK with you? > >> > >> I think that would be fine. > >> > > > > > > Changes have been made on maintenance (0.20.5) and > > development (1.0) version. I also updated the > Batik > > library to that of a nightly build. > > > > I stand corrected--pdf transcoder.jar is actually > > using our development (1.0) version--which is very > > good news--you can checkout xml-fop and just run > Ant > > (default target) to get the pdftranscoder.jar. > > > > We've had some moving around in the files > recently--if > > there's a problem with the pdftranscoder.jar, let > us > > know--we may need to update the build process in > case > > certain files have been left out. > > > >>>How do I obtain a single batik.jar for me to > compile > > > > According to an email from Keiron in the fop-dev > > archives, FOP relies on the "all-jar" target in > your > > build.xml. I just sent you a patch (in Bugzilla) > to > > update the build.xml helptext to include a > description > > of that target. (Saves confusion down the > road...) > > Great that is a good idea. > > Index: > src/java/org/apache/fop/svg/PDFTextPainter.java > =================================================================== > RCS file: > /home/cvs/xml-fop/src/java/org/apache/fop/svg/PDFTextPainter.java,v > retrieving revision 1.7 > diff -w -u -r1.7 PDFTextPainter.java > --- src/java/org/apache/fop/svg/PDFTextPainter.java > 9 Sep 2003 19:44:22 -0000 1.7 > +++ src/java/org/apache/fop/svg/PDFTextPainter.java > 10 Sep 2003 09:54:26 -0000 > @@ -138,7 +138,6 @@ > gvtFonts = (List) aci.getAttribute( > > GVTAttributedCharacterIterator.TextAttribute.GVT_FONT_FAMILIES); > > - Paint forg = (Paint) > aci.getAttribute(TextAttribute.FOREGROUND); > TextPaintInfo tpi = (TextPaintInfo) > aci.getAttribute( > > GVTAttributedCharacterIterator.TextAttribute.PAINT_INFO); > > @@ -146,6 +145,7 @@ > return; > } > > + Paint forg = tpi.fillPaint; > Paint strokePaint = tpi.strokePaint; > Float size = (Float) > aci.getAttribute(TextAttribute.SIZE); > if (size == null) { > > Index: > src/java/org/apache/fop/svg/PDFGraphics2D.java > =================================================================== > RCS file: > /home/cvs/xml-fop/src/java/org/apache/fop/svg/PDFGraphics2D.java,v > retrieving revision 1.10 > diff -w -u -r1.10 PDFGraphics2D.java > --- src/java/org/apache/fop/svg/PDFGraphics2D.java > 20 Aug 2003 18:09:46 -0000 1.10 > +++ src/java/org/apache/fop/svg/PDFGraphics2D.java > 10 Sep 2003 09:56:47 -0000 > @@ -471,6 +471,7 @@ > g.setPaint(new Color(1, 1, 1, 0)); > g.fillRect(0, 0, width * scaleFactor, > height * scaleFactor); > g.clip(new Rectangle(0, 0, > buf.getWidth(), buf.getHeight())); > + g.setComposite(gc.getComposite()); > > if (!g.drawImage(img, 0, 0, > buf.getWidth(), buf.getHeight(), observer)) { > return false; > @@ -498,33 +499,13 @@ > val = iarray[j]; > alpha = val >>> 24; > mask[maskpos++] = > (byte)(alpha & 0xFF); > - if (alpha != 255) { > + if (alpha != 255) > hasMask = true; > - /* > - if (alpha != 0) { > - binaryMask = false; > - }*/ > - > - // > System.out.println("Alpha: " + alpha); > - // Composite with > opaque white... > - add = (255 - alpha); > - mult = (alpha << 16) / > 255; > - result[count++] = > - (byte)(add > - + ((((val >> > 16) & 0xFF) * mult) >> 16)); > - result[count++] = > - (byte)(add > - + ((((val >> > 8) & 0xFF) * mult) >> 16)); > - result[count++] = > (byte)(add > - > + ((((val) & 0xFF) * mult) > - > >> 16)); > - } else { > result[count++] = > (byte)((val >> 16) & 0xFF); > result[count++] = > (byte)((val >> 8) & 0xFF); > result[count++] = > (byte)((val) & 0xFF); > } > } > - } > break; > default: > // error > @@ -641,12 +622,6 @@ > */ > public void draw(Shape s) { > // System.out.println("draw(Shape)"); > - Color c; > - c = getColor(); > - if (c.getAlpha() == 0) { > - return; > - } > - > AffineTransform trans = getTransform(); > double[] tranvals = new double[6]; > trans.getMatrix(tranvals); > @@ -672,6 +647,11 @@ > } > } > > + Color c; > + c = getColor(); > + if (c.getAlpha() == 0) { > + return; > + } > if (c.getAlpha() != 255) { > Map vals = new java.util.HashMap(); > vals.put(PDFGState.GSTATE_ALPHA_STROKE, > new Float(c.getAlpha() / 255f)); > @@ -1237,6 +1217,7 @@ > writeClip(imclip); > Color c = getColor(); > applyColor(c, true); > + applyPaint(getPaint(), true); > int salpha = c.getAlpha(); > > if (salpha != 255) { > @@ -1374,6 +1355,7 @@ > writeClip(imclip); > Color c = getColor(); > applyColor(c, true); > + applyPaint(getPaint(), true); > > boolean fill = true; > boolean stroke = false; > @@ -1382,6 +1364,7 @@ > stroke = true; > applyStroke(currentStroke); > applyColor(c, false); > + applyPaint(getPaint(), false); > } > > currentStream.write("BT\n"); > __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com