How to display indian rupee symbol?

Why does my code not work?

31st May 2016
admin-marketing

I want to display the special character "India Rupee Symbol" in iText,

My Code:

 

Font fontRupee = FontFactory.GetFont("Arial", "₹", true, 12);
Chunk chunkRupee = new Chunk(" ₹ 5410", font3);

 

Posted on StackOverflow on Jul 4, 2013 by Avanish Singh

It's never a good idea to store a Unicode character such as ₹ in your source code. Plenty of things can go wrong if you do so:

  • Somebody can save the file using an encoding different from Unicode, for instance, the double-byte rupee character can be interpreted as two separate bytes representing two different characters.
  • Even if your file is stored correctly, maybe your compiler will read it using the wrong encoding, interpreting the double-byte character as two separate characters.

From your code sample, it's evident that you're not familiar with the concept known as encoding. When creating a Font object, you pass the rupee symbol as encoding.

The correct way to achieve what you want in iText 7 looks like this:

PdfFont font = PdfFontFactory.createFont(FONT, PdfEncodings.IDENTITY_H, true);
doc.add(new Paragraph("\u20B9 is a Rupee character").setFont(font));

Note that there are two possible Unicode values for the Rupee symbol (source Wikipedia): \u20B9 is the value you're looking for; the alternative value is \u20A8 (which looks like this: ₨).

Note that it's very important to check if the font you're using knows how to draw the symbol. If it doesn't, nothing will show up on your page.

Please take a look at the RupeeSymbol example to learn more.

Click this link if you want to see how to answer this question in iText 5.



Contact

Still have questions? 

We're happy to answer your questions. Reach out to us and we'll get back to you shortly.

Contact us
Stay updated

Join 11,000+ subscribers and become an iText PDF expert by staying up to date with our new products, updates, tips, technical solutions and happenings.

Subscribe Now