无法在itextsharp中正确地在div中呈现嵌套列表

时间:2015-04-14 21:01:20

标签: itextsharp mvcrazortopdf

我使用itextsharp& mvcrazortopdf在azure网站上生成pdf。 div标签或表格单元格中的嵌套列表无法正确呈现 - 它们成为一行。这是一个例子:

<div>
    <ul>
        <li>
            test1
            <ul>
                <li>test1.1</li>
            </ul>
        </li>
        <li>test2</li>
    </ul>
</div>

http://demo.itextsupport.com/xmlworker/ 在演示页面中,它呈现为:

  • test1 test1.1
  • TEST2

感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

在同事的帮助下,我们设法为表格单元内的嵌套列表创建了一种解决方法。它涉及用<div>标签包围列表,它们将正确呈现。

例如,在我正在开发的Web应用程序中,有一些Razor Views我们可以将其转换为PDF。由于这些视图是用数据库中的数据完成的,因此我们允许用户使用富文本控件以其他形式填充某些字段。结果,我们会遇到各种样式和列表组合。

上述报告的结构相似,因此表中有许多表。在表的最后一级中,我们有“麻烦的”单元格,其中填充了数据库中的富文本字段。在每个单元格内,我们像这样放置<div>标签:

<tr>
    <td class="border3 fontMedium">
        <div>
            @if (!String.IsNullOrEmpty(entity.Field))
            {
                <p class="fontSmall">@Html.Raw(entity.Field)</p>    
            }
            else
            {
                <p>&nbsp;</p>
            }
        </div>
    </td>
</tr>

请注意,提到的<div>不需要关联任何CSS类。您在代码段中看到的其他CSS类属于报告的样式。它们涉及边框,填充物等。

希望有帮助。