Табуляция iText7 для абзацев

#itext7

#itext7

Вопрос:

Мое требование — создать pdf, как показано ниже, с использованием iText 7.

введите описание изображения здесь

Используя приведенный ниже код.

 Table table = new Table(UnitValue.createPercentArray(2)).useAllAvailableWidth();
        table.addCell(getNameCell("First Lastname", TextAlignment.LEFT));
        // table.addCell(getCell("Text in the middle", TextAlignment.CENTER));
        table.addCell(getLogoCell("Company", TextAlignment.RIGHT));
        table.addCell(getAddressCell("1111 Boones Ridge Rd", TextAlignment.LEFT));
        table.addCell(getLogoCell(" ", TextAlignment.RIGHT));
        table.addCell(getAddressCell("Acworth, Ga 30102", TextAlignment.LEFT));
        table.addCell(getLogoCell(" ", TextAlignment.RIGHT));
        table.addCell(getAddressCell("P: 1234567890", TextAlignment.LEFT));
        table.addCell(getLogoCell(" ", TextAlignment.RIGHT));
        table.addCell(getAddressCell("test@gmail.com", TextAlignment.LEFT));
        table.addCell(getLogoCell(" ", TextAlignment.RIGHT));
        table.addCell(getAddressCell("www.testonline.com", TextAlignment.LEFT));
        table.addCell(getLogoCell(" ", TextAlignment.RIGHT));
        doc.add(table);
  

Здесь излишне добавлять пустое пространство, иначе текст выравнивается по горизонтали. Кроме того, поскольку правый шрифт текста больше, в имени и адресе есть пробел. Есть ли лучший способ справиться с этим?

Ответ №1:

В iText 7 есть функция остановки табуляции. Вы можете добавить табуляцию и выровнять текст по правому краю следующим образом:

 Paragraph p = new Paragraph();
p.addTabStops(new TabStop(PageSize.A4.getRight() - document.getLeftMargin() - document.getRightMargin(),
        TabAlignment.RIGHT));
p.add(new Text("Hello")).add(new Tab()).add(new Text("World"));
  

Чтобы настроить интервал между вашим именем и адресом, вы можете поиграть с начальным свойством:

 p.setFixedLeading(12);
  

Комментарии:

1. Добавление нескольких текстов, например, p.add(новый текст («Привет»)).add(новая вкладка ()).add(новый текст («Мир»)); p.add(новый текст («Тест»)); Hello и Test выравниваются в одной строке, а нев следующей строке.