gpt4 book ai didi

java - ITextRenderer 不接受 html 的特殊符号

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:52 25 4
gpt4 key购买 nike

我正在使用 ITextRenderer 使用 HTML 字符串生成 pdf,虽然它生成 pdf,但当 HTML 字符串包含 html 实体(如 ° ** 等符号时,会出现错误,输出错误为

org.xml.sax.SAXParseException: The entity "deg" was referenced, but not declared.

例如

String myString=<html><head></head><body><div>**1L of water at 100&deg;C is mixed with 1 L of water at 0&deg;**</div></body></html>

我的java代码是

 StringBuffer buf = new StringBuffer();
buf.append(myString);

try {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

Document doc = builder.parse(new StringBufferInputStream(buf.toString()));
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(doc, null);
renderer.getFontResolver();
renderer.layout();
java.io.OutputStream os = response.getOutputStream();
renderer.createPDF(os);
os.flush();
os.close();
} catch (Exception ex) {
ex.printStackTrace();
}

甚至添加了元标记,例如

 <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>

还有一些东西,比如

<?xml version=\'1.0\' encoding=\'UTF-8\'?><html xmlns=\'http://www.w3.org/1999/xhtml\' lang=\'en\'><head>

还是同样的错误。任何帮助提前致谢。

最佳答案

问题是°被视为Html标签。因此,使用 & 转义 & 将解决您的问题。

示例:

 String myString = "<html><head></head><body><div>**1L of water at 100&amp;deg;C is mixed with 1 L of water at 0&amp;deg;**</div></body></html>";

关于java - ITextRenderer 不接受 html 的特殊符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21230601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com