【问题标题】:Numbered paragraphs with reportlab带有reportlab的编号段落
【发布时间】:2011-05-15 09:39:48
【问题描述】:

我正在尝试使用 reportlab,但我发现用户指南不够清晰.. (可能只是我)


我有以下代码

    for item in content:
      text = item.name
      p = Paragraph(text,style,'*')

它的渲染完全符合预期。

但是如果我想要编号而不是bullets怎么办?

用户指南对这种情况真的很模糊......

【问题讨论】:

    标签: python pdf-generation reportlab


    【解决方案1】:

    User Guide 对此有所贡献。如果我理解正确,您必须使用 <seq/> 标签而不是项目符号来进行琐碎的编号(每次出现计数一个)。如需更复杂的编号,请参阅第 73/74 页。

    例如,据我了解,您将<b> </b> 用于粗体文本和<seq/> 内联:

    from reportlab.platypus import Paragraph
    
    formatted_text = 
        "Some example text. <seq/>First. <seq/>Second. <seq/>Third"
    formatted_para = Paragraph(your_formatted_text, your_paragraph_style_instance)
    

    您将不得不尝试一下换行符。这个没有。

    【讨论】:

    • 是的,我已经读过了。但我仍然不清楚该怎么做。有人可以根据我在问题中编写的代码给我一个代码示例吗?
    • 谢谢。这个技巧按预期工作。我想我对 reportlab 有点失望,因为我在考虑另一种解决方案……也许像 p = Paragraph(text,style,'&lt;seq /&gt;') 这样的……无论如何,谢谢你帮助我。
    • 好吧,当超精确的布局和类型设置不是主要问题时,它仍然胜过生成 TeX 代码。特别是对于表格和类似表格的东西。
    【解决方案2】:

    老问题,我知道,但是根据您的示例代码,您可以执行以下操作:

    paragraph_number = 1
    for item in content:
        text = item.name
        p = Paragraph(text,style,str(paragraph_number))
        paragraph_number += 1
    

    你可以用你喜欢的任何东西替换项目符号字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多