java - 在 iText 中使用制表符缩进多行字符串

标签 java itext tabstop

我在我的java应用程序中使用iText来生成pdf。目标是生成每行左侧有一些名称、右侧有值的段落。名称和值之间的空格由点填充:

param1..............value1
param2..............val1, val2
param3..............any text

我正在使用 TabStop,一切正常。这是我的代码。

 /** 
   * Method that generate paragraph with given indent
   * @param firstTabPosition parameter name indent
   * @param secondTabPosition value indent
   * @param itemNames list of names
   * @param itemValues list of values
   */
   public Paragraph GetTextListParagraph(int firstTabPosition, int secondTabPosition, ArrayList<String> itemNames, ArrayList<String> itemValues) throws DocumentException  {     
    ArrayList<TabStop> tabList = new ArrayList<>();
    tabList.add(new TabStop(firstTabPosition, new VerticalPositionMark()));
    tabList.add(new TabStop(secondTabPosition, new DottedLineSeparator()));        

    Paragraph paragraph = new Paragraph();
    paragraph.setTabSettings(new TabSettings(tabList));
    for (int index = 0; index < itemNames.size(); index++) {
        paragraph.add(Chunk.TABBING);
        paragraph.add(itemNames.get(index));
        paragraph.add(Chunk.TABBING);            
        paragraph.add(itemValues.get(index));            
        paragraph.add(Chunk.NEWLINE);
    }
    return paragraph;
}

问题出现在“值”太长的情况下。结果是:

  param1..............value1
  param2..............val1, val2
  param3..............some long value 
which start new line

...但我需要这样的东西:

 param1..............value1
 param2..............val1, val2
 param3..............some long value 
 ....................which start new line

知道如何到达吗?只有一种让我印象深刻的解决方案是使用 PdfPTable。

最佳答案

您希望最后一行以点开头吗?

param1..............value1
param2..............val1, val2
param3..............some long value 
....................which start new line

似乎以下选项看起来更好(最后一行没有点)

param1..............value1
param2..............val1, val2
param3..............some long value 
                    which start new line

关于java - 在 iText 中使用制表符缩进多行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24638512/

相关文章:

java - Activity 和 createpdf 函数之间的依赖关系

java - csv到java中的pdf文件

python - 如何根据选项卡的大小用字符串中的空格替换自定义选项卡?

vim - 使用 expandtab 后将 tabstop 从 4 更改为 2(手动操作最少)

java - 包访问类 |(public 和 protected 之间的区别)

Java:时间戳错误

java - Spring 启动: how can I validate a multipart form in springboot

java - 修改Itext中现有PDF的字体

Vim Ultisnips - 如何移动到下一个占位符或制表符?

java - 从 Java 打印 - 打印作业永远挂起