Skip to main content
Skip table of contents

How to allow a Unicode subscript symbol in a PDF without using setTextRise()?

Is there a setting to change the encoding/font of the text to UTF-8, so that it allows all the Unicode symbols?


I have been trying to create PDF files using iText. I have found that Superscript (0,4,5,6,7,8,9) and Subscript (0,1,2,3,4,5,6,7,8,9) are not allowed in the default font. Only Superscript 1,2,3 are allowed in the default setting. A String in my PDF contains subscript and superscript characters, is there a way I can display them in PDF?

I searched and found that:

  1. the setTextRise() method is used to change the displacement of the text with respect to the current line, I cannot use it as I don't know which characters are to super/sub scripted.
  2. Is there a setting to change the encoding/font of the text to UTF-8, so that it allows all the Unicode symbols?

Or some other way, because i have to show chemical symbols like H?SO?, O? etc.

Posted on StackOverflow on Jul 16, 2014 by nexus

Please take a look at the SubSuperScript example I wrote in answer to your question. I'm writing H?SO? like this:

PdfFont f = PdfFontFactory.createFont(FONT, PdfEncodings.IDENTITY_H);
Paragraph p = new Paragraph("H\u2082SO\u2074").setFont(f).setFontSize(10);
doc.add(p);

I've found the values of the specific characters on Wikipedia.

As you can see, iText is perfectly capable to show the special characters written in subscript or superscript. The main problem I had when I wrote this example was finding a font that supported the specific glyphs. That's what I explained in my earlier comment. I ended up using a font called "Cardo Regular".

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

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.