Выровнять по горизонтали Абзац в iText - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь установить выравнивание абзаца вправо.

Вот что я пробовал, безрезультатно:

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

Я уже нашел много примеров , но все они, похоже, имеют дело с ячейками в таблицах. В моем случае это просто параграф.

1 Ответ

0 голосов
/ 08 января 2019

Пожалуйста, попробуйте метод setTextAlignment:

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

Важно отметить, что методы setHorizontAlignment и 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);

Как вы можете видеть, здесь я создал абзац с горизонтальным выравниванием, установленным как ПРАВО, и текстовым выравниванием, установленным как ЦЕНТР.

Результат выглядит следующим образом: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...