飞碟:在 PDF 中呈现为方框的汉字

Flying Saucer: Chinese character rendered as a box in PDF

当我使用Flying Saucer 将html 页面转换成汉字时。汉字显示为如下方框

我已经尝试了两种方法:使用 css 作为答案 Flying Saucer font for unicode characters and using the code as in this answer Flying Saucer iTextPDF Chinese Fonts,但它们没有用。有人有其他建议吗?

我已经在元标记中声明了 UTF-8 字符集,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html language="en">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">   </meta>
<link rel="stylesheet" type="text/css" href="file:///opt/template/employer.css"/>
<link rel="stylesheet" type="text/css" href="file:///opt/template/style.css"/>
<link rel="stylesheet" type="text/css" media="print" href="file:///opt/template/print.css"/>
</head>

汉字相关部分如下:

<tbody><tr>
                                        <td align="left" width="150" valign="top">
                                            Name
                                        </td>
                                        <td align="left" width="305" valign="top">
                                            <label id="candidateName">VU DINH THE / 你好</label>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td align="left" width="150" valign="top">
                                            Gender/Status
                                        </td>
                                        <td align="left" width="305" valign="top">
                                            <label id="gender">Female</label> / <label id="status">Single
</label>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td align="left" width="150" valign="top">
                                            Date of Birth/Age
                                        </td>
                                        <td align="left" width="305" valign="top">
                                            <label id="dob">12 Sep 1985</label> / <label id="age">30</label>
                                        </td>
                                    </tr>

以及print.css的内容:

@font-face {
    font-family: Arial Unicode MS;
    src: url('file:///opt/template/arialuni.ttf');
    -fs-pdf-font-embed: embed;
    -fs-pdf-font-encoding: Identity-H;
}

将一个字符替换为一个空的正方形或矩形通常意味着该字符未在字体文件中定义,系统找不到绘制它的信息。

在这种情况下,HTML和CSS代码是正确的,但arialuni.ttf文件不完整。

作为参考,arialuni.ttf 应该是 ~23 MB。