itext7 - 段落的 iText7 制表符
问题描述
我的要求是使用 iText 7 如下构建 pdf。
使用下面的代码。
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);
在这里,不必要地添加空格,否则文本会水平对齐。此外,由于正确的文本字体更大,因此名称和地址之间有一个空格。有没有更好的方法来处理这个?
解决方案
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);
推荐阅读
- javascript - React 扩展组件渲染函数调用
- php - 使用 PHP 的动态 CSS
- node.js - 如何附加文档和更新密钥
- karate - 如何从项目 jar 运行空手道测试?
- sql-server - SSIS“执行报告”错误-“报告无效”-在 SSMS 中间歇性出现-原因?
- amp-html - 是否可以在不包含 v0.js 脚本的情况下创建 AMP 页面?
- c# - 转义while循环,while条件为假
- css - Django 中的 CSS 未注册到控制台
- powershell - 匹配号码长度和前缀
- r - 不应该与具有家庭链接功能 gaussian(log) 的 glm 与具有 log(outcome) ~ ... 的 lm 相同?