我在这个图书馆找不到任何文件(https://code.google.com/p/sfntly/)。我现在已经刺了2天了。我正在尝试将任何上传的字体转换为“WOFF”格式。
有人可以解释一下吗?
答案 0 :(得分:1)
我按照以下步骤成功将我的TTF转换为WOFF文件:
创建了一个新的java项目,并将我在前面的步骤中创建的以下四个jar导入到我的项目中:
我略微调整了MariusŽilėnas代码,其中包含一些语法错误。
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import com.google.common.io.Files;
import com.google.typography.font.sfntly.Font;
import com.google.typography.font.sfntly.FontFactory;
import com.google.typography.font.sfntly.data.WritableFontData;
import com.google.typography.font.tools.conversion.woff.WoffWriter;
public class Main {
public static void main(String[] args) {
WoffWriter ww = new WoffWriter();
FontFactory fontFactory = FontFactory.getInstance();
byte[] bytes;
try {
bytes = Files.toByteArray(new File("C:\\FontName.TTF"));
Font font = fontFactory.loadFonts(bytes)[0];
WritableFontData wfd = ww.convert(font);
FileOutputStream fs = new FileOutputStream("out.fnt");
wfd.copyTo(fs);
fs.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
答案 1 :(得分:0)
在阅读了SFNTLY的源代码之后,我并不是真正的专家,所以请尽量使用我的答案:)。
我会将WoffWriter#convert()转换为可写字体数据,然后将wfd复制到outputstream。
WoffWriter ww = new WoffWriter();
WriteableFontData wfd = ww.convert(yourFont);
try {
FileOutPutStream fs = new FileOutputStream("out.fnt");
wfd.copyTo(fs, wfd);
fs.close();
} catch (IOException e) {
}