首页 > 解决方案 > 如何在reportlab python中将文本对齐到中心?

问题描述

我正在使用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)

标签: pythonpandaspdfreportlab

解决方案


在您的情况下,我将创建自己的文本样式并参考此样式

def add_text(text, style="Normal", fontsize=12):

def add_text(text, style="Normal_CENTER", fontsize=12):

以下是您如何创建自己的风格:

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,
                          ))

推荐阅读