此代码中出现2个错误-
未为类型表定义setWidthPercentage(int)方法。
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();
}
}
答案 0 :(得分:1)
实际上,您在课堂上没有正确使用 itext API 。以下是针对您的错误的补救措施:-
Table.setWidth(UnitValue width)
是“ 设置表格的整个宽度”。->参考:-com.itextpdf.layout.element.Table
add(IBlockElement)
方法不应将字符串类型作为参数传递。而不是应该使用此Cell.add(IBlockElement element)
来适当地满足您的要求,即“ 将任何块元素添加到单元格的内容”。