keiron      01/06/25 07:15:54

  Modified:    src/org/apache/fop/render/pdf PDFRenderer.java
  Log:
  workaround for a bug in Acrobat Reader where text may disappear or
  be placed in the wrong position
  
  Revision  Changes    Path
  1.70      +16 -6     xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.69
  retrieving revision 1.70
  diff -u -r1.69 -r1.70
  --- PDFRenderer.java  2001/06/10 17:04:36     1.69
  +++ PDFRenderer.java  2001/06/25 14:15:45     1.70
  @@ -1,4 +1,4 @@
  -/* $Id: PDFRenderer.java,v 1.69 2001/06/10 17:04:36 arved Exp $
  +/* $Id: PDFRenderer.java,v 1.70 2001/06/25 14:15:45 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."
  @@ -374,7 +374,6 @@
           GraphicsNodeRenderContext rc = getRenderContext();
           BridgeContext ctx = new BridgeContext(userAgent, rc);
           GraphicsNode root;
  -        //System.out.println("creating PDFGraphics2D");
           PDFGraphics2D graphics =
             new PDFGraphics2D(true, fs, pdfDoc,
                               currentFontName, currentFontSize, currentXPosition,
  @@ -387,7 +386,7 @@
               root.paint(graphics, rc);
               currentStream.add(graphics.getString());
           } catch (Exception e) {
  -            e.printStackTrace();
  +            MessageHandler.errorln("Error: svg graphic could not be rendered: " + 
e.getMessage());
           }
   
           currentStream.add("Q\n");
  @@ -408,6 +407,7 @@
                                       true);
   
               TextPainter textPainter = new StrokingTextPainter();
  +            //TextPainter textPainter = new PDFTextPainter();
   
               GraphicsNodeRableFactory gnrFactory =
                 new ConcreteGraphicsNodeRableFactory();
  @@ -499,9 +499,19 @@
                   int space = prevWordX - rx + prevWordWidth;
                   float emDiff =
                     (float) space / (float) currentFontSize * 1000f;
  -                pdf.append(Float.toString(emDiff));
  -                pdf.append(" ");
  -                pdf.append(startText);
  +                // this prevents a problem in Acrobat Reader where large
  +                // numbers cause text to disappear or default to a limit
  +                if(emDiff < -33000) {
  +                    closeText();
  +
  +                    pdf.append("1 0 0 1 " +(rx / 1000f) + " " +
  +                               (bl / 1000f) + " Tm [" + startText);
  +                    textOpen = true;
  +                } else {
  +                    pdf.append(Float.toString(emDiff));
  +                    pdf.append(" ");
  +                    pdf.append(startText);
  +                }
               }
               prevWordWidth = area.getContentWidth();
               prevWordX = rx;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to