HTML到德语字母的Pdf

问题描述 投票:2回答:1

我正在使用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&auml;se
    </body>
</html>

导出的单词是“käse”(奶酪)。

java html-to-pdf flying-saucer openhtmltopdf
1个回答
1
投票

似乎您需要提供DTD或将实体名称auml替换为其相应的十六进制或十进制值,即分别为&#xE4;&#228;。参见A.2. Entity SetsHTML 4 Entity Names

html内容将如下所示:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html [
        <!ENTITY auml "&#228;">
]>
<html>
    <head>
    </head>
    <body>
        k&auml;se
    </body>
</html>

或者,您可以遍历html字符串并将实体名称替换为其相应的dec / hex值,这应该没问题,或者只需将DTD放在html字符串之前,然后再将其传递给pdf构建器。

© www.soinside.com 2019 - 2024. All rights reserved.