SFNTLY:如何将上传的任何字体转换为“WOFF”格式?

时间:2014-01-24 08:24:34

标签: java fonts type-conversion

我在这个图书馆找不到任何文件(https://code.google.com/p/sfntly/)。我现在已经刺了2天了。我正在尝试将任何上传的字体转换为“WOFF”格式。

有人可以解释一下吗?

2 个答案:

答案 0 :(得分:1)

我按照以下步骤成功将我的TTF转换为WOFF文件:

创建了一个新的java项目,并将我在前面的步骤中创建的以下四个jar导入到我的项目中:

  • sfntly.jar
  • woffconverter.jar
  • 番石榴16.0.1.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) {
    }