iText PDF字体更改不会发生。卢比符号未显示

时间:2017-01-02 10:50:20

标签: java android pdf fonts itext

我正在使用iText PDF在android中创建PDF文件。我需要写“'₹' PDF中的符号。 我有以下代码: -

public static final String FONT1 = "/main/assets//PlayfairDisplay-Regular.ttf";
public static final String FONT2 = "/main/assets/PT_Sans-Web-Regular.ttf";
public static final String FONT3 = "/main/assets/FreeSans.ttf";
public static final String RUPEE = "The Rupee character \u20B9 and the Rupee symbol \u20A8";

这些被声明为类变量。 我有一个函数createPDF(),它写入PDF文档。 我在函数中有以下代码行: -

    File pdfFile = new File(filePath);
    OutputStream output = new FileOutputStream(pdfFile);
    Document document = new Document(PageSize.A4);
    PdfWriter.getInstance(document, output);
    document.open();
    Font f1 = FontFactory.getFont(FONT1, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 12);
    Font f2 = FontFactory.getFont(FONT2, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 12);
    Font f3 = FontFactory.getFont(FONT3, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 12);
    Font f4 = FontFactory.getFont(FONT3, BaseFont.WINANSI, BaseFont.EMBEDDED, 12);
    document.add(new Paragraph(RUPEE, f1));
    document.add(new Paragraph(RUPEE, f2));
    document.add(new Paragraph(RUPEE, f3));
    document.add(new Paragraph(RUPEE, f4));
    document.close();

然而,字体既没有反映在PDF中,也没有反映在卢比符号中。 我的PDF如下所示: -

Resulting PDF

我已按照以下链接执行了以下步骤: - iText Developers TutorialStackOverflow Question on where to place Assets folder

我知道关于SO的另一个类似问题: - Rupee symbol is not showing in android 但这对我没有帮助。

我在这里做错了吗?我的字体放在错误的位置吗?

1 个答案:

答案 0 :(得分:2)

尝试, 删除所有/ main /只保留资产/ PlayfairDisplay-Regular.ttf等...并在第一个字体中//删除那个并尝试