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

Reply via email to