java - PdfPTable元素: Japanese characters are not being displayed

标签 java itext xmlworker

我正在尝试在 HTML 表对象中显示日语或阿拉伯字符并将其转换为 PDF 文档。 例如

<table>
   <tr><td>Japanese: ンミタィヴ研理</td></tr>
</table>

结果就是:

Japanese:

当日语内容位于表格之外时,它会在 PDF 中正确显示。我尝试在 Chunk 级别操作 iText PdfPTable 内容,并将基本字体显式分配给 Chunk。但随后我会失去其他格式样式,例如粗体、h1 等。此外,如果我使用样式,格式问题也会丢失。

除其他外,我确实有 2_wqy-zenhei-0.5.23 作为字体包。

那么有没有办法告诉 iText 实现显示字符,同时保留之前所做的所有格式?

最佳答案

我假设您正在使用 XML Worker 将 HTML 转换为 PDF。如果您仍在使用旧的 HTML Worker(iText 5 之前的版本),则应该升级。

我认为这是一个字体问题。您已经对此进行了部分测试,方法是验证您的日语内容在表格之外时是否显示,并直接在 PdfPTable 内容上设置字体。但表格内和表格外的内容之间可能仍然存在一些字体配置差异。

我已经使用 iText 5.5.7 和 XML Worker 5.5.7(当前发行版本)进行了测试。我没有提到的可用字体包。所以我用 Arial Unicode 进行了测试。

我已经调整了您的 HTML 示例,如下所示:

<table style="font-family: 'Arial Unicode MS'; border:1px solid black">
    <tr><td>Table</td></tr>
    <tr><td>Japanese: ンミタィヴ研理</td></tr>
</table>
<p style="font-family: 'Arial Unicode MS'">Japanese in paragraph: ンミタィヴ研理</p>

生成的 PDF 如下所示: Japenese text in PDF

关于java - PdfPTable元素: Japanese characters are not being displayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33230137/

相关文章:

c# - 如何使用 iTextSharp 将 HTML 转换为 PDF

java - 如何使用-Xlint :unchecked in a Maven project?进行编译

java - 最近未使用(NUR)页面替换算法

java - 在java中获取日期

image - 将 com.lowagie.text.Image 转换为 BufferedImage

java - itext:更改 XMLWorker 解析元素的字体大小

java - 如何从数据文件或文本文件中删除一行?

java - 在 java eclipse 中使用 iText 在 Pdf 中打印字符串时如何使特定的子字符串加粗?

java - 为什么我没有得到最新的输出?

android - 如何在 Android 的 XMLWorker 中使用 iText 中的 CJK 字体?