Ignore:
Timestamp:
2016-08-12T03:16:58+02:00 (8 years ago)
Author:
Don-vip
Message:

fix #13291 - upgrade to svgSalamander v1.1.0 (patched)

now detects two invalid SVG files: presets/sport/volleyball.svg and presets/shop/diy_store.svg

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/com/kitfox/svg/Text.java

    r8084 r10787  
    3737
    3838import com.kitfox.svg.util.FontSystem;
    39 import com.kitfox.svg.util.TextBuilder;
    4039import com.kitfox.svg.xml.StyleAttribute;
    4140import java.awt.Graphics2D;
    4241import java.awt.Shape;
    43 import java.awt.font.FontRenderContext;
    4442import java.awt.geom.AffineTransform;
    4543import java.awt.geom.GeneralPath;
     
    5149import java.util.regex.Pattern;
    5250
    53 //import org.apache.batik.ext.awt.geom.ExtendedGeneralPath;
    5451/**
    5552 * @author Mark McKay
     
    265262    protected void buildText() throws SVGException
    266263    {
    267 
    268264        //Get font
    269         Font font = diagram.getUniverse().getFont(fontFamily);
     265        String[] families = fontFamily.split(",");
     266        Font font = null;
     267        for (int i = 0; i < families.length; ++i)
     268        {
     269            font = diagram.getUniverse().getFont(fontFamily);
     270            if (font != null)
     271            {
     272                break;
     273            }
     274        }
     275
    270276        if (font == null)
    271277        {
    272 //            System.err.println("Could not load font");
    273 
    274278            font = new FontSystem(fontFamily, fontStyle, fontWeight, (int)fontSize);
    275 //            java.awt.Font sysFont = new java.awt.Font(fontFamily, style | weight, (int)fontSize);
    276 //            buildSysFont(sysFont);
    277 //            return;
    278         }
    279 
    280 //        font = new java.awt.Font(font.getFamily(), style | weight, font.getSize());
    281 
    282 //        Area textArea = new Area();
     279        }
     280
    283281        GeneralPath textPath = new GeneralPath();
    284282        textShape = textPath;
     
    286284        float cursorX = x, cursorY = y;
    287285
    288         FontFace fontFace = font.getFontFace();
    289         //int unitsPerEm = fontFace.getUnitsPerEm();
    290         int ascent = fontFace.getAscent();
    291         float fontScale = fontSize / (float) ascent;
    292 
    293 //        AffineTransform oldXform = g.getTransform();
    294 //        TextBuilder builder = new TextBuilder();
    295 //       
    296 //        for (Iterator it = content.iterator(); it.hasNext();)
    297 //        {
    298 //            Object obj = it.next();
    299 //
    300 //            if (obj instanceof String)
    301 //            {
    302 //                String text = (String) obj;
    303 //                if (text != null)
    304 //                {
    305 //                    text = text.trim();
    306 //                }
    307 //               
    308 //                for (int i = 0; i < text.length(); i++)
    309 //                {
    310 //                    String unicode = text.substring(i, i + 1);
    311 //                    MissingGlyph glyph = font.getGlyph(unicode);
    312 //                   
    313 //                    builder.appendGlyph(glyph);
    314 //                }
    315 //            }
    316 //            else if (obj instanceof Tspan)
    317 //            {
    318 //                Tspan tspan = (Tspan)obj;
    319 //                tspan.buildGlyphs(builder);
    320 //            }
    321 //        }
    322 //
    323 //        builder.formatGlyphs();
    324        
    325        
    326 
    327                
    328                
    329        
    330        
    331        
    332286        AffineTransform xform = new AffineTransform();
    333287
     
    344298                }
    345299
    346                 strokeWidthScalar = 1f / fontScale;
    347 
    348300                for (int i = 0; i < text.length(); i++)
    349301                {
    350302                    xform.setToIdentity();
    351303                    xform.setToTranslation(cursorX, cursorY);
    352                     xform.scale(fontScale, fontScale);
    353 //                    g.transform(xform);
    354304
    355305                    String unicode = text.substring(i, i + 1);
     
    362312                        textPath.append(path, false);
    363313                    }
    364 //                    else glyph.render(g);
    365 
    366                     cursorX += fontScale * glyph.getHorizAdvX();
    367 
    368 //                    g.setTransform(oldXform);
     314
     315                    cursorX += glyph.getHorizAdvX();
    369316                }
    370317
Note: See TracChangeset for help on using the changeset viewer.