PDFJet Stream字体

时间:2019-01-03 05:15:49

标签: java android pdf fonts pdf-generation

你们大多数人可能都知道PDFJet库。这是一个呈现pdf文件的简洁库。最近,我在加载otf / ttf字体时遇到了问题。我在Android上使用此库,下面的代码在流字体中效果很好。

AssetFileDescriptor fileDescriptor = context.getAssets()
                .openFd("fonts/NotoNaskhArabic-Bold.ttf.stream");
        fis = fileDescriptor.createInputStream();
        footerFont = new Font(pdf, fis, Font.STREAM);

但是在加载ttf / otf时,它会在出现异常后失败

2019-01-03 10:38:24.175 22073-22073/ W/System.err: java.util.zip.DataFormatException: incorrect header check
2019-01-03 10:38:24.181 22073-22073/ W/System.err:     at java.util.zip.Inflater.inflateBytes(Native Method)
2019-01-03 10:38:24.181 22073-22073/ W/System.err:     at java.util.zip.Inflater.inflate(Inflater.java:262)
2019-01-03 10:38:24.181 22073-22073/ W/System.err:     at java.util.zip.Inflater.inflate(Inflater.java:283)
2019-01-03 10:38:24.182 22073-22073/ W/System.err:     at com.pdfjet.Decompressor.<init>(Decompressor.java:47)
2019-01-03 10:38:24.182 22073-22073/ W/System.err:     at com.pdfjet.FastFont.register(FastFont.java:58)
2019-01-03 10:38:24.182 22073-22073/ W/System.err:     at com.pdfjet.Font.<init>(Font.java:289)

是的,我在gradle中使用了以下内容来确保ttf文件不会被压缩,因为pdfjet会出现压缩文件问题。

  aaptOptions {            
      noCompress "ttf"     
  }                        

问题

  1. 如何将常规的ttf / otf字体文件转换为流文件?
  2. 是加载ttf和otf字体的正确方法吗?

我已经在pdfjet主页上看到了这些示例,这些示例已经过时,并且大多数Fonts构造函数参数都被忽略了。

0 个答案:

没有答案