Java ,wkhtmltopdf, HTML 到 PDF 并非所有字体都能正常工作

Java ,wkhtmltopdf, HTML to PDF not all fonts works correctly

我正在使用 wkhtmltopdf 从 HTML(字符串而非文件)生成 PDF。 在开始创建 PDF 之前,我将所有字体添加到 HTML 文件

htmlTemplate = htmlTemplate.replaceAll("\$\{fontsPlaceholder}", ResourcesCache.getInstance().getFontsCSSCache());

所有字体都在html里面,看起来像

@font-face {
        font-family: 'Abril_Fatface-Regular';
        src: url(data:font/ttf;base64,AAEAA....

但是当我尝试使用字体属性、粗体、斜体等,然后制作 pdf 时,这无法正常工作,并且字段在 pdf 中使用 'regular' 字体,但在 html设置粗体..

那么,为什么不是所有字体在 wkhtmltopdf 中都能正常工作,有人解决了这样的问题吗?

我一直在解决这个问题。问题出在字体上,而不是 wkhtmltopdf 库。 如果您想正确使用 font-property,您需要确保在您的字体中设置了 'Preferred Family'。要检查或设置它,您可以使用 FontForge 应用程序。 打开FontForge,然后导入你的字体,然后点击'Element/FontInfo/TTF Names',然后更改'Preferred Family'(每个字体需要唯一)。