在iText中水平对齐段落

时间:2019-01-08 09:12:58

标签: java pdf itext

我正在尝试将段落的对齐方式设置为右对齐。

这是我尝试过的,没有任何结果:

Paragraph paragraph1 = new Paragraph(str1);
paragraph1.setHorizontalAlignment(HorizontalAlignment.RIGHT);
document.add(paragraph1);

我已经发现很多examples,但它们似乎都可以处理表格中的单元格。就我而言,这只是一个段落。

1 个答案:

答案 0 :(得分:2)

请尝试setTextAlignment方法:

Paragraph paragraph1 = new Paragraph(str1);
paragraph1.setTextAlignment(TextAlignment.RIGHT);
document.add(paragraph1);

重要的是要提到setHorizo​​ntalAlignment和setTextAlignment方法具有不同的目标。前者与放置段落本身(作为元素)有关,后者与放置其内容有关。

要查看差异,可以在段落上设置宽度并将该段落添加到div元素中。

我创建了一个小测试来演示它:

    PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outFileName));
    Document document = new Document(pdfDocument);

    Div div = new Div()
            .setWidth(500)
            .setBackgroundColor(ColorConstants.YELLOW);

    Paragraph paragraph = new Paragraph("Hello World!")
            .setTextAlignment(TextAlignment.CENTER)
            .setHorizontalAlignment(HorizontalAlignment.RIGHT)
            .setWidth(300)
            .setBackgroundColor(ColorConstants.BLUE);

    div.add(paragraph);
    document.add(div);

如您所见,这里我创建了一个段落,其中水平对齐设置为RIGHT,文本对齐设置为CENTER。

结果将以另一种方式出现:enter image description here