Ver código fonte

FOP-2792: Add boundingbox for OTF

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1831245 13f79535-47bb-0310-9956-ffa450edef68
pull/40/head
Simon Steiner 6 anos atrás
pai
commit
6fbcf5c577

+ 12
- 0
fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFFile.java Ver arquivo

@@ -20,6 +20,7 @@
package org.apache.fop.fonts.truetype;

import java.io.IOException;
import java.util.List;

import org.apache.fontbox.cff.CFFDataInput;
import org.apache.fontbox.cff.CFFFont;
@@ -50,6 +51,17 @@ public class OTFFile extends OpenFont {

@Override
protected void updateBBoxAndOffset() throws IOException {
Object bbox = fileFont.getTopDict().get("FontBBox");
if (bbox != null) {
List bboxList = (List) bbox;
int[] bboxInt = new int[4];
for (int i = 0; i < bboxInt.length; i++) {
bboxInt[i] = (Integer) bboxList.get(i);
}
for (OFMtxEntry o : mtxTab) {
o.setBoundingBox(bboxInt);
}
}
}

private static class Mapping {

+ 6
- 0
fop-core/src/test/java/org/apache/fop/fonts/truetype/OTFFileTestCase.java Ver arquivo

@@ -19,6 +19,7 @@

package org.apache.fop.fonts.truetype;

import java.awt.Rectangle;
import java.io.FileInputStream;
import java.io.InputStream;

@@ -82,4 +83,9 @@ public class OTFFileTestCase {
assertEquals(carolynaWidths[i], alexBrush.getWidths()[gids[i]]);
}
}

@Test
public void testBoundingBoxes() {
assertEquals(sourceSansProBold.getBoundingBoxes()[0], new Rectangle(-231, -384, 1454, 1358));
}
}

Carregando…
Cancelar
Salvar