【问题标题】:Itext5 not able to render java escape sequenceItext5 无法呈现 java 转义序列
【发布时间】:2021-06-21 10:48:43
【问题描述】:

使用 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)

【问题讨论】:

    标签: java string itext escaping


    【解决方案1】:

    在这种情况下,您的期望就是问题所在:Chunk 类既不承诺也不实现对这些控制字符的特殊处理,仅支持 \n 来指示换行,而 \t 的处理方式就像空间。

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

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


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      • 1970-01-01
      相关资源
      最近更新 更多