Author: phancock
Date: Wed Jan  9 09:51:11 2013
New Revision: 1430752

URL: http://svn.apache.org/viewvc?rev=1430752&view=rev
Log:
JIRA#FOP-2180:  TTFReader outputs bounding box information for glyphs.

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/apps/TTFReader.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/truetype/TTFFile.java
    xmlgraphics/fop/trunk/status.xml

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/apps/TTFReader.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/apps/TTFReader.java?rev=1430752&r1=1430751&r2=1430752&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/apps/TTFReader.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/apps/TTFReader.java Wed 
Jan  9 09:51:11 2013
@@ -408,6 +408,11 @@ public class TTFReader extends AbstractF
         for (int i = 0; i < wx.length; i++) {
             Element wxel = doc.createElement("wx");
             wxel.setAttribute("w", String.valueOf(wx[i]));
+            int[] bbox = ttf.getBBox(i);
+            wxel.setAttribute("xMin", String.valueOf(bbox[0]));
+            wxel.setAttribute("yMin", String.valueOf(bbox[1]));
+            wxel.setAttribute("xMax", String.valueOf(bbox[2]));
+            wxel.setAttribute("yMax", String.valueOf(bbox[3]));
             el.appendChild(wxel);
         }
     }

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/truetype/TTFFile.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/truetype/TTFFile.java?rev=1430752&r1=1430751&r2=1430752&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/truetype/TTFFile.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/truetype/TTFFile.java 
Wed Jan  9 09:51:11 2013
@@ -981,6 +981,21 @@ public class TTFFile {
     }
 
     /**
+     * Returns an array (xMin, yMin, xMax, yMax) for a glyph.
+     *
+     * @param glyphIndex the index of the glyph
+     * @return int[] Array defining bounding box.
+     */
+    public int[] getBBox(int glyphIndex) {
+        int[] bboxInTTFUnits = mtxTab[glyphIndex].getBoundingBox();
+        int[] bbox = new int[4];
+        for (int i = 0; i < 4; i++) {
+            bbox[i] = (int) convertTTFUnit2PDFUnit(bboxInTTFUnits[i]);
+        }
+        return bbox;
+    }
+
+    /**
      * Returns the width of a given character.
      * @param idx Index of the character
      * @return int Standard width

Modified: xmlgraphics/fop/trunk/status.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/status.xml?rev=1430752&r1=1430751&r2=1430752&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/status.xml (original)
+++ xmlgraphics/fop/trunk/status.xml Wed Jan  9 09:51:11 2013
@@ -59,6 +59,9 @@
       documents. Example: the fix of marks layering will be such a case when 
it's done.
     -->
     <release version="FOP Trunk" date="TBD">
+      <action context="Fonts" dev="PH" type="add" fixes-bug="FOP-1069" 
due-to="Alexey Neyman">
+       TTFReader: Output bounding box information for glyphs. 
+      </action>
       <action context="Code" dev="PH" type="fix" fixes-bug="FOP-1069" 
due-to="Robert Meyer">
         Warn instead or error on invalid property values.
       </action>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to