You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2003/01/21 11:43:57 UTC
cvs commit: xml-fop/src/org/apache/fop/fonts TTFFile.java
jeremias 2003/01/21 02:43:56
Modified: src/org/apache/fop/fonts Tag: fop-0_20_2-maintain
TTFFile.java
Log:
Fix for bug 16257 (bad ascender/descender in XML font metrics)
Ascender and Descender are now read from the OS/2 table if the values in the hhea table are zero.
Revision Changes Path
No revision
No revision
1.6.2.7 +15 -4 xml-fop/src/org/apache/fop/fonts/Attic/TTFFile.java
Index: TTFFile.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fonts/Attic/TTFFile.java,v
retrieving revision 1.6.2.6
retrieving revision 1.6.2.7
diff -u -r1.6.2.6 -r1.6.2.7
--- TTFFile.java 9 Jan 2003 13:47:25 -0000 1.6.2.6
+++ TTFFile.java 21 Jan 2003 10:43:56 -0000 1.6.2.7
@@ -68,6 +68,8 @@
int ansiWidth[];
HashMap ansiIndex;
+ private TTFDirTabEntry currentDirTab;
+
/**
* Position inputstream to position indicated
* in the dirtab offset + offset
@@ -77,10 +79,10 @@
TTFDirTabEntry dt = (TTFDirTabEntry)dirTabs.get(name);
if (dt == null) {
System.out.println("Dirtab " + name + " not found.");
- return;
+ } else {
+ in.seek_set(dt.offset + offset);
+ this.currentDirTab = dt;
}
-
- in.seek_set(dt.offset + offset);
}
/**
@@ -638,6 +640,15 @@
in.skip(2 + 2 + 3 * 2 + 8 * 2);
nhmtx = in.readTTFUShort();
// System.out.println("Number of horizontal metrics: " + nhmtx);
+
+ //Check OS/2 table for ascender/descender if necessary
+ if (ascender == 0 || descender == 0) {
+ seek_tab(in, "OS/2", 68);
+ if (this.currentDirTab.length >= 78) {
+ ascender = in.readTTFShort(); //sTypoAscender
+ descender = in.readTTFShort(); //sTypoDescender
+ }
+ }
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org