卢比符号是不是在Android的显示卢比符号是不是在Android的显示(Rupee symbol

2019-05-12 12:10发布

喜的朋友正在使用itextpdf-5.3.4.jar创建PDF。 对于显示出卢比符号正在使用自定义的字体。我试过ARIAL.TTF,arialbd.ttf这两种字体,但没有运气卢比sybol不showing.For显示我按照这些链接,但它不是为我工作的卢比符号。 如何显示在MVC3 iText的PDF印度卢比符号 。 这是我使用的代码。

BASEFONT卢比= BaseFont.createFont( “资产/ Arial字体.TTF”,BaseFont.IDENTITY_H,BaseFont.EMBEDDED); createHeadings(CB,495,60, “:” + edt_total.getText()的toString(),12,卢比。);

私人无效createHeadings(PdfContentByte CB,浮子的x,浮子Y,字符串的文字,INT大小,BASEFONT FB){

    cb.beginText();
    cb.setFontAndSize(fb, size);
    cb.setTextMatrix(x,y);
    cb.showText(text.trim());
    cb.endText();
} 

请帮我家伙。

Answer 1:

在注释部分,Funkystein写道,您所描述的问题是典型的当

  1. 您正在使用的不具有字形字体。 要么
  2. 你不使用正确的编码。

我写了说明了这一个例子: RupeeSymbol

public static final String DEST = "results/fonts/rupee.pdf";
public static final String FONT1 = "resources/fonts/PlayfairDisplay-Regular.ttf";
public static final String FONT2 = "resources/fonts/PT_Sans-Web-Regular.ttf";
public static final String FONT3 = "resources/fonts/FreeSans.ttf";
public static final String RUPEE = "The Rupee character \u20B9 and the Rupee symbol \u20A8";

public void createPdf(String dest) throws IOException, DocumentException {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(DEST));
    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();
}

RUPEE常数是一个String ,其中包含卢比字符以及卢比符号: "The Rupee character ₹ and the Rupee symbol ₨" 。 字符被存储为Unicode值,因为如果我们存储的人物,否则,他们可能无法正确渲染。 例如:如果你从一个数据库中检索WinAnsi的价值观,你最终会与不正确的字符。

我测试三种不同的字体(PlayfairDisplay-Regular.ttf,PT_Sans的Web-Regular.ttf和FreeSans.ttf),我使用IDENTITY_H作为编码三次。 我也用WINANSI第四次以表明它出错,如果你做的。

结果是一个文件名为rupee.pdf :

正如你所看到的,第一两种字体知道如何画人物卢比。 第三个没有。 前两种字体不知道如何绘制卢比符号。 第三个呢。 但是,如果你使用了错误的编码,没有字体得出正确的字符或符号。

简而言之:你需要找到一个知道如何吸引你所需要的字符或符号,那么你必须确保你使用的是正确的编码(用于字体String以及该Font )。

您可以下载完整的示例代码在这里 。



文章来源: Rupee symbol is not showing in android