PDF

时间:2017-02-08 15:05:06

标签: css pdf utf-8 fonts mpdf

我使用mPDF库生成PDF。

我使用 Open Sans 字体,内容包含拉丁字符,例如ä

如果它是纯粹的ä

,它会正确显示

但问题是我在本文中添加了font-variant: small-caps;。它变成这样:

enter image description here

我测试了ä的大写是否存在问题:

enter image description here

但没有。如果您尝试使用“框”选择并复制单词ä(我的意思是第一张图片)..然后将其粘贴到某处。您将拥有正确的nationalität

所以问题是,那里有什么问题?它在字体上吗?在 PDF 中?在 CSS 中?或者在编码(目前,它是utf-8)?

我该如何解决?

我知道我可以使用类似的东西:

<span class="bigger-font">N</span><span class="smaller-font">ATIONALITÄT</span>

然后我会得到我想要的结果。但我真的想使用font-variant: small-caps;因为这更容易。

1 个答案:

答案 0 :(得分:1)

我修好了。

我不知道具体的技术解释,

但经过大量的试验和错误,解决问题......我找到了问题的解决方案。我刚刚在标记处添加了一个大写拉丁字符列表,因此PDF已经呈现了大写拉丁字符,以便在font-variant: small-caps;中使用

<span style="visibility: hidden; font-family: open_sans;">
    ÀÁÂÃÄÅÈÉÊËÌÍÎÏÐÒÓÔÕÖØÙÚÛÜÝÑÇÆ <!-- pre render it. small-caps may use them later. -->
</span>
<font>
    Nationalität <!-- It will now rendered correctly. -->
</font>

因为看起来font-variant: small-caps;应用于生成PDF的最后一个进程,并且它无法从Font系列中获得大写拉丁字符。

我无法解释并证明问题的原因。我不知道技术原因。如果你们中的一些人对它有所了解。请告诉我们。