微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Itext5 无法呈现 java 转义序列

如何解决Itext5 无法呈现 java 转义序列

使用 itextpdf:5.0.6 准备 PDF。文本包含 java 转义序列(制表符:\t,换行符:\n,退格:\b,换页符:\f,回车符:\r)。

它能够呈现换行符,但将制表符 (\t) 视为单个空格。无法呈现换页,退格。需要一种在 PDF 中按预期呈现 Java 字符串的方法

使用的字体:Courier
Java 字符串 = Tab\tTab
pdf 格式的输出 = Tab Tab

Chunk chunk=new Chunk(string)
document.add(chunk)

解决方法

在这种情况下,您的期望是问题所在:Chunk 类既不承诺也不实现对这些控制字符的特殊处理,仅支持 \n 表示换行符和 {{1} } 就像空格一样处理。

如果您的代码中需要 TAB,请考虑使用 TAB 块(参见 this old answer)或第 2.2.6 节 iText in Action 中的 DrawInterface:垂直位置标记、分隔符和制表符 ,第 2 版(目前您可以免费查看整本书 here)。

因此,如果您需要一种在 PDF 中按预期呈现 Java 字符串的方法,您必须为这些控制字符解析 Java 字符串,在那里拆分字符串,并处理每个部分一种可以达到预期效果的方式。


顺便说一句,iText 5.0.6 是古老的。您应该考虑更新。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。