没有U + 000A字形的NotoSerifDevanagari-Bold字体

时间:2020-01-06 10:30:53

标签: java android pdfbox

我正在尝试使用pdfbox创建pdf。我将EditText数据以html格式存储在Sqlite DB中。

现在我正在从sqliteDB检索数据并创建pdf。这些数据既有马拉地语,也有英语。

我正在使用 NotoSerifDevanagari-Bold 字体,并将其添加到资产文件夹中。从那里我正在将这种字体转换为代码。但是我遇到了错误。请在下面找到我的代码和错误。

AssetManager assetManager;
PDFBoxResourceLoader.init(getApplicationContext());
File FilePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
assetManager = getAssets();

PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);

PDFont font = PDType0Font.load(document, assetManager.open("notoserifdevanagaribold.ttf"));
PDPageContentStream contentStream;
// Define a content stream for adding to the PDF
contentStream = new PDPageContentStream(document, page);

Cursor data = mDatabaseHelper.getDataByDeckname(deckname);
StringBuilder builder=new StringBuilder();
while (data.moveToNext()) {
    String front_page_desc = data.getString(3);
    String back_page_desc =  data.getString(4);

    contentStream.beginText();
    contentStream.setNonStrokingColor(15, 38, 192);
    contentStream.setFont(font, 12);
    contentStream.newLineAtOffset(100, 700);
    contentStream.showText(Html.fromHtml(front_page_desc).toString());
    contentStream.endText();

    contentStream.beginText();
    contentStream.setNonStrokingColor(15, 38, 192);
    contentStream.setFont(font, 12);
    contentStream.newLineAtOffset(100, 700);
    contentStream.showText(Html.fromHtml(back_page_desc).toString());
    contentStream.endText();
}

contentStream.close();

String path = FilePath.getAbsolutePath() + "/temp.pdf";
document.save(path);
document.close();

错误

W/System.err: java.lang.IllegalArgumentException: No glyph for U+000A in font NotoSerifDevanagari-Bold

我为上述错误尝试了很多示例,但无法解决该问题。我在 contentStream.showText(Html.fromHtml(front_page_desc).toString()); 行上遇到此错误。有人可以在上面帮我吗?

0 个答案:

没有答案