我在使用飞碟时遇到了问题,它无法为主字体中不存在的字形/字符使用辅助字体。
我为此使用的Java代码大致如下:
String result = getPrintHtmlContent(urlString);
result = CharacterConverter.replaceInvalidCharacters(result);
ITextRenderer renderer = new ITextRenderer();
renderer.getFontResolver();
renderer.getFontResolver().addFont(FONTS_DIR_PATH + "ARIALUNI.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
renderer.getFontResolver().addFont(FONTS_DIR_PATH + "droidsans/DroidSans.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
renderer.getFontResolver().addFont(FONTS_DIR_PATH + "droidsans/DroidSansBold.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
renderer.setDocumentFromString(result, "http://" + frontendHost + ":" + frontendPort + frontendContextRoot);
renderer.layout();
renderer.createPDF(os);
还有CSS:
body {
font-family: "Droid Sans", "Arial Unicode MS";
}
我已经使用
@font-face
规则在CSS中包含了字体。我可以单独使用其中任意一种字体,因此似乎飞碟找到了字体或CSS渲染没有问题。
但是,如果我尝试同时使用两种字体,输出的PDF只使用了Droid Sans...
在飞碟中是否可以像网站上那样使用“备用字体”?