java - Jsoup简单的HTML标签分割

标签 java pdf itext jsoup

我的 Java 应用程序读取数据库行,并创建 iText PDF 文件。问题是我得到的行中的某些单元格包含粗体 HTML 标记,这意味着我还必须在各自的 iText 段落中显示粗体 block 。

例如,DB 行的一个单元格可能如下所示:

This is an <b>important</b> line and i <b>want</b> formatting in it

我目前所做的只是使用 jsoup 获取粗体

org.jsoup.nodes.Document doc = Jsoup.parse(input);
org.jsoup.select.Elements bold = doc.select("B");
System.out.println("[BODY: "+doc.body().text()+"] BOLD:>> " + bold.text());

我真正想做的是将字符串拆分为粗体部分和非粗体部分。所以我的问题的正确解决方案将输出

This is an
<b>important</b>
line and i 
<b>want</b>
formatting in it

或类似的东西,以便我可以创建我的 iText block 并添加到我的段落中。 有没有办法用 Jsoup 来做到这一点?

最佳答案

您可以使用Node代替Elements:

final String html = "This is an <b>important</b> line and i <b>want</b> formatting in it";
Document doc = Jsoup.parse(html);


for( Node node : doc.body().childNodes() )
{
    System.out.println(node.toString());
}

输出:

This is an 
<b>important</b>
 line and i 
<b>want</b>
 formatting in it

如果前导空格有问题,请使用node.toString().trim()

关于java - Jsoup简单的HTML标签分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16521429/

相关文章:

c# - 使用 iTextSharp 4.1.6.0 对 PDF 进行数字签名

java - startSearch 不启动搜索 Activity

java - 窗口生成器和 Swing 中的设计时间异常

c# - 使主窗口处于非事件状态的选项卡上的 WebBrowser 控件

xml - 如何在表格条目上强制换行

c# - 获取使用 Adob​​e PDF 打印机打印的 PDF 文件名

java - 从 Itext PDF 字节数组转换为多页 TIFF 文件

java - 在 Webdriver 中创建测试套件

java - 如何判断用户喜欢简体字还是繁体字

java - 如何使用 iText 以外的其他内容从模板 PDF 生成 PDF 输出?