package com.google.typography.font.tools.conversion.eot; import com.google.typography.font.sfntly.Font; import com.google.typography.font.sfntly.Tag; import com.google.typography.font.sfntly.data.WritableFontData; import com.google.typography.font.sfntly.table.core.FontHeaderTable; import com.google.typography.font.sfntly.table.core.HorizontalDeviceMetricsTable; import com.google.typography.font.sfntly.table.core.HorizontalMetricsTable; import com.google.typography.font.sfntly.table.core.MaximumProfileTable; public class HdmxEncoder { private static int HEADER_SIZE = 8; private static int RECORD_SIZE = 2; public WritableFontData encode(Font paramFont) { HorizontalDeviceMetricsTable localHorizontalDeviceMetricsTable = (HorizontalDeviceMetricsTable)paramFont.getTable(Tag.hdmx); HorizontalMetricsTable localHorizontalMetricsTable = (HorizontalMetricsTable)paramFont.getTable(Tag.hmtx); MaximumProfileTable localMaximumProfileTable = (MaximumProfileTable)paramFont.getTable(Tag.maxp); FontHeaderTable localFontHeaderTable = (FontHeaderTable)paramFont.getTable(Tag.head); int i = localFontHeaderTable.unitsPerEm(); int j = localHorizontalDeviceMetricsTable.numRecords(); int k = localMaximumProfileTable.numGlyphs(); MagnitudeDependentWriter localMagnitudeDependentWriter = new MagnitudeDependentWriter(); for (int m = 0; m < j; m++) { n = localHorizontalDeviceMetricsTable.pixelSize(m); for (int i1 = 0; i1 < k; i1++) { i2 = ((64 * n * localHorizontalMetricsTable.advanceWidth(i1) + i / 2) / i + 32) / 64; int i3 = localHorizontalDeviceMetricsTable.width(m, i1) - i2; localMagnitudeDependentWriter.writeValue(i3); } } localMagnitudeDependentWriter.flush(); byte[] arrayOfByte = localMagnitudeDependentWriter.toByteArray(); int n = arrayOfByte.length + HEADER_SIZE + RECORD_SIZE * j; WritableFontData localWritableFontData = WritableFontData.createWritableFontData(n); localWritableFontData.writeUShort(0, 0); localWritableFontData.writeUShort(2, j); localWritableFontData.writeLong(4, localHorizontalDeviceMetricsTable.recordSize()); for (int i2 = 0; i2 < j; i2++) { localWritableFontData.writeByte(HEADER_SIZE + RECORD_SIZE * i2, (byte)localHorizontalDeviceMetricsTable.pixelSize(i2)); localWritableFontData.writeByte(HEADER_SIZE + RECORD_SIZE * i2 + 1, (byte)localHorizontalDeviceMetricsTable.maxWidth(i2)); } localWritableFontData.writeBytes(HEADER_SIZE + RECORD_SIZE * j, arrayOfByte); return localWritableFontData; } } /* Location: C:\Users\Ethan\Desktop\FontZip\FontTool\sfnttool.jar!\com\google\typography\font\tools\conversion\eot\HdmxEncoder.class * Java compiler version: 6 (50.0) * JD-Core Version: 0.7.1 */