如何显示&等特殊字符在 iTextSharp 生成的 pdf 报告中?
在使用 iTextSharp 以编程方式生成 pdf 报告时,我必须打印 &报告中。但是当我在 ItextSharp 使用的 pdf 模板中输入 this(&) 时,它被标记为错误。鼠标悬停时显示的错误是“字符 '',十六进制值 0x20 在 XML 名称中是非法的。”。
谁能告诉我如何实现这一目标???
提前致谢。
While generating pdf reports programatically by using iTextSharp, I have to print the & in the report. But when i type this(&) in the pdf templates used by ItextSharp it is marked as an error. The error shows on mouse hover is "Character '', hexadecimal value 0x20 is illegal in an XML name.".
Can anyone let me know how to achieve this???
thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我想您需要对您尝试插入的任何文字文本进行 HTML 编码 -
&
通常会被解释为实体的开头,并且通常应编码为& ;amp;
。 HttpServerUtility.HtmlEncode 支持 HTML 编码。但是,我们在这里确实需要小心,因为报告的错误涉及 XML 错误,并且 HTML 和 XML 之间的命名实体列表不同>。我刚刚在 System.Xml 命名空间中查找,找不到任何专门帮助您生成有效 XML 数据的类 - 您也可以选择将文本文字放在 CDATA 中 (
,
]]>
) 部分。I'd imagine that you need to HTML encode any literal text you're trying to insert -
&
would generally be interpreted as the start of an entity, and should normally be encoded as&
. There's support for HTML encoding in HttpServerUtility.HtmlEncode.However, we do need to be careful here, since the reported error concerns an XML error, and the list of named entities differs between HTML and XML. I've just been looking in the System.Xml namespace, and can't find any class that specifically helps you produce valid XML data - you might alternatively choose to place your text literals inside a CDATA (
<![CDATA[
,]]>
) section.