python - 如何使用reportlab 的canvas.grid 有效地为我的每条消息创建一个框?
问题描述
我想创建一个与列表中的消息数量相对应的网格。
我目前正在使用reportlab 库来执行此操作,因为我希望能够将其编写为pdf 并将其打印出来以供我在列表中的“笔记”使用。
我现在所拥有的基本上是硬编码的,如果我想在其中添加更多注释,我认为它不够有效。
from reportlab.pdfgen import canvas
from reportlab.lib.units import inch
from reportlab.lib import colors
class Message:
def __init__(self):
self.path = "pdf_file/test.pdf"
self.list = ['message1','message2','message3','message4','message5','message6','message7',
'message8','message9','message10','message11','message12']
def create_grid(self, canvas):
from reportlab.lib.units import inch
from reportlab.lib.colors import pink, black, red, blue, green
c = canvas
c.setStrokeColor(black)
# canvas.grid(xlist,list)
c.grid([0.4*inch, 2.9*inch, 5.4*inch, 7.9*inch], [0.2*inch, 2.7*inch, 5.2*inch, 7.7*inch, 10.2*inch])
def create_pdf(self):
from reportlab.pdfgen import canvas
c = canvas.Canvas("pdf_file/test.pdf")
self.create_grid(c)
c.showPage()
c.save()
if __name__ == '__main__':
Message().create_pdf()
当我运行它时,我能够得到这样的东西:
有没有更可靠和更快的方法,我可以遍历我的消息列表并相应地创建一个网格?
解决方案
推荐阅读
- spring-boot - AWS Postgres RDS 数据库连接到 Spring Boot
- python - 损失函数内的Tensorflow变量初始化
- django - 类型字符变化的值太长(3)Django模型
- python - FastAPI 没有引发 HTTPException
- jquery - Angular 7 - 工具提示上的多行字符串
- javascript - 如何使用 React-native-range-slider 在触摸结束时设置状态
- powershell - Teradata bteq 控制台未在 powershell transcipt 中传输
- amazon-web-services - 如何为 gitlab CI CD 创建构建和部署路径?
- javascript - 为 html 创建自定义拼写检查
- ios - NWConnection 超时