如何在 SimpleDoc 模板中的 reportlab 中旋转段落

问题描述 投票:0回答:1

我正在构建这个reportlab pdf生成器应用程序,并且我使用SimpleDocTemplate作为我的页面模板。我似乎无法按照预期将段落旋转 90 度。有没有人有办法解决这个问题?

#----
    file_number1 = f"<font name='Helvetica' size='11'><b>{parcel.FileNumber}</b></font>"
    file_number1_style = styles['BodyText_FileNumber']
    file_number1_style.leftIndent = -320           
    file_number1_data = Paragraph(file_number1, file_number1_style)
    elements.append(file_number1_data)
    elements.append(Spacer(1, -5))            
#---- 

Paragraph 没有旋转属性。还有别的办法吗?

python django reportlab
1个回答
0
投票

你可以这样尝试

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib.units import inch
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer

def rotate_text(canvas):
    canvas.saveState()
    canvas.rotate(90)
    ptext = "Rotated Text"
    styles = getSampleStyleSheet()
    p = Paragraph(ptext, styles['BodyText'])
    p.wrapOn(canvas, 100, 500)
    p.drawOn(canvas, -100, 0)
    canvas.restoreState()

def generate_pdf():
    doc = SimpleDocTemplate("rotate_text.pdf", pagesize=letter)
    elements = []

    c = canvas.Canvas("rotate_text.pdf", pagesize=letter)
    rotate_text(c)
    c.showPage()
    c.save()

generate_pdf()
© www.soinside.com 2019 - 2024. All rights reserved.