iText 2.1.7调用PdfPCell的setRowspan方法报找不到符号错误
iText 2.1.7 配置PdfPCell跨行时提示找不到setRowspan符号的解决办法
问题根源
存在两处和iText 2.1.7版本API不匹配的问题,共同触发了编译报错:
- 代码中实例化的对象写为
PdfCell,但该版本iText根本不存在这个类,表格单元格的正确类名是PdfPCell,属于com.lowagie.text.pdf包路径下。 setRowspan()是iText 5.0及后续版本新增的封装方法,iText 2.1.7版本的PdfPCell类没有提供这个公共setter,直接调用自然会报找不到符号。
可直接运行的适配代码
iText 2.1.7版本中,PdfPCell的跨行、跨列属性都是以公共成员变量的形式对外暴露的,不需要调用setter方法赋值,正确写法如下:
import com.lowagie.text.pdf.PdfPCell; import com.lowagie.text.Phrase; PdfPCell cell = new PdfPCell(new Phrase("ABC", fontMethod)); // 直接给公开的rowspan属性赋值,指定当前单元格跨2行 cell.rowspan = 2;
补充提示
- 同版本下设置跨列数的写法完全一致,直接给公共成员变量
cell.colspan = 数值即可,同样没有对应的setColspan()方法。 - 导入类时注意匹配iText 2.1.7的包路径,所有类的根包都是
com.lowagie.*,如果导入了后续版本com.itextpdf.*路径下的同名类,也会触发各类API找不到的编译错误。
内容的提问来源于stack exchange,提问作者PUSHPARAJ N
相关产品推荐
相关产品推荐

