从MVC4中的html生成的PDF中的有序列表

本文关键字:PDF 列表 MVC4 中的 html | 更新日期: 2023-09-27 18:19:22

我试图在我的MVC4应用程序中使用iTextSharp生成PDF。我正在使用一个html文件,在其中填写数据并生成PDF。但是呈现type = "a"的有序列表存在问题。代码如下所示:

<ol style="font-size: 10px">
        <li>First</li>
        <li>Second</li>
        <li>Third
            <ol type="a">
                <li>3.1</li>
                <li>3.2</li>
            </ol>
        </li>
        <li>Fourth</li>
</ol>

应该显示如下:

1. First
2. Second
3. Third
  a. 3.1
  b. 3.2
4. Fourth

但它显示为:

1. First
2. Second
3. Third
  1. 3.1
  2. 3.2
4. Fourth

即使我删除嵌套,只是尝试呈现类型为"a"的有序列表,如下所示:

<ol type="a">
        <li>First</li>
        <li>Second</li>
        <li>Third</li>
</ol>

PDF中显示的列表如下:

1. First
2. Second
3. Third

应该有a, b, c…而不是1,2,3 ....
这是iTextSharp的已知问题吗?
这个问题有什么解决办法吗?

谢谢。编辑:在控制器中生成PDF的代码为:

public ActionResult GeneratePDF()
    {
        var myObject = new MyClass
        {
            Property1 = Session["Property1"].ToString(),
            .....
        };
        return ViewPdf("", "MyPDF", myObject);
    }

其中MyPDF是要呈现的html页面。

@model MyProject.ViewModel.MyPdfViewModel
@{
    ViewBag.Title = "Result PDF";
}
<br />
<br />
<div>
<h2 align="center">
<u>Details</u>
</h2>
<div align="justify">
    <p align="justify" style="font-size: 10px">
        Below is the list
    </p>
    <ol style="font-size: 10px">
        <li>First
        </li>
        <li>Second
        </li>
        <li>Third
            <ol type="a">
                <li>3.1
                </li>
                <li>3.2
                </li>
            </ol>
        </li>
        </ol>
        </div>

从MVC4中的html生成的PDF中的有序列表

你正在使用的HTML属性被标记为弃用,而你被鼓励使用CSS属性list-style-type。假设您正在使用XMLWorker,您可以进行更改,并且它应该像您期望的那样工作。

<ol style=""font-size: 10px"">
    <li>First</li><li>Second</li>
    <li>Third
        <ol style=""list-style-type: lower-alpha;"">
            <li>3.1</li>
            <li>3.2</li>
        </ol>
    </li>
    <li>Fourth</li>
</ol>