]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
JIRA#FOP-2180: TTFReader outputs bounding box information for glyphs.
authorPeter Hancock <phancock@apache.org>
Wed, 9 Jan 2013 09:51:11 +0000 (09:51 +0000)
committerPeter Hancock <phancock@apache.org>
Wed, 9 Jan 2013 09:51:11 +0000 (09:51 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1430752 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/fonts/apps/TTFReader.java
src/java/org/apache/fop/fonts/truetype/TTFFile.java
status.xml

index 25b9e3924ec7aece37c10bb8cc0fbc2b913a4e97..9004173502ea8636e1244036042c346fa8d63617 100644 (file)
@@ -408,6 +408,11 @@ public class TTFReader extends AbstractFontReader {
         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);
         }
     }
index 878af11249ce564c301665e7a0e74837f3220dc4..442407d6b572dd93cf2f125dd72c0383a396ca9c 100644 (file)
@@ -980,6 +980,21 @@ public class TTFFile {
         return wx;
     }
 
+    /**
+     * 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
index efbd518b28545bf39ff3b716c7ee1738c4e6eb06..309e48413289f1cae22ef760ade35b806b9dd84e 100644 (file)
@@ -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>