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

在项目中需要用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

阅读 10.3k
1 个回答

查看源码发现构造方法创建对象时,没获取传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);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏