如何在reportlab python中将文本对齐到中心?

Ein*_*ins 6 python pdf reportlab pandas

我正在使用reportlab生成pdf,我希望我的标题位于中心。但如何实现,找不到解决方案。

这是我的代码:

def add_text(text, style="Normal", fontsize=12):
    Story.append(Spacer(1, 12))
    ptext = "<font size={}>{}</font>".format(fontsize, text)
    Story.append(Paragraph(ptext, styles[style]))
    Story.append(Spacer(1, 12))

add_text("Title", style="Heading1", fontsize=24)
Run Code Online (Sandbox Code Playgroud)

Jac*_*aco 4

我会创建自己的文本样式并参考这个,在你的情况下

def add_text(text, style="Normal", fontsize=12):
Run Code Online (Sandbox Code Playgroud)

def add_text(text, style="Normal_CENTER", fontsize=12):
Run Code Online (Sandbox Code Playgroud)

以下是创建自己风格的方法:

from reportlab.lib.styles import ParagraphStyle, getSampleStyleSheet
from reportlab.lib.enums import TA_JUSTIFY, TA_LEFT, TA_CENTER, TA_RIGHT
from reportlab.lib import colors

styles = getSampleStyleSheet()

styles.add(ParagraphStyle(name='Normal_CENTER',
                          parent=styles['Normal'],
                          fontName='Helvetica',
                          wordWrap='LTR',
                          alignment=TA_CENTER,
                          fontSize=12,
                          leading=13,
                          textColor=colors.black,
                          borderPadding=0,
                          leftIndent=0,
                          rightIndent=0,
                          spaceAfter=0,
                          spaceBefore=0,
                          splitLongWords=True,
                          spaceShrinkage=0.05,
                          ))
styles.add(ParagraphStyle(name='New Style',
                          alignment=TA_LEFT,
                          fontName='Helvetica',
                          fontSize=7,
                          textColor=colors.darkgray,
                          leading=8,
                          textTransform='uppercase',
                          wordWrap='LTR',
                          splitLongWords=True,
                          spaceShrinkage=0.05,
                          ))
Run Code Online (Sandbox Code Playgroud)