PdfPTable元素:未显示日文字符

时间:2015-10-20 07:07:02

标签: java itext xmlworker

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

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

结果只是:

  

日本:

当日语内容在表格之外时,它会在PDF中正确显示。我试图操纵PdfPTable级别的iText Chunk内容,并明确地将基本字体分配给Chunk。但是我会放弃其他格式样式,如粗体,h1等。另外,如果我使用样式,格式问题将会丢失。

我确实有2_wqy-zenhei-0.5.23作为字体包。

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

1 个答案:

答案 0 :(得分:1)

我假设您使用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