卢比符号未在Android中显示

深谷

朋友正在使用itextpdf-5.3.4.jar创建pdf。为了显示卢比符号,我使用了自定义字体。我尝试了arial.ttf,arialbd.ttf这两种字体,但没有显示运气卢比符号。为了显示卢比符号,我关注了这些链接,但它对我不起作用。如何在MVC3的iText PDF中显示印度卢比符号这是我使用的代码。

BaseFont rupee =BaseFont.createFont( "assets/arial .ttf", BaseFont.IDENTITY_H,BaseFont.EMBEDDED);
createHeadings(cb,495,60,": " +edt_total.getText().toString(),12,rupee);

  private void createHeadings(PdfContentByte cb, float x, float y, String text, int   size,BaseFont fb){

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

请帮助我。

布鲁诺·洛瓦吉

在评论部分,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的文件

卢比角色vs卢比符号

如您所见,前两种字体知道如何绘制卢比字符。第三个没有。前两种字体不知道如何绘制卢比符号。第三个是。但是,如果使用错误的编码,则所有字体都不会绘制正确的字符或符号。

简而言之:您需要找到一种字体,该字体知道如何绘制所需的字符或符号,然后必须确保使用正确的编码(对于StringFont)。

您可以在此处下载完整的示例代码

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

GNU nano 2.2.6不会显示₹(卢比符号)

来自分类Dev

显示空矩形框,而不是HTML中的卢比符号

来自分类Dev

显示空矩形框,而不是HTML中的卢比符号

来自分类Dev

显示卢比符号时,它会转换为其他符号

来自分类Dev

SVG符号未在Firefox中完全显示

来自分类Dev

如何在MySQL Server 5.1中输入印度卢比符号?

来自分类Dev

卢比符号在Internet Explorer中不起作用

来自分类Dev

菜单中的图标未在android中显示

来自分类Dev

如何输入印度卢比符号?

来自分类Dev

如何输入印度卢比符号?

来自分类Dev

SoftKeyboard未在Xamarin Android中显示

来自分类Dev

列未在Android的GridLayout中显示

来自分类Dev

Android设备未在Eclipse中显示

来自分类Dev

数据未在gridView Android中显示

来自分类Dev

动态添加的行未在android中显示

来自分类Dev

外部图片未在Android中显示

来自分类Dev

吐司未在Android Studio中显示

来自分类Dev

列未在Android的GridLayout中显示

来自分类Dev

数据未在gridView Android中显示

来自分类Dev

动态添加的行未在android中显示

来自分类Dev

RestTemplate Spring未在Android中显示

来自分类Dev

符号未在仿真器中显示,但在布局中显示

来自分类Dev

符号未在仿真器中显示,但在布局中显示

来自分类Dev

如何在oracle 11g中插入印度卢比符号?

来自分类Dev

操作栏上的后退按钮未在Android中显示

来自分类Dev

外部图像未在Android应用中显示-流星-Cordova

来自分类Dev

Apache Cordova启动画面未在Android中显示

来自分类Dev

Android Studio Gradle风格未在Build Variants中显示

来自分类Dev

Android:消息创建时间未在时间戳中显示