栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用itext获取特定的html表内容以将其写入pdf

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用itext获取特定的html表内容以将其写入pdf

请看一下示例ParseHtmlTable1和ParseHtmlTable2。
他们创建以下PDF:html_table_1.pdf
和html_table_2.pdf 。

该表是这样创建的:

StringBuilder sb = new StringBuilder();sb.append("<table border="2">");sb.append("<tr>");sb.append("<th>Sr. No.</th>");sb.append("<th>Text Data</th>");sb.append("<th>Number Data</th>");sb.append("</tr>");for (int i = 0; i < 10; ) {    i++;    sb.append("<tr>");    sb.append("<td>");    sb.append(i);    sb.append("</td>");    sb.append("<td>This is text data ");    sb.append(i);    sb.append("</td>");    sb.append("<td>");    sb.append(i);    sb.append("</td>");    sb.append("</tr>");}sb.append("</table>");

我自由地定义了CSS,如下所示:

tr { text-align: center; }th { background-color: lightgreen; padding: 3px; }td {background-color: lightblue;  padding: 3px; }

在另一个答案中,已经提到您的设计存在缺陷。您
应该学习如何创建一个体面的体系结构。分隔数据(例如
表格)和样式(例如颜色)是您可以改进的一个示例。

现在,我们像这样解析CSS和HTML:

CSSResolver cssResolver = new StyleAttrCSSResolver();CssFile cssFile = XMLWorkerHelper.getCSS(new ByteArrayInputStream(CSS.getBytes()));cssResolver.addCss(cssFile);// HTMLHtmlPipelineContext htmlContext = new HtmlPipelineContext(null);htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());// PipelinesElementList elements = new ElementList();ElementHandlerPipeline pdf = new ElementHandlerPipeline(elements, null);HtmlPipeline html = new HtmlPipeline(htmlContext, pdf);CssResolverPipeline css = new CssResolverPipeline(cssResolver, html);// XML WorkerXMLWorker worker = new XMLWorker(css, true);XMLParser p = new XMLParser(worker);p.parse(new ByteArrayInputStream(sb.toString().getBytes()));

现在elements列表包含一个元素:您的表:

return (PdfPTable)elements.get(0);

您可以将此表添加到PDF文档中



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419212.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号