使用itext时出错

时间:2018-11-02 07:06:59

标签: java itext

此代码中出现2个错误-

  1. 未为类型表定义setWidthPercentage(int)方法。

  2. Cell类型的add(IBlockElement)方法不适用于参数(字符串)。

我正在使用以下罐子- io-7.1.4, 内核7.1.4, 布局7.1.4, svg-7.1.4, slf4j-api-1.7.13, styled-xml-parser-7.1.4

我正在尝试在Itext网站上给出的示例https://laravel.com/docs/5.7/helpers#urls

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Table;

import java.io.File;

public class ColspanRowspan {
    public static final String DEST = "./target/test/resources/sandbox/tables/simple_row_colspan.pdf";

    public static void main(String[] args) throws Exception {
        File file = new File(DEST);
        file.getParentFile().mkdirs();
        new ColspanRowspan().manipulatePdf(DEST);
    }


    protected void manipulatePdf(String dest) throws Exception {
        PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest));
        Document doc = new Document(pdfDoc);

        Table table = new Table(new float[]{1, 2, 2, 2, 1});
        table.setWidthPercent(100);

        Cell cell;
        cell = new Cell(2, 1).add("S/N");
        table.addCell(cell);
        cell = new Cell(1, 3).add("Name");
        table.addCell(cell);
        cell = new Cell(2, 1);
                cell.add("Age");
        table.addCell(cell);
        table.addCell("SURNAME");
        table.addCell("FIRST NAME");
        table.addCell("MIDDLE NAME");
        table.addCell("1");
        table.addCell("James");
        table.addCell("Fish");
        table.addCell("Stone");
        table.addCell("17");
        doc.add(table);

        doc.close();
    }
}

1 个答案:

答案 0 :(得分:1)

实际上,您在课堂上没有正确使用 itext API 。以下是针对您的错误的补救措施:-

  1. 方法名称本身不正确。实际上,Table类中没有使用此名称的方法。 Table.setWidth(UnitValue width)是“ 设置表格的整个宽度”。

->参考:-com.itextpdf.layout.element.Table

  1. 在您的场景中,add(IBlockElement)方法不应将字符串类型作为参数传递。而不是应该使用此Cell.add(IBlockElement element)来适当地满足您的要求,即“ 将任何块元素添加到单元格的内容”。

->参考:-com.itextpdf.layout.element.Cell