python - 如何在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)
解决方案
在您的情况下,我将创建自己的文本样式并参考此样式
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,
))
推荐阅读
- java - 更改 firebase 数据库中数据的文本样式
- python - 如何将包含日期字符串的字典 python 列表强制转换为日期时间对象的 numpy 记录数组?
- java - Java Jsoup 打印循环
- python - 如何在 PyInstaller 包中包含 PyInstaller?
- android - 如何判断 ServerSocket 客户端是否断开连接?
- r - 使用列名或列位置向量选择 data.table 的列,而不使用“with = F”
- python - 列表中有 n 个元素,如何检查它们是否满足条件?
- c - 从 Visual Studio 中的附加进程查看标准输出?
- html - 输入绑定不适用于定制的角度库
- python-3.x - 使用 Python 将 I2C 地址更改为多个 VL53L0X 传感器