标题为2个单元格在同一行中对齐,itextpdf 5.5.10

时间:2017-03-14 14:47:49

标签: itext

我的标题中有一行,看起来不错,但我需要在同一行添加另一个字符串,所以它位于它的右侧

当我尝试在同一个单元格中添加该String时,一切都会失去对齐

private void addHeader(PdfWriter writer) {
    PdfPTable tableHeader = new PdfPTable(2);
    try {
        // set defaults
        header.setWidths(new int[] { 20, 12, 12 });
        header.setTotalWidth(527);
        header.setLockedWidth(true);
        header.getDefaultCell().setFixedHeight(5);
        header.getDefaultCell().setBorder(Rectangle.BOTTOM);
        header.getDefaultCell().setBorderColor(BaseColor.LIGHT_GRAY);
        // add text
        PdfPCell text = new PdfPCell();
        text.setPaddingBottom(12);
        text.setPaddingLeft(8);
        text.setBorder(Rectangle.BOTTOM);
        text.setBorderColor(BaseColor.LIGHT_GRAY);
        text.addElement(new Phrase("Hi", new Font(Font.FontFamily.HELVETICA, 12, Font.BOLD)));
        text.addElement(new Phrase("", new Font(Font.FontFamily.HELVETICA, 8)));
        text.addElement(new Phrase("Hi" + "CVE-2017-2018", new Font(Font.FontFamily.HELVETICA, 9)));
        header.addCell(text);
        // add image
        Image logo = Image.getInstance(App.class.getResource(LOGO_2));
        header.addCell(logo);

        PdfPCell cveTitle = new PdfPCell();
        cveTitle.setPaddingBottom(15);
        cveTitle.setPaddingLeft(8);
        cveTitle.setBorder(Rectangle.BOTTOM);
        cveTitle.setBorderColor(BaseColor.LIGHT_GRAY);
        cveTitle.addElement(new Phrase("3 Cell", new Font(Font.FontFamily.HELVETICA, 16, Font.BOLD)));
        header.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);

        header.addCell(cveTitle);

}

CVE-2010-2016年 正是我想要做的,把它留在右侧

更新

解决方案是向数组添加一个新值,对应一个新单元格,并再次实例化PdfPCell,这是

2 个答案:

答案 0 :(得分:0)

只是从类名PdfPTable,我可以告诉您使用的iText版本已经过时了。

请考虑切换到更新版本。最新版本是iText7。

答案 1 :(得分:0)

我认为您正在寻找的是colspan和rowspan。 看看教程: http://developers.itextpdf.com/examples/tables/clone-colspan-and-rowspan