當我嘗試使用iText將越南文文檔導出爲PDF時,我遇到了問題。 我把越南話的.xml文件這樣如何使用iText將越南文文本導出爲PDF
<td fontfamily="Helvetica" fontstyle="0" fontsize="9" align="0" colspan="48" lineoccupied="1">T\u1ED5 ch\u1EE9c tham gia</td>
然後讓Java從XML文件中獲得的短語和使用這種方法將其轉換成Unicode:
public String convertToUnicode(String s) {
int i = 0, len = s.length();
char c;
StringBuffer sb = new StringBuffer(len);
try {
while (i < len) {
c = s.charAt(i++);
if (c == '\\') {
if (i < len) {
c = s.charAt(i++);
if (c == 'u') {
if (Character.digit(s.charAt(i), 16) != -1
&& Character.digit(s.charAt(i + 1), 16) != -1
&& Character.digit(s.charAt(i + 2), 16) != -1
&& Character.digit(s.charAt(i + 3), 16) != -1) {
if (s.substring(i).length() >= 4) {
c = (char) Integer.parseInt(s.substring(i, i + 4), 16);
i += 4;
} else {
sb.append('\\');
}
} else {
sb.append('\\');
}
} // add other cases here as desired...
}
} // fall through: \ escapes itself, quotes any character but u
sb.append(c);
}
} catch (Exception e) {
System.out.println("Error Generate PDF :: " + e.getStackTrace().toString());
return s;
}
return sb.toString();
}
之後,出口字符串PDF - 編碼UTF-8。 但是程序未能顯示越南字符'\ u1ED5'和'\ u1EE9' 輸出成爲「T chc tham gia」 請你告訴我如何解決這個問題? 謝謝:)
嗨布魯諾,謝謝你的回答。然而,我用BaseFont來解決這個問題** BaseFont bf = BaseFont.createFont(pdfArialFont,BaseFont.IDENTITY_H,BaseFont.EMBEDDED); **。在哪裏,pdfArialFont是一個ttf文件,我放在工作目錄中。 –
該解決方案不僅可以顯示越南語,還可以顯示緬語等等。感謝您開發這個夢幻般的iText:D –