Python 上标传递给reportlab drawString()方法的字符串中的符号
当使用Python 上标传递给reportlab drawString()方法的字符串中的符号,python,reportlab,superscript,Python,Reportlab,Superscript,当使用reportlab通过drawString()方法将字符串写入PDF时,是否有一种简单的方法在Python中为字符串的子字符串(例如'%'符号)上标 例如,打印一个字符串,如'37%',其中我希望'%'符号是上标 我目前的解决方法是使用两个单独的调用drawString()方法,并为每个方法指定单独的字体大小,使用有效模拟上标符号的坐标。是否有其他可行的解决方法将此限制为一次调用drawString()方法?您可以使用matplotlib.pyplot执行此操作: import matpl
reportlab
通过drawString()
方法将字符串写入PDF时,是否有一种简单的方法在Python中为字符串的子字符串(例如'%'
符号)上标
例如,打印一个字符串,如'37%'
,其中我希望'%'
符号是上标
我目前的解决方法是使用两个单独的调用
drawString()
方法,并为每个方法指定单独的字体大小,使用有效模拟上标符号的坐标。是否有其他可行的解决方法将此限制为一次调用drawString()
方法?您可以使用matplotlib.pyplot
执行此操作:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.set(title= r'This is an expression: $37^{\%}$')
plt.show()
<>如果你在数学和公式上做了大量的工作,你可以考虑使用可以转化为PDF的胶乳。 我不认为使用drawString方法可以实现您的要求,但reportlab提供了另一种允许它的方法 这篇文章应该对您有很大帮助: 直接从文章中改编,我们得到了以下代码:
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
def apply_scripting(textobject, text, rise):
textobject.setFont("Helvetica-Oblique", 8)
textobject.setRise(rise)
textobject.textOut(text)
textobject.setFont("Helvetica-Oblique", 12)
textobject.setRise(0)
def main():
canvas_obj = canvas.Canvas("textobj_rising.pdf",
pagesize=letter)
# Create textobject
textobject = canvas_obj.beginText()
textobject.setFont("Helvetica-Oblique", 12)
# Set text location (x, y)
textobject.setTextOrigin(10, 730)
textobject.textOut('37')
apply_scripting(textobject, '%', 4)
canvas_obj.drawText(textobject)
canvas_obj.save()
if __name__ == '__main__':
main()
这将创建一个类似以下内容的pdf:
与拉丝相比,这种方法的优点是不需要计算出放置
%
符号的坐标。可能重复?什么意思?你在用终点站吗?终端不支持上标。您必须使用类似于bearlibterminal
的东西。我将使用reportlab将字符串打印为PDF,并将字符串传递给drawString()method@RickAhlf那么,请编辑您的问题,将其包括在内。不过,这看起来不像是保存为字符串。在将字符串打印到reportlab生成的PDF时,我是否能够将其传递给drawString()方法?这是一个很棒的解决方案,完全按照我的需要工作!也感谢您提供的有用的链接文章。