开发者

Special characters in iText

开发者 https://www.devze.com 2023-01-16 17:54 出处:网络
I need help in using these symbols⎕, ∨, ๐, Ʌ, and so on. But whe开发者_开发知识库n I create a PDF with iText these symbols do not appear.

I need help in using these symbols ⎕, ∨, ๐, Ʌ, and so on. But whe开发者_开发知识库n I create a PDF with iText these symbols do not appear.

What can I do so that these symbols appear?


You have to use a font and encoding that contains those characters. Your best bet is to use IDENTITY_H for your encoding, as this grants you access to every character within a given font... but you still have to use the right font.

There are several font-manipulation examples within "iText in Action's" chapter on fonts: http://www.itextpdf.com/book/chapter.php?id=11

The examples are down the right side. Buying the book would probably help too.


I had the same problem too and I figured out using IDENTITY_H for encoding is working fine. For example:

java.awt.Font f =...;
Font font = FontFactory.getFont(f.getName(),BaseFont.IDENTITY_H)

I don't understand why with BaseFont.WINANSI it doesn't work. Winansi is the standard Windows Cp1252 character set, that one used by my JVM. So, if the char is correctly displayed in Java, why it is not the case for PDF?


You can escape them according to the unicode escape sequence defined in the java language specification. See http://java.sun.com/docs/books/jls/first_edition/html/3.doc.html

If you are using IntelliJ IDEA for your code you can download the StringManipulation plugin, that does the escapes for you. In the settings of IDEA you can also set the "Transparent native-to-ascii conversion" checkbox under File encodings, and this should help do the trick.


square in pdf file by iText:

BaseFont bf = BaseFont.createFont("c:/windows/fonts/arialbd.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
question.add(new Phrase("\u25A1", new Font(bf, 26)));

You can see a pdf file exemple here

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号