Itext5 无法呈现 java 转义序列

Itext5 not able to render java escape sequence

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

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

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

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

在这种情况下,您的期望就是问题所在:Chunk class 既不承诺也不实现对这些控制字符的特殊处理,仅支持 \n 来指示一行break 和 \t 的处理方式与 space.

相同

如果您的代码中需要 TAB,请考虑使用 TAB 块(参见 this old answer) or section 2.2.6 The DrawInterface: vertical position marks, separators, and tabs in iText in Action, 2nd edition (currently you can see the entire book for free here)。

因此,如果您需要一种方法来呈现 PDF 中预期的 Java 字符串, 您必须为那些解析 Java 字符串控制字符,在那里拆分字符串,并以产生您期望的外观的方式处理每个部分。


顺便说一句,iText 5.0.6 很古老。你应该考虑更新。