我正在使用openhtmltopdf将html转换为pdf。目前,如果html包含德语字符(例如ä,ö,ü),我会遇到异常。
PdfRendererBuilder builder = new PdfRendererBuilder();
builder.useFastMode();
builder.withHtmlContent(html,"file://localhost/");
builder.toStream(out);
builder.run();
org.xml.sax.SAXParseException; lineNumber:17; columnNumber:31;的实体“ auml”已被引用,但未声明。
这里是我的html:
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
käse
</body>
</html>
导出的单词是“käse”(奶酪)。
似乎您需要提供DTD或将实体名称auml
替换为其相应的十六进制或十进制值,即分别为ä
或ä
。参见A.2. Entity Sets和HTML 4 Entity Names。
html内容将如下所示:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html [
<!ENTITY auml "ä">
]>
<html>
<head>
</head>
<body>
käse
</body>
</html>
或者,您可以遍历html字符串并将实体名称替换为其相应的dec / hex值,这应该没问题,或者只需将DTD放在html字符串之前,然后再将其传递给pdf构建器。