【问题标题】:Itext - Issue hiding elements when parsing htmlItext - 解析 html 时问题隐藏元素
【发布时间】:2014-12-19 17:22:38
【问题描述】:

对于一个工作项目,我需要从 html 生成一个 pdf 文件。 我为此使用 Itext (Java),但在尝试隐藏某些元素时遇到问题。

html是由一些富文本元素生成的,需要解析的htlm输出示例:

html

<!DOCTYPE html>
<html>

  <body>
Test
<br />
<div class="messageReply">
  <div class="messageReplyDate">18/12/2014 21:06</div>
  <div class="messageReplySubject">RE: Great Design</div>
  <div class="messageReplyInfo"><strong>Van: </strong>Projector Test user
    <br /><strong>Aan: </strong>Projector Test user
    <br />
  </div><span style="color: rgb(102, 102, 102); font-family: Verdana, Geneva, sans-serif; font-size: 10px; line-height: normal; background-color: rgb(255, 255, 255);">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu.</span>
  <br
  />
  <br />
  <br />
  <div class="messageReply">
    <div class="messageReplyDate">17/12/2014 15:17</div>
    <div class="messageReplySubject">RE: Great Design</div>
    <div class="messageReplyInfo"><strong>Van: </strong>Projector Test user
      <br /><strong>Aan: </strong>Projector Test user
      <br />
    </div>
    <br /> <b><i><u>Test</u></i></b>
    <br />
    <br />
    <div class="messageReply">
      <div class="messageReplyDate">13/08/2004 17:20</div>
      <div class="messageReplySubject">Great Design</div>
      <div class="messageReplyInfo"><strong>Van: </strong>Ashe
        <br /><strong>Aan: </strong>Brock
        <br /><strong>Cc: </strong>Prof. Oak
        <br />
      </div>Help :(</div>
  </div>
</div>

要隐藏我正在使用以下简单 css 文件的元素:

css

.messageReplySubject {
display: none !important;
}

问题是,这行不通。 虽然,当我将 css 文件更改为此:

.messageReplySubject {
font-size: 30px;
}

它确实将字体大小更改为 30 像素。 我还尝试了其他一些方法,例如可见性:隐藏,宽度:0,...但它们都没有做我想要的。

不支持显示和可见性,还是我在这里遗漏了什么?

我已经上传了一个小测试项目,这样更容易看到发生了什么,更重要的是,出了什么问题。

PdfTest project

【问题讨论】:

  • 如果您对更简单的解决方案感兴趣,FlyingSaucer 项目将使用几行代码将 HTML 转换为 PDF。 code.google.com/p/flying-saucer
  • 感谢 Alan 的建议,不幸的是,我不认为飞碟能提供我想要它做的一切。我生成的 pdf 是解析后的 html 和我以编程方式添加的更多信息的组合,所有这些信息都是从 json 对象收集的。

标签: java itext


【解决方案1】:

我的担心是非常真实的,PdfDivs 没有边框,所以显然也不支持 css 边框属性。

想知道支持什么的可以参考the table right here

编辑(2018 年 3 月 1 日): 更新了 css 一致性列表 url

【讨论】:

  • 你有没有找到其他方法来隐藏元素?此外,您提供的链接不再有效。
  • 感谢您指出损坏的链接,我在最初发布帖子时将其更新为网络存档 url。我已经通过在生成 pdf 之前自己从 html 字符串中删除不需要的元素来解决这个问题。这是我能想出的解决此问题的唯一解决方案。
猜你喜欢
  • 2011-12-04
  • 2012-06-03
  • 1970-01-01
  • 2011-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多