我正在尝试使用带有iText的HTML生成PDF。 html包含一些西里尔字母。在Windows 7操作系统上一切正常。
以下是我生成PDF的方法:
// Registers the fonts folder.
FontFactory.registerDirectory(fontFolder);
Set<String> registeredFonts = FontFactory.getRegisteredFonts();
LOGGER.info("Registered fonts : " + registeredFonts);
// Adds wrapper HTML and BODY tags.
content = "<HTML><BODY style=\"font-family: " + fontFamily + "\">" + content + "</BODY></HTML>";
content = content.replace(NEW_LINE_SEPARATOR, "<br />");
// Create input stream from the html content
InputStream stream = new ByteArrayInputStream(content.getBytes("UTF-8"));
// convert to PDF
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
worker.parseXHtml(writer, document, stream, Charset.forName("UTF-8"));
字体文件夹变量包含arial字体的路径,fontFamily变量包含字符串“arial”。
问题是,当我在远程linux jboss服务器上部署Web应用程序时,这段代码将不会显示西里尔符号(拉丁文符号和数字就好了)。
我猜问题是缺少字体但无法弄清楚究竟是什么导致它,因为我在服务器上的配置似乎很好。