你们大多数人可能都知道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"
}
问题
我已经在pdfjet主页上看到了这些示例,这些示例已经过时,并且大多数Fonts构造函数参数都被忽略了。