飞碟:中文字符呈现为PDF格式的框

Ton*_* Vu 8 pdf-generation flying-saucer

当我使用Flying Saucer转换带有中文字符的html页面时.中文字符显示为如下框

在此输入图像描述

我已经尝试了两种方法:使用css如此答案飞碟字体为unicode字符和使用代码如此答案Flying Saucer iTextPDF中文字体,但他们没有工作.有人有另一个建议吗?

我在meta标签中声明了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>
Run Code Online (Sandbox Code Playgroud)

这是与中文字符相关的部分:

<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>
Run Code Online (Sandbox Code Playgroud)

和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;
}
Run Code Online (Sandbox Code Playgroud)

obo*_*ain 5

用空方块或矩形替换字符通常意味着该字符未在字体文件中定义,并且系统找不到绘制它的信息.

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

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