#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 выравниваются в одной строке, а нев следующей строке.