在控制台中打印西班牙语文本时使用Itext 7

时间:2018-03-22 07:01:41

标签: java unicode itext7

我有以下文字,我从数据库

收到

"----- Some Text ------ Bônus -------- Some Text ------- "

我将它存储在String变量中并在控制台中打印变量并将其写入PDF中,但问题是我没有在控制台和PDF中以正确的格式获取文本,而是得到了Bônus为'BÃ'nus',我提到了这个例子 http://itext.2136553.n4.nabble.com/Problem-with-spanish-character-td2163635.html

并将gradle文件中编译器的编码更改为

compileJava.options.encoding = 'UTF-8'

但问题仍未得到解决

我推出的示例文本只是一个示例文本,还有许多其他单词会被更改,或者显示一个空框。

我是否需要从IText的角度来看待它?还是编译器?

虽然改变编译器的Unicode没有帮助

2 个答案:

答案 0 :(得分:1)

检查您是否有unicode字体。它可能会导致您的问题。有一个设置字体的代码

BaseFont basefont = BaseFont.createFont("font_name.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

然后就这样使用它:

Paragraph p = new Paragraph("text in unicode", new Font(basefont, 22));

答案 1 :(得分:0)

经过一番搜索后,我终于能够以UTF 8形式获得它了

byte[] ptext = originalString.getBytes(ISO_8859_1);
String value = new String(ptext, UTF_8);

请找到我提到的链接,

Encode String to UTF-8