有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我可以只使用输入在iText中生成超级脚本吗?

我参与了一个使用iText生成pdf文件的项目。我想生成上标文本,我知道存在将文本块转换为上标的方法。然而,我的情况是,需要根据输入来决定一段文本是否应该上标。最佳解决方案是:2<superscript>nd</superscript>生成文本“2nd

这是可能的吗

值得一提的是,我并没有直接针对iText编写代码,它们之间是有层次的。这就是为什么我需要决定什么是上标,而不是基于输入


共 (2) 个答案

  1. # 1 楼答案

    如果你不能修改使用iText的代码,那就不行。iText不会解析你放在Chunk中的文本

    为了获得与您想要实现的类似的行为,您需要进行HTML到PDF的转换,例如使用iText的同伴XMLWorker

  2. # 2 楼答案

    找到<superscript>标记后,只需创建一个具有正确属性的块:

    public Chunk addSuperscript(String text) {
      float leading = determineCurrentLeading();
      Font f = determineCurrentFont();
      Font supFont = new Font(f);
      supFont.setSize(f.getSize() / 2f);
      Chunk c = new Chunk(text, supFont);
      c.setTextRise(leading / 2f);
      return c;
    }
    

    然后区块将被添加到一个段落,一个PdfPCell,。。。根据您的实现,您可以确定当前使用的前导和字体

    希望这对你有帮助