Большинству из вас может быть известна библиотека 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"
}
Вопросы
- Как преобразовать обычные файлы шрифтов ttf / otf в потоковый файл?
- Это правильный способ загрузить шрифт ttf и otf?
Я видел примеры на домашней странице pdfjet, эти примеры устарели и большинство параметров конструктора Fontsигнорируются