如何基于InputStream

时间:2015-07-29 17:13:13

标签: java fonts itext inputstream

我有一个字体文件" arial.ttf"在Web应用程序中,我只能获取其内容为InputStream

InputStream inputFont = getResourceAsStream("/resources/arial.ttf");

如何根据InputStream制作iText BaseFontcreateFont方法不接受它。

BaseFont bf = BaseFont.createFont(inputFont, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
  

createFont(InputStream,String,boolean)无法调用createFont(java.lang.String,java.lang.String,boolean)    在BaseFont。

1 个答案:

答案 0 :(得分:3)

尝试以下内容:

byte[] bytes = IOUtils.toByteArray(Thread.currentThread().getContextClassLoader()
        .getResourceAsStream("/resources/arial.ttf"));
BaseFont.createFont("arial.ttf", BaseFont.IDENTITY_Harial.ttf, BaseFont.EMBEDDED, true, bytes, null);

您必须在字体名称中指定 .ttf ,以告诉它应将其解释为ttf格式的方法。