【发布时间】: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,...但它们都没有做我想要的。
不支持显示和可见性,还是我在这里遗漏了什么?
我已经上传了一个小测试项目,这样更容易看到发生了什么,更重要的是,出了什么问题。
【问题讨论】:
-
如果您对更简单的解决方案感兴趣,FlyingSaucer 项目将使用几行代码将 HTML 转换为 PDF。 code.google.com/p/flying-saucer
-
感谢 Alan 的建议,不幸的是,我不认为飞碟能提供我想要它做的一切。我生成的 pdf 是解析后的 html 和我以编程方式添加的更多信息的组合,所有这些信息都是从 json 对象收集的。