Ошибки при использовании itext - PullRequest
0 голосов
/ 02 ноября 2018

Я получаю 2 ошибки в этом коде -

  1. Метод setWidthPercentage (int) не определен для таблицы типов.

  2. Метод add (IBlockElement) в типе Cell не применим для аргументов (String).

Я использую следующие банки - ИО-7.1.4, ядра 7.1.4, макет-7.1.4, SVG-7.1.4, SLF4J-апи-1.7.13, стиль-XML-анализатор-7.1.4

Я пробую пример ColspanRowspan , который приведен на веб-сайте Itext.

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 голосов
/ 02 ноября 2018

На самом деле, вы не используете itext API's правильно в вашем классе. Ниже приведены способы устранения ваших ошибок: -

  1. Неверное имя метода. На самом деле, нет метода с этим именем в классе таблицы. Это Table.setWidth(UnitValue width), который " устанавливает полную ширину таблицы ".

-> Ссылка: - com.itextpdf.layout.element.Table

  1. Строковый тип не должен передаваться в качестве аргумента в вашем сценарии для метода add(IBlockElement). Вместо того, чтобы использовать Cell.add(IBlockElement element), правильно ищите ваше требование, которое " добавляет любой элемент блока к содержимому ячейки ".

-> Ссылка: - com.itextpdf.layout.element.Cell

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...