【发布时间】:2020-03-04 11:16:11
【问题描述】:
我正在使用openhtmltopdf 将 html 转换为 pdf。目前,如果 html 包含德语字符,例如 ä,ö,ü,我会遇到异常。
PdfRendererBuilder builder = new PdfRendererBuilder();
builder.useFastMode();
builder.withHtmlContent(html,"file://localhost/");
builder.toStream(out);
builder.run();
org.xml.sax.SAXParseException;行号:17;列号:31;这 实体“auml”被引用,但未声明。
这是我的html:
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
käse
</body>
</html>
导出的单词是“käse”(奶酪)。
更新
我尝试过使用实体解析器,方式如下:
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=null;
try{
builder=factory.newDocumentBuilder();
ByteArrayInputStream input=new ByteArrayInputStream(html.getBytes("UTF-8"));
builder.setEntityResolver(FSEntityResolver.instance());
org.w3c.dom.Document doc=builder.parse(input);
}catch(Exception e){
logger.error(e.getMessage(),e);
}
但我在“解析”时仍然遇到同样的异常。
【问题讨论】:
-
您的 HTML 文档中是否有
<meta charset="utf-8">来创建 PDF? -
是的,我已经添加了我的html
标签: java html-to-pdf flying-saucer openhtmltopdf