iText 7中的行缩进?

问题描述 投票:0回答:1

我正在开发一个程序,可以将txt文件转换为pdf,并在行缩进方面有很多更改。但是,我无法在iText 7中找到可以实现此目标的确切命令。我知道,在iText 5中,有段落对象的setIndentationLeft()setIndentationRight()之类的方法允许显式缩进,但这是不可用的在最新版本中。最新版本仅提供setFirstLineIndent(),不足以满足我的需求。

这是我想要实现的目标:

         Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
         incididunt ut labore et dolore magna aliqua.

                      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod 

如您所见,行以不同的缩进开始。我已经考虑过在行前使用空格,但是我发现效率很低。我该如何解决这个问题?

itext itext7
1个回答
0
投票

回答我自己的问题以帮助遇到相同问题的其他人。

有3种方法可以解决此问题:

1)由于我想为段落中的每一行设置它,因此可以将文本行分成不同的块,然后分别为其设置缩进。完成后,您可以将其添加到文档中。

2)尽管iText5已过时,但仍可以用来解决许多问题。如果使用Maven作为构建工具,则只需将以下代码添加到依赖项中,然后就可以开始使用左右缩进方法。

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.10</version>
</dependency>

3)您还可以使用表格单元格方法,您可以在其中将文本添加到给定单元格中并设置适当的边距,如下所示。

Table table = new Table(1);
Paragraph right = new Paragraph("This is right, because we create a paragraph with an indentation to the left and as we are adding the paragraph in composite mode, all the properties of the paragraph are preserved.");
right.setMarginLeft(20);
Cell rightCell = new Cell().add(right);
table.addCell(rightCell);
doc.add(table);

将以以下形式呈现。

enter image description here

我个人不鼓励使用第二种方法,但是如果它可以解决您的问题,那么没有什么可以阻止您的。

© www.soinside.com 2019 - 2024. All rights reserved.