gpt4 book ai didi

Python Reportlab PDF - 页面上的居中文本

转载 作者:太空狗 更新时间:2023-10-29 20:39:10 26 4
gpt4 key购买 nike

我正在使用 ReportLab使用 python 动态生成 pdf。

我想要一行文本在页面上居中。这是我目前拥有的具体代码,但不知道如何将文本水平居中。

header = p.beginText(190, 740)
header.textOut("Title of Page Here")

# I know i can use TextLine etc in place of textOut

p.drawText(header)

文本显示,我可以手动移动左侧位置,使文本看起来居中,但我需要以编程方式居中,因为文本将是动态的,我不知道会有多少文本。

最佳答案

reportlab Canvas 有一个 drawCentredString方法。是的,他们就是这样拼写的。

We’re British, dammit, and proud of our spelling!

编辑:至于文本对象,恐怕你不知道。不过,您可以按照这些思路做一些事情:

from reportlab.pdfbase.pdfmetrics import stringWidth
from reportlab.rl_config import defaultPageSize

PAGE_WIDTH = defaultPageSize[0]
PAGE_HEIGHT = defaultPageSize[1]

text = "foobar foobar foobar"
text_width = stringWidth(text)
y = 1050 # wherever you want your text to appear
pdf_text_object = canvas.beginText((PAGE_WIDTH - text_width) / 2.0, y)
pdf_text_object.textOut(text) # or: pdf_text_object.textLine(text) etc.

显然,您可以使用其他页面大小。

关于Python Reportlab PDF - 页面上的居中文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3755851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com