Java Itext 如何设置PdfPCell单元格里Paragragh的行高

发布于 2022-09-11 17:58:56 字数 1278 浏览 43 评论 0

在项目中需要用java自动生成pdf文件,然后用了itext的jar包:iext-asian-5.2.0.jar和itextpdf-5.5.9.jar
然后再调格式的时候遇到单元格里面的文字不能设置行高的问题:
Paragraph有setLeading()方法来设置行高,但是将这个Paragraph放在PdfPCell单元格里就不起作用了.


PdfPCell client_name = new PdfPCell();
        Paragraph paragraph_1 = new Paragraph(
                "姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名姓名",
                pdftest.ContentFont());
        paragraph_1.setLeading(20f);
        client_name = new PdfPCell(paragraph_1);
        client_name.setPaddingLeft(5.23f);
        client_name.setPaddingBottom(5);
        client_name.setPaddingTop(5);
        client_name.setBorderColor(BaseColor.WHITE);
        client_name.setVerticalAlignment(Element.ALIGN_MIDDLE);
        client_name.setBackgroundColor(tableBgColor);
        basic_info_table.addCell(client_name);


在单元格里的Paragragh




Paragraph test_para = new Paragraph(testString,ContentFont());
test_para.setLeading(20f);
document.add(test_para);


在单元格外的Paragragh

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

豆芽 2022-09-18 17:58:56

查看源码发现构造方法创建对象时,没获取传Paragraph的setLeading,而是直接设置了行高为(0,1);

public PdfPCell(Phrase phrase) {
super(0, 0, 0, 0);
borderWidth = 0.5f;
border = BOX;
column.addText(this.phrase = phrase);
column.setLeading(0, 1);
}

我发现PdfPCell提供了设置行高的方法:


cell.setLeading(fixedLeading, multipliedLeading);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文