2

我正在运行一个 Django 网站并编写一个报告,该报告使用 Pisa 和 cStringIO 将带有视图代码的模板呈现为内联 PDF 文件。这一切都很好,而且工作得很好。我在 HTML 中看到的内容render_to_response()很好地以 PDF 格式显示。现在,我有一系列 HTML<ol></ol>列表。我希望外部列表为数字(<ol type="1">),内部列表为字母(<ol type="A">)。我已经尝试使用标签的内联type属性<ol>以及list-style-type: upper-alpha,但都没有使用 OL 的字母呈现 PDF。相反,它们始终是数字。

这是我的render_to_pdf方法:

def render_to_pdf(template_src, context_dict, extra_html=None):
    template = get_template(template_src)
    context = Context(context_dict)
    html = template.render(context)
    result = StringIO.StringIO()

    if extra_html:
        html += extra_html

    pdf = pisa.pisaDocument(
        StringIO.StringIO(html.encode("UTF-8")),
        dest=result,
        encoding='UTF-8',
        link_callback=fetch_resources
    )

    if not pdf.err:
        return HttpResponse(result.getvalue(), mimetype='application/pdf')

    return HttpResponse('We had some errors<pre>%s</pre>' % escape(html))

这是我的模板:

<ol type="1">
    <li>1</li>
    <li>2</li>
    <li>
        3
        <ol type="A">
            <li>A</li>
            <li>B</li>
            <li>C</li>
        </ol>
    </li>
    <li>4</li>
</ol>

其中render_to_response显示:

1. 1
2. 2
3. 3
    A. A
    B. B
    C. C
4. 4

其中render_to_pdf显示:

1. 1
2. 2
3. 3
    1. A
    2. B
    3. C
4. 4

有没有办法让一些有序列表显示字母?

4

0 回答 0