我已经通过iText创建了可访问的pdf。但是,现在我试图从用户喜欢的JSP中的Name,Address等输入,并将输入放置在pdf中。
用户在文本区域(如SO中)提供输入,并能够将文本标记为粗体或斜体或创建列表(我为此使用了widgEditor)
我正在使用PdfHtml将输入解析为pdf。据我所知,有2种方法可以完成这项工作-convertToDocument()
方法和convertToElements()
方法。
我正在使用conconvertToElements()
方法,因为convertToDocument()
不能使我们能够将解析的输入放置到pdf中的特定位置,而只是将输入放在Pdf的顶部。
我参考了C01E08_HelloWorld示例
但是在将pdfptable添加到文档时,出现以下错误。
错误-“文档类型中的方法add(AreaBreak)不适用于参数(PdfTable)”
public void createPdf(String baseUri, String src, String dest) throws IOException {
ConverterProperties properties = new ConverterProperties();
properties.setBaseUri(baseUri);
List<IElement> elements = HtmlConverter.convertToElements(HTML+HTML2, properties);
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
Document document = new Document(pdf);
for (IElement element : elements) {
document.add(new Paragraph(element.getClass().getName()));
document.add((IBlockElement)element);
}
PdfPTable t = new PdfPTable(new float[] {1,1});
document.add(t);
document.close();
}
答案 0 :(得分:3)
您正在将iText 7与iText 5元素混合在一起。 PdfPTable是iText 5元素,不能与iText 7的Document类一起使用。请使用com.itextpdf.layout.element.Table类。
另外,检查您的依赖项以删除iText 5依赖项,以避免进一步的混乱。